[READ-ONLY] Mirror of https://github.com/flo-bit/room. tiny 3d rooms saved locally or in your bluesky account, svelte/threlte flo-bit.dev/room/
0

Configure Feed

Select the types of activity you want to include in your feed.

room / src / lib / models / kenney-furniture-kit / bedBunk.svelte
4.8 kB 156 lines
1<!-- 2Auto-generated by: https://github.com/threlte/threlte/tree/main/packages/gltf 3Command: npx @threlte/gltf@3.0.0 static/models/bedBunk.glb -t -s 4--> 5 6<script lang="ts"> 7 import type * as THREE from 'three' 8 9 import type { Snippet } from 'svelte' 10 import { T, type Props } from '@threlte/core' 11 import { useGltf } from '@threlte/extras' 12 import { base } from '$app/paths'; 13 14 let { 15 fallback, 16 error, 17 children, 18 ref = $bindable(), 19 colors, 20 opacity, 21 ...props 22 }: Props<THREE.Group> & { 23 ref?: THREE.Group 24 children?: Snippet<[{ ref: THREE.Group }]> 25 fallback?: Snippet 26 error?: Snippet<[{ error: Error }]> 27 colors?: (number | string)[]; 28 opacity?: number; 29 } = $props() 30 31 type GLTFResult = { 32 nodes: { 33 Mesh_bedBunk: THREE.Mesh 34 Mesh_bedBunk_1: THREE.Mesh 35 Mesh_cover: THREE.Mesh 36 Mesh_cover_1: THREE.Mesh 37 pillowBottom: THREE.Mesh 38 pillowTop: THREE.Mesh 39 } 40 materials: { 41 wood: THREE.MeshStandardMaterial 42 carpetWhite: THREE.MeshStandardMaterial 43 carpet: THREE.MeshStandardMaterial 44 } 45 } 46 47 const gltf = useGltf<GLTFResult>(base + '/models/kenney-furniture-kit/bedBunk.glb') 48</script> 49 50<T.Group 51 bind:ref 52 dispose={false} 53 {...props} 54> 55 <T.Group position={[-0.3, 0, 0.6]}> 56 {#await gltf} 57 {@render fallback?.()} 58 {:then gltf} 59 <T.Mesh 60 castShadow 61 receiveShadow 62 geometry={gltf.nodes.Mesh_bedBunk.geometry} 63 material={gltf.materials.wood.clone()} 64 65 material.color={colors?.[0] ?? gltf.materials.wood.color} 66 material.opacity={opacity ?? gltf.materials.wood.opacity} 67 material.transparent={opacity !== undefined} 68 /> 69 <T.Mesh 70 castShadow 71 receiveShadow 72 geometry={gltf.nodes.Mesh_bedBunk_1.geometry} 73 material={gltf.materials.carpetWhite.clone()} 74 material.color={colors?.[1] ?? gltf.materials.carpetWhite.color} 75 material.opacity={opacity ?? gltf.materials.carpetWhite.opacity} 76 material.transparent={opacity !== undefined} 77 /> 78 <T.Group 79 position={[-0.38, 0.2, -0.83]} 80 rotation={[0, -Math.PI / 2, 0]} 81 scale={0.5} 82 > 83 <T.Mesh 84 castShadow 85 receiveShadow 86 geometry={gltf.nodes.Mesh_cover.geometry} 87 material={gltf.materials.carpet.clone()} 88 material.color={colors?.[2] ?? gltf.materials.carpet.color} 89 material.opacity={opacity ?? gltf.materials.carpet.opacity} 90 material.transparent={opacity !== undefined} 91 /> 92 <T.Mesh 93 castShadow 94 receiveShadow 95 geometry={gltf.nodes.Mesh_cover_1.geometry} 96 material={gltf.materials.carpetWhite.clone()} 97 material.color={colors?.[1] ?? gltf.materials.carpetWhite.color} 98 material.opacity={opacity ?? gltf.materials.carpetWhite.opacity} 99 material.transparent={opacity !== undefined} 100 /> 101 </T.Group> 102 <T.Group 103 position={[-0.38, 0.73, -0.83]} 104 rotation={[0, -Math.PI / 2, 0]} 105 scale={0.5} 106 > 107 <T.Mesh 108 castShadow 109 receiveShadow 110 geometry={gltf.nodes.Mesh_cover.geometry} 111 material={gltf.materials.carpet.clone()} 112 material.color={colors?.[2] ?? gltf.materials.carpet.color} 113 material.opacity={opacity ?? gltf.materials.carpet.opacity} 114 material.transparent={opacity !== undefined} 115 /> 116 <T.Mesh 117 castShadow 118 receiveShadow 119 geometry={gltf.nodes.Mesh_cover_1.geometry} 120 material={gltf.materials.carpetWhite.clone()} 121 material.color={colors?.[1] ?? gltf.materials.carpetWhite.color} 122 material.opacity={opacity ?? gltf.materials.carpetWhite.opacity} 123 material.transparent={opacity !== undefined} 124 /> 125 </T.Group> 126 <T.Mesh 127 castShadow 128 receiveShadow 129 geometry={gltf.nodes.pillowBottom.geometry} 130 material={gltf.materials.carpetWhite.clone()} 131 material.color={colors?.[1] ?? gltf.materials.carpetWhite.color} 132 material.opacity={opacity ?? gltf.materials.carpetWhite.opacity} 133 material.transparent={opacity !== undefined} 134 position={[0.12, 0.2, -1.07]} 135 rotation={[0.13, -Math.PI / 2, 0]} 136 scale={[0.5, 0.5, 0.85]} 137 /> 138 <T.Mesh 139 castShadow 140 receiveShadow 141 geometry={gltf.nodes.pillowTop.geometry} 142 material={gltf.materials.carpetWhite.clone()} 143 material.color={colors?.[1] ?? gltf.materials.carpetWhite.color} 144 material.opacity={opacity ?? gltf.materials.carpetWhite.opacity} 145 material.transparent={opacity !== undefined} 146 position={[0.12, 0.74, -1.07]} 147 rotation={[0.13, -Math.PI / 2, 0]} 148 scale={[0.5, 0.5, 0.85]} 149 /> 150 {:catch err} 151 {@render error?.({ error: err })} 152 {/await} 153 154 {@render children?.({ ref })} 155 </T.Group> 156</T.Group>