src/views/Scene3D.tsximport { Canvas, useFrame, useThree } from '@react-three/fiber';import { Grid, Html, OrbitControls, PerspectiveCamera } from '@react-three/drei';import { useEffect, useMemo, useRef, useState } from 'react';import { TOUCH, Vector3 } from 'three';import { useSceneStore } from '../scene/store';import { Wall3D } from './three/Wall3D';import { Opening3D } from './three/Opening3D';import { Floor3D } from './three/Floor3D';import { Fixture3D } from './three/Fixture3D';import { Compass } from './Compass';import { ZoomControls } from '../ui/ZoomControls';import { describeById, type Selected3D } from '../scene/describe';import type { Scene } from '../scene/schema';function sceneCenter(scene: Scene) {let minX = Infinity;let minY = Infinity;let maxX = -Infinity;let maxY = -Infinity;for (const w of scene.level.walls) {
Showing the first 20 lines.
Get full code