From 3b273999e13bdfcf5cba47a91b3c0fcbb16aac7d Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 11 May 2026 13:58:34 +0200 Subject: [PATCH] Update surface snap calculation to use oriented bounding boxes --- src/viewport-three/viewport-host.ts | 33 ++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index b114e842..6dc75e70 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -4923,12 +4923,18 @@ export class ViewportHost { const entity = this.currentDocument.entities[session.target.entityId]; - return entity?.kind === "triggerVolume" - ? createAxisAlignedBoxSurfaceSnapSupportPoints( - preview.position, - entity.size - ) - : []; + if (entity?.kind !== "triggerVolume") { + return []; + } + + return createOrientedBoxSurfaceSnapSupportPoints({ + center: preview.position, + rotationDegrees: + preview.rotation.kind === "euler" + ? preview.rotation.rotationDegrees + : entity.rotationDegrees, + size: preview.scale.kind === "size" ? preview.scale.size : entity.size + }); } case "entities": { if (preview.kind !== "entities" || this.currentDocument === null) { @@ -4955,10 +4961,17 @@ export class ViewportHost { } supportPoints.push( - ...createAxisAlignedBoxSurfaceSnapSupportPoints( - previewItem.position, - entity.size - ) + ...createOrientedBoxSurfaceSnapSupportPoints({ + center: previewItem.position, + rotationDegrees: + previewItem.rotation.kind === "euler" + ? previewItem.rotation.rotationDegrees + : entity.rotationDegrees, + size: + previewItem.scale.kind === "size" + ? previewItem.scale.size + : entity.size + }) ); }