src/views/three/Wall3D.tsximport { useMemo } from 'react';import * as THREE from 'three';import { Edges } from '@react-three/drei';import type { ThreeEvent } from '@react-three/fiber';import { wallLength, wallOpeningRects } from '../../scene/geometry';import type { Opening, Wall } from '../../scene/schema';import { describeWall, SELECTED_COLOR, type Selected3D } from '../../scene/describe';import type { UnitSystem } from '../../scene/units';type Props = {wall: Wall;openings: Opening[];units: UnitSystem;selectedId: string | null;onSelect: (sel: Selected3D | null) => void;};const EPS = 0.001;/**
Showing the first 20 lines.
Get full code