Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-05-12 10:41:29 +00:00
parent c926c55499
commit f5d2591fbf
+42 -19
View File
@@ -491,28 +491,51 @@ const XRSession = () => {
<XROrigin />
<XRHitTestPlacement
placementMode={placementMode}
snapToPlanes={snapToPlanes}
onPlace={() => {
setPlacementMode(false);
toast.success('Modelo posicionado na superfície!');
}}
>
<XRGrabbable
allowScale={allowScale}
onGrabStart={() => {
if (placementMode) setPlacementMode(false);
}}
>
<XRModel url={model.url} />
</XRGrabbable>
</XRHitTestPlacement>
{inXR ? (
<>
{/* In XR: hit-test placement → grab wrapper → model */}
<XRHitTestPlacement
placementMode={placementMode}
snapToPlanes={snapToPlanes}
onPlace={() => {
setPlacementMode(false);
toast.success('Modelo posicionado na superfície!');
}}
>
<XRGrabbable
allowScale={allowScale}
onGrabStart={() => {
if (placementMode) setPlacementMode(false);
}}
>
<XRModel url={model.url} />
</XRGrabbable>
</XRHitTestPlacement>
<XRMeasurementOverlay />
<ControllerFineTuning freeMove={freeMove} />
<XRDebugHud />
</>
) : (
<>
{/* Desktop preview (no headset): show model with OrbitControls */}
<group position={[0, 0, 0]}>
<XRModel url={model.url} />
</group>
<XRMeasurementOverlay />
<OrbitControls
makeDefault
enableDamping
dampingFactor={0.1}
minDistance={0.05}
maxDistance={50}
target={[0, 0, 0]}
/>
</>
)}
<XRMeasurementOverlay />
<XRSnapHandler />
<XRGrid />
<ControllerFineTuning freeMove={freeMove} />
</XR>
</Canvas>