From 2118c1017ff02542d160f134f1153591ce99f48a Mon Sep 17 00:00:00 2001 From: Vincent Fretin Date: Sat, 31 Aug 2024 16:52:08 +0200 Subject: [PATCH] Add a camerachanged event you can use with pathtracer, remove debounce for EditorControls change event --- src/editor/lib/EditorControls.js | 13 ++++--------- src/editor/lib/viewport.js | 3 +++ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/editor/lib/EditorControls.js b/src/editor/lib/EditorControls.js index 0c31f08c..608f7f34 100644 --- a/src/editor/lib/EditorControls.js +++ b/src/editor/lib/EditorControls.js @@ -1,4 +1,3 @@ -import debounce from 'lodash-es/debounce'; import { currentOrthoDir } from './cameras'; /** @@ -56,10 +55,6 @@ THREE.EditorControls = function (_object, domElement) { var changeEvent = { type: 'change' }; - this.dispatchChange = debounce(() => { - scope.dispatchEvent(changeEvent); - }, 100); - this.focus = function (target) { if (this.isOrthographic) { return; @@ -165,7 +160,7 @@ THREE.EditorControls = function (_object, domElement) { object.position.add(delta); center.add(delta); - scope.dispatchChange(); + scope.dispatchEvent(changeEvent); }; var ratio = 1; @@ -201,7 +196,7 @@ THREE.EditorControls = function (_object, domElement) { object.position.add(delta); } - scope.dispatchChange(); + scope.dispatchEvent(changeEvent); }; this.rotate = function (delta) { @@ -224,7 +219,7 @@ THREE.EditorControls = function (_object, domElement) { object.lookAt(center); - scope.dispatchChange(); + scope.dispatchEvent(changeEvent); }; // mouse @@ -440,7 +435,7 @@ THREE.EditorControls = function (_object, domElement) { object.updateMatrixWorld(); } - scope.dispatchChange(); + scope.dispatchEvent(changeEvent); }; }; diff --git a/src/editor/lib/viewport.js b/src/editor/lib/viewport.js index b8a05101..c6f4e8e7 100644 --- a/src/editor/lib/viewport.js +++ b/src/editor/lib/viewport.js @@ -212,6 +212,9 @@ export function Viewport(inspector) { controls.rotationSpeed = 0.0035; controls.zoomSpeed = 0.05; controls.setAspectRatio(sceneEl.canvas.width / sceneEl.canvas.height); + controls.addEventListener('change', () => { + Events.emit('camerachanged'); + }); sceneEl.addEventListener('newScene', () => { controls.resetZoom();