From 9ffd8d777ee4b4d022ed478387bd9d0c06635507 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 26 Mar 2026 22:13:06 +0900 Subject: [PATCH] Update engine.ts --- packages/frontend/src/utility/room/engine.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/utility/room/engine.ts b/packages/frontend/src/utility/room/engine.ts index a629108303..c5042969f5 100644 --- a/packages/frontend/src/utility/room/engine.ts +++ b/packages/frontend/src/utility/room/engine.ts @@ -1374,7 +1374,8 @@ export class RoomObjectPreviewEngine { this.camera.lowerRadiusLimit = 50/*cm*/; this.camera.upperRadiusLimit = 1000/*cm*/; this.camera.useAutoRotationBehavior = true; - this.camera.autoRotationBehavior!.idleRotationSpeed = 0.2; + this.camera.autoRotationBehavior!.idleRotationSpeed = 0.3; + //this.camera.mode = BABYLON.Camera.ORTHOGRAPHIC_CAMERA; this.scene.activeCamera = this.camera; const ambientLight = new BABYLON.HemisphericLight('ambientLight', new BABYLON.Vector3(0, 1, -0.5), this.scene); @@ -1419,6 +1420,9 @@ export class RoomObjectPreviewEngine { this.objectMesh!.dispose(); } + // reset camera rotation + this.camera.setPosition(new BABYLON.Vector3(0, 90/*cm*/, 300/*cm*/)); + const def = getObjectDef(type); const options = deepClone(def.options.default); @@ -1432,6 +1436,15 @@ export class RoomObjectPreviewEngine { window.setTimeout(() => { const boundingInfo = getMeshesBoundingBox(this.objectMesh!.getChildMeshes()); this.camera.setTarget(new BABYLON.Vector3(0, boundingInfo.center.y, 0)); + + // zoom to fit + const size = boundingInfo.extendSize; + const distance = Math.max(size.x, size.y, size.z) * 2; + this.camera.radius = distance * 3; + //this.camera.orthoLeft = -distance; + //this.camera.orthoRight = distance; + //this.camera.orthoTop = distance; + //this.camera.orthoBottom = -distance; }, 10); }