Skip to content

Commit f0dd1d6

Browse files
authored
CameraControls enablePan fix (#8126)
* fix: fixed enablePan logic * fix: reworked pan logic to specify desktop Pan and double touch
1 parent 38c05b9 commit f0dd1d6

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

scripts/esm/camera-controls.mjs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -738,8 +738,7 @@ class CameraControls extends Script {
738738
const orbit = +(this._mode === 'orbit');
739739
const fly = +(this._mode === 'fly');
740740
const double = +(this._state.touches > 1);
741-
const pan = +this.enablePan &&
742-
((orbit && this._state.shift) || this._state.mouse[1] || +(button[1] === -1));
741+
const desktopPan = +(this._state.shift || this._state.mouse[1]);
743742
const mobileJoystick = +(this._flyMobileInput.layout.endsWith('joystick'));
744743

745744
// multipliers
@@ -757,23 +756,23 @@ class CameraControls extends Script {
757756
const keyMove = this._state.axis.clone().normalize();
758757
v.add(keyMove.mulScalar(fly * moveMult));
759758
const panMove = screenToWorld(this._camera, mouse[0], mouse[1], this._pose.distance);
760-
v.add(panMove.mulScalar(orbit * pan));
759+
v.add(panMove.mulScalar(orbit * desktopPan * +this.enablePan));
761760
const wheelMove = tmpV2.set(0, 0, wheel[0]);
762761
v.add(wheelMove.mulScalar(orbit * zoomMult));
763762
deltas.move.append([v.x, v.y, v.z]);
764763

765764
// desktop rotate
766765
v.set(0, 0, 0);
767766
const mouseRotate = tmpV2.set(mouse[0], mouse[1], 0);
768-
v.add(mouseRotate.mulScalar((1 - pan) * rotateMult));
767+
v.add(mouseRotate.mulScalar((1 - desktopPan) * rotateMult));
769768
deltas.rotate.append([v.x, v.y, v.z]);
770769

771770
// mobile move
772771
v.set(0, 0, 0);
773772
const flyMove = tmpV2.set(leftInput[0], 0, -leftInput[1]);
774773
v.add(flyMove.mulScalar(fly * moveMult));
775774
const orbitMove = screenToWorld(this._camera, touch[0], touch[1], this._pose.distance);
776-
v.add(orbitMove.mulScalar(orbit * double));
775+
v.add(orbitMove.mulScalar(orbit * double * +this.enablePan));
777776
const pinchMove = tmpV2.set(0, 0, pinch[0]);
778777
v.add(pinchMove.mulScalar(orbit * double * zoomTouchMult));
779778
deltas.move.append([v.x, v.y, v.z]);

0 commit comments

Comments
 (0)