[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 / cabinetBedDrawer.svelte
3.3 kB 116 lines
1<!-- 2Auto-generated by: https://github.com/threlte/threlte/tree/main/packages/gltf 3Command: npx @threlte/gltf@3.0.0 static/models/kenney-furniture-kit/cabinetBedDrawer.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_cabinetBedDrawer: THREE.Mesh; 34 Mesh_cabinetBedDrawer_1: THREE.Mesh; 35 Mesh_door: THREE.Mesh; 36 Mesh_door_1: THREE.Mesh; 37 Mesh_drawer: THREE.Mesh; 38 Mesh_drawer_1: THREE.Mesh; 39 }; 40 materials: { 41 wood: THREE.MeshStandardMaterial; 42 _defaultMat: THREE.MeshStandardMaterial; 43 metal: THREE.MeshStandardMaterial; 44 }; 45 }; 46 47 const gltf = useGltf<GLTFResult>(base + '/models/kenney-furniture-kit/cabinetBedDrawer.glb'); 48</script> 49 50<T.Group bind:ref dispose={false} {...props}> 51 {#await gltf} 52 {@render fallback?.()} 53 {:then gltf} 54 <T.Group position={[-0.12, 0.0, 0.1]}> 55 <T.Mesh 56 castShadow 57 receiveShadow 58 geometry={gltf.nodes.Mesh_cabinetBedDrawer.geometry} 59 material={gltf.materials.wood.clone()} 60 material.color={colors?.[0] ?? gltf.materials.wood.color} 61 material.opacity={opacity ?? gltf.materials.wood.opacity} 62 material.transparent={opacity !== undefined} 63 /> 64 <T.Mesh 65 castShadow 66 receiveShadow 67 geometry={gltf.nodes.Mesh_cabinetBedDrawer_1.geometry} 68 material={gltf.materials._defaultMat} 69 /> 70 <T.Group position={[0.02, 0.05, -0.01]}> 71 <T.Mesh 72 castShadow 73 receiveShadow 74 geometry={gltf.nodes.Mesh_door.geometry} 75 material={gltf.materials.wood.clone()} 76 material.color={colors?.[0] ?? gltf.materials.wood.color} 77 material.opacity={opacity ?? gltf.materials.wood.opacity} 78 material.transparent={opacity !== undefined} 79 /> 80 <T.Mesh 81 castShadow 82 receiveShadow 83 geometry={gltf.nodes.Mesh_door_1.geometry} 84 material={gltf.materials.metal.clone()} 85 material.color={colors?.[1] ?? gltf.materials.metal.color} 86 material.opacity={opacity ?? gltf.materials.metal.opacity} 87 material.transparent={opacity !== undefined} 88 /> 89 </T.Group> 90 <T.Group position={[0.02, 0.17, -0.16]}> 91 <T.Mesh 92 castShadow 93 receiveShadow 94 geometry={gltf.nodes.Mesh_drawer.geometry} 95 material={gltf.materials.wood.clone()} 96 material.color={colors?.[0] ?? gltf.materials.wood.color} 97 material.opacity={opacity ?? gltf.materials.wood.opacity} 98 material.transparent={opacity !== undefined} 99 /> 100 <T.Mesh 101 castShadow 102 receiveShadow 103 geometry={gltf.nodes.Mesh_drawer_1.geometry} 104 material={gltf.materials.metal.clone()} 105 material.color={colors?.[1] ?? gltf.materials.metal.color} 106 material.opacity={opacity ?? gltf.materials.metal.opacity} 107 material.transparent={opacity !== undefined} 108 /> 109 </T.Group> 110 </T.Group> 111 {:catch err} 112 {@render error?.({ error: err })} 113 {/await} 114 115 {@render children?.({ ref })} 116</T.Group>