diff --git a/src/components/three/ModelViewer.tsx b/src/components/three/ModelViewer.tsx index d6b8d6f..1d39073 100644 --- a/src/components/three/ModelViewer.tsx +++ b/src/components/three/ModelViewer.tsx @@ -143,6 +143,10 @@ function GLBModel({ sceneModel, isActive }: { sceneModel: SceneModel; isActive: const measureMode = useModelStore((s) => s.measureMode); const fineTuning = sceneModel.fineTuning; + // Re-render when calibration state changes (so calQuat resets to identity during the flow). + const [, setCalTick] = useState(0); + useEffect(() => subscribeCalibration(() => setCalTick(t => t + 1)), []); + const modelInfo = useMemo(() => { if (!scene) return { size: new THREE.Vector3(), center: new THREE.Vector3() }; const box = new THREE.Box3().setFromObject(scene);