Force update after manual control change

feature/threejs-update
Robin Hawkes 2016-12-02 17:03:00 +00:00
rodzic 78b7704895
commit cee426ed95
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 1EC4C2D6765FA8CF
2 zmienionych plików z 24 dodań i 3 usunięć

Wyświetl plik

@ -132,9 +132,9 @@ class World extends EventEmitter {
window.requestAnimationFrame(this._update.bind(this)); window.requestAnimationFrame(this._update.bind(this));
// Update controls // Update controls
this._controls.forEach(controls => { // this._controls.forEach(controls => {
controls.update(delta); // controls.update(delta);
}); // });
this.emit('preUpdate', delta); this.emit('preUpdate', delta);
this._engine.update(delta); this._engine.update(delta);

Wyświetl plik

@ -39,10 +39,16 @@ class Orbit extends EventEmitter {
controls.panLeft(-deltaX, controls.object.matrix); controls.panLeft(-deltaX, controls.object.matrix);
controls.panUp(-deltaY, controls.object.matrix); controls.panUp(-deltaY, controls.object.matrix);
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
panBy(pointDelta, animate) { panBy(pointDelta, animate) {
this._controls.pan(-pointDelta.x, pointDelta.y); this._controls.pan(-pointDelta.x, pointDelta.y);
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
// Zooming the camera in and out // Zooming the camera in and out
@ -55,6 +61,9 @@ class Orbit extends EventEmitter {
} else { } else {
controls.dollyOut(metresDelta); controls.dollyOut(metresDelta);
} }
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
// Force camera to look at something other than the target // Force camera to look at something other than the target
@ -71,11 +80,17 @@ class Orbit extends EventEmitter {
var theta = controls.getPolarAngle(); var theta = controls.getPolarAngle();
var delta = angle - theta; var delta = angle - theta;
controls.rotateUp(-delta); controls.rotateUp(-delta);
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
tiltBy(angleDelta, animate) { tiltBy(angleDelta, animate) {
var controls = this._controls; var controls = this._controls;
controls.rotateUp(-angleDelta); controls.rotateUp(-angleDelta);
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
// Rotate (left and right) // Rotate (left and right)
@ -85,12 +100,18 @@ class Orbit extends EventEmitter {
var theta = controls.getAzimuthalAngle(); var theta = controls.getAzimuthalAngle();
var delta = angle - theta; var delta = angle - theta;
controls.rotateLeft(-delta); controls.rotateLeft(-delta);
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
// Right is positive, left negative // Right is positive, left negative
rotateBy(angleDelta, animate) { rotateBy(angleDelta, animate) {
var controls = this._controls; var controls = this._controls;
controls.rotateLeft(-angleDelta); controls.rotateLeft(-angleDelta);
this.update();
this._world.emit('controlsMoveEnd', this._controls.target);
} }
// Fly to the given point, animating pan and tilt/rotation to final position // Fly to the given point, animating pan and tilt/rotation to final position