From 89fbd4636f588e3c37f2fc9175681a45cc924c61 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 28 Feb 2026 00:49:38 +0000 Subject: [PATCH] Changes --- src/components/XRHud.tsx | 18 ++- src/components/three/XRHitTestPlacement.tsx | 133 ++++++++++++++++++++ src/pages/XRSession.tsx | 32 ++--- 3 files changed, 167 insertions(+), 16 deletions(-) create mode 100644 src/components/three/XRHitTestPlacement.tsx diff --git a/src/components/XRHud.tsx b/src/components/XRHud.tsx index cd8326e..605f4da 100644 --- a/src/components/XRHud.tsx +++ b/src/components/XRHud.tsx @@ -2,7 +2,7 @@ import { useState } from 'react'; import { Eye, LayoutGrid, Grid3X3, Box, Ruler, Trash2, Camera, Move, RotateCw, RefreshCw, ChevronUp, ChevronDown, Grip, - ClipboardCheck, X, + ClipboardCheck, X, Crosshair, } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Slider } from '@/components/ui/slider'; @@ -17,9 +17,11 @@ const ROTATION_STEP = 0.1; interface XRHudProps { freeMove: boolean; onToggleFreeMove: () => void; + placementMode?: boolean; + onTogglePlacement?: () => void; } -export function XRHud({ freeMove, onToggleFreeMove }: XRHudProps) { +export function XRHud({ freeMove, onToggleFreeMove, placementMode = false, onTogglePlacement }: XRHudProps) { const [expanded, setExpanded] = useState(false); const [checklistOpen, setChecklistOpen] = useState(false); @@ -147,6 +149,18 @@ export function XRHud({ freeMove, onToggleFreeMove }: XRHudProps) { {expanded ? : } + {/* Hit-test placement toggle */} + {onTogglePlacement && ( + + )} +