diff --git a/src/components/three/XRHudInWorld.tsx b/src/components/three/XRHudInWorld.tsx
index ce1921b..5c6bf98 100644
--- a/src/components/three/XRHudInWorld.tsx
+++ b/src/components/three/XRHudInWorld.tsx
@@ -309,6 +309,40 @@ function ToolsTab(p: XRHudInWorldProps) {
onClick={() => setScaleRatio(preset)} />
);
})}
+
+ {/* Grid floor controls */}
+
+
+ );
+}
+
+function GridFloorRow() {
+ const { camera } = useThree();
+ const gridY = useModelStore((s) => s.gridY);
+ const gridAutoFollow = useModelStore((s) => s.gridAutoFollow);
+ const setGridAutoFollow = useModelStore((s) => s.setGridAutoFollow);
+ const setGridY = useModelStore((s) => s.setGridY);
+ const nudgeGridY = useModelStore((s) => s.nudgeGridY);
+ const placeAtFloor = () => {
+ // Headset eye Y minus avg standing eye height (1.6 m)
+ const floor = camera.position.y - 1.6;
+ setGridY(floor);
+ };
+ return (
+
+
+ Grid Y {(gridY * 1000).toFixed(0)}mm {gridAutoFollow ? '(auto)' : '(travado)'}
+
+ setGridAutoFollow(true)} />
+ setGridAutoFollow(false)} />
+ nudgeGridY(-0.01)} />
+ nudgeGridY(0.01)} />
+
);
}