diff --git a/viewer/packages/360-images/visual-tests/Image360.VisualTest.ts b/viewer/packages/360-images/visual-tests/Image360.VisualTest.ts index e9517738219..1b127f7ba38 100644 --- a/viewer/packages/360-images/visual-tests/Image360.VisualTest.ts +++ b/viewer/packages/360-images/visual-tests/Image360.VisualTest.ts @@ -161,7 +161,7 @@ export default class Image360VisualTestFixture extends StreamingVisualTestFixtur function animateTransition() { const from = { t: 0 }; const to = { t: 1 }; - const anim = new TWEEN.Tween(from) + const tween = new TWEEN.Tween(from) .to(to, 1000) .onUpdate(() => { const animatedPosition = new THREE.Vector3().lerpVectors(translationFrom, translationTo, from.t); @@ -170,9 +170,10 @@ export default class Image360VisualTestFixture extends StreamingVisualTestFixtur }) .easing(num => TWEEN.Easing.Quintic.InOut(num)) .start(TWEEN.now()); + TWEEN.add(tween); - anim.onComplete(() => { - anim.stop(); + tween.onComplete(() => { + tween.stop(); clearInterval(renderTrigger); camera.position.copy(translationTo); const cameraForward = camera.getWorldDirection(new THREE.Vector3()); diff --git a/viewer/packages/api/src/api-helpers/Image360ApiHelper.ts b/viewer/packages/api/src/api-helpers/Image360ApiHelper.ts index 4a06df33d22..2e47c7c3474 100644 --- a/viewer/packages/api/src/api-helpers/Image360ApiHelper.ts +++ b/viewer/packages/api/src/api-helpers/Image360ApiHelper.ts @@ -394,6 +394,7 @@ export class Image360ApiHelper { }) .easing(num => TWEEN.Easing.Quintic.InOut(num)) .start(TWEEN.now()); + TWEEN.add(tween); return new Promise(resolve => { tween.onComplete(() => { @@ -420,6 +421,7 @@ export class Image360ApiHelper { .delay(delay) .easing(num => TWEEN.Easing.Quintic.InOut(num)) .start(TWEEN.now()); + TWEEN.add(tween); return new Promise(resolve => { tween.onComplete(() => { @@ -608,7 +610,7 @@ function moveCameraPositionTo(manager: FlexibleCameraManager, position: Vector3, const tempPosition = new Vector3(); manager.controls.temporarilyDisableKeyboard = true; - new TWEEN.Tween(from) + const tween = new TWEEN.Tween(from) .to(to, duration) .onUpdate(() => { tempPosition.set(from.x, from.y, from.z); @@ -624,13 +626,15 @@ function moveCameraPositionTo(manager: FlexibleCameraManager, position: Vector3, manager.controls.temporarilyDisableKeyboard = false; }) .start(TWEEN.now()); + + TWEEN.add(tween); } function tweenCameraToDefaultFov(manager: FlexibleCameraManager, duration: number): void { const from = { fov: manager.controls.fov }; const to = { fov: manager.controls.options.defaultFov }; const delay = duration * 0.25; - new TWEEN.Tween(from) + const tween = new TWEEN.Tween(from) .to(to, duration * 0.5) .onUpdate(() => { manager.controls.setFov(from.fov); @@ -641,4 +645,6 @@ function tweenCameraToDefaultFov(manager: FlexibleCameraManager, duration: numbe .delay(delay) .easing(num => TWEEN.Easing.Quintic.InOut(num)) .start(TWEEN.now()); + + TWEEN.add(tween); } diff --git a/viewer/packages/camera-manager/src/Flexible/moveCamera.ts b/viewer/packages/camera-manager/src/Flexible/moveCamera.ts index 23ea898376d..862a24c9bdc 100644 --- a/viewer/packages/camera-manager/src/Flexible/moveCamera.ts +++ b/viewer/packages/camera-manager/src/Flexible/moveCamera.ts @@ -128,6 +128,8 @@ export function moveCameraTargetTo(manager: FlexibleCameraManager, target: Vecto removeEventListeners(); }) .start(TWEEN.now()); + + TWEEN.add(tween); } function createTweenAnimationWithStop>( diff --git a/viewer/packages/camera-manager/src/StationaryCameraManager.ts b/viewer/packages/camera-manager/src/StationaryCameraManager.ts index 28cbbebb859..3f4fdf9826c 100644 --- a/viewer/packages/camera-manager/src/StationaryCameraManager.ts +++ b/viewer/packages/camera-manager/src/StationaryCameraManager.ts @@ -142,6 +142,7 @@ export class StationaryCameraManager implements CameraManager { }) .easing(num => TWEEN.Easing.Quintic.InOut(num)) .start(TWEEN.now()); + TWEEN.add(tween); return new Promise(resolve => { tween.onComplete(() => {