Spaces:
Running
Running
<script lang="ts"> | |
import Robot from "@/components/3d/Robot.svelte"; | |
import GridCustom from "@/components/3d/GridCustom.svelte"; | |
import { T, Canvas } from "@threlte/core"; | |
import { Gizmo, OrbitControls } from "@threlte/extras"; | |
import * as THREE from "three"; | |
import Overlay from "@/components/interface/overlay/Overlay.svelte"; | |
</script> | |
<div class="fixed inset-0 -z-20 h-[100dvh] w-screen bg-[#1a1a1a]"> | |
<Canvas shadows> | |
<T.Scene background={new THREE.Color("black")}> | |
<T.PerspectiveCamera position.x={-10} position.y={10} position.z={10} fov={20} makeDefault> | |
<OrbitControls | |
enableDamping | |
target={[0, 1, 0]} | |
dampingFactor={0.05} | |
minDistance={10} | |
maxDistance={30} | |
minPolarAngle={Math.PI / 6} | |
maxPolarAngle={Math.PI / 2} | |
enableZoom | |
> | |
<Gizmo /> | |
</OrbitControls> | |
</T.PerspectiveCamera> | |
<!-- Lighting setup matching React version --> | |
<T.AmbientLight intensity={0.4} /> | |
<T.DirectionalLight | |
position={[2, 20, 5]} | |
intensity={1} | |
castShadow | |
shadow.mapSize.width={1024} | |
shadow.mapSize.height={1024} | |
/> | |
<T.DirectionalLight | |
position={[-2, 20, -5]} | |
intensity={1} | |
castShadow | |
shadow.mapSize.width={1024} | |
shadow.mapSize.height={1024} | |
/> | |
<!-- <Floor/> --> | |
<GridCustom | |
position.y={0} | |
type="grid" | |
sectionThickness={1} | |
infiniteGrid | |
cellColor="#71717A" | |
sectionColor="#707070" | |
sectionSize={10} | |
cellSize={1} | |
floorColor="#1a1a1a" | |
floorOpacity={0} | |
fadeDistance={40} | |
fadeStrength={1} | |
/> | |
<!-- Robot component now gets robots from robotManager --> | |
<Robot /> | |
</T.Scene> | |
</Canvas> | |
<!-- Loading Overlay --> | |
<!-- {#if isLoading} | |
<div class="bg-opacity-50 absolute inset-0 z-10 flex items-center justify-center bg-black"> | |
<div class="text-center text-white"> | |
<div class="mb-4 text-4xl font-bold">{Math.round(loadingProgress)}% loaded</div> | |
<div class="text-lg">Loading {robotName}...</div> | |
{#if config.customUrdf?.enabled} | |
<div class="mt-2 text-sm text-green-400">Enhanced Mode</div> | |
{/if} | |
<div class="mt-2 text-sm text-gray-400">isLoading: {isLoading}</div> | |
</div> | |
</div> | |
{/if} --> | |
<!-- Enhanced Control Panel with modern Shadcn components --> | |
</div> | |
<Overlay /> | |