From 8348262d450949d1593284b07b2620336ed9ff64 Mon Sep 17 00:00:00 2001 From: admtracksteel Date: Fri, 29 May 2026 21:04:55 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20Auto-deploy:=20melhoria=20no=20s?= =?UTF-8?q?nap=20e=20medi=C3=A7=C3=A3o=20AR=20em=2029/05/2026=2021:04:55?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/three/XRControllerMeasure.tsx | 24 ++++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/components/three/XRControllerMeasure.tsx b/src/components/three/XRControllerMeasure.tsx index 56969fd..0adad8d 100644 --- a/src/components/three/XRControllerMeasure.tsx +++ b/src/components/three/XRControllerMeasure.tsx @@ -174,14 +174,24 @@ export function XRControllerMeasure() { if (session && right && !hitTestRequestedRef.current && isAligning) { hitTestRequestedRef.current = true; - session.requestHitTestSource({ space: right.targetRaySpace }) - .then((source) => { - hitTestSourceRef.current = source; - }) - .catch((err) => { - console.error('[XR] Failed to request controller hit test source:', err); + const spaceToUse = right.targetRaySpace ?? right.gripSpace; + if (spaceToUse) { + try { + session.requestHitTestSource({ space: spaceToUse }) + .then((source) => { + hitTestSourceRef.current = source; + }) + .catch((err) => { + console.error('[XR] Failed to request controller hit test source:', err); + hitTestRequestedRef.current = false; + }); + } catch (err) { + console.error('[XR] Synchronous error requesting controller hit test source:', err); hitTestRequestedRef.current = false; - }); + } + } else { + hitTestRequestedRef.current = false; + } } let realHitPoint: THREE.Vector3 | null = null;