@@ -84,11 +84,8 @@ export class CameraStateSettings extends SceneExtension implements ICameraHandle
8484 this . add ( this . #cameraGroup) ;
8585
8686 this . #controls = new OrbitControls ( this . #perspectiveCamera, this . #canvas) ;
87- this . #controls. screenSpacePanning = false ; // only allow panning in the XY plane
88- this . #controls. mouseButtons . LEFT = THREE . MOUSE . PAN ;
89- this . #controls. mouseButtons . RIGHT = THREE . MOUSE . ROTATE ;
90- this . #controls. touches . ONE = THREE . TOUCH . PAN ;
91- this . #controls. touches . TWO = THREE . TOUCH . DOLLY_ROTATE ;
87+ this . updateControls ( ) ;
88+
9289 this . #controls. addEventListener ( "change" , ( ) => {
9390 if ( ! this . #isUpdatingCameraState) {
9491 renderer . emit ( "cameraMove" , renderer ) ;
@@ -493,6 +490,27 @@ export class CameraStateSettings extends SceneExtension implements ICameraHandle
493490 } ;
494491 }
495492
493+ public updateControls ( ) : void {
494+ this . #isUpdatingCameraState = true ;
495+ if ( this . renderer . config . scene . lockPanning ?? false ) {
496+ this . #controls. screenSpacePanning = false ;
497+ } else {
498+ this . #controls. screenSpacePanning = true ;
499+ }
500+ if ( this . renderer . config . scene . reverseMouse ?? false ) {
501+ this . #controls. mouseButtons . LEFT = THREE . MOUSE . PAN ;
502+ this . #controls. mouseButtons . RIGHT = THREE . MOUSE . ROTATE ;
503+ this . #controls. touches . ONE = THREE . TOUCH . PAN ;
504+ this . #controls. touches . TWO = THREE . TOUCH . DOLLY_ROTATE ;
505+ } else {
506+ this . #controls. mouseButtons . LEFT = THREE . MOUSE . ROTATE ;
507+ this . #controls. mouseButtons . RIGHT = THREE . MOUSE . PAN ;
508+ this . #controls. touches . ONE = THREE . TOUCH . ROTATE ;
509+ this . #controls. touches . TWO = THREE . TOUCH . DOLLY_PAN ;
510+ }
511+ this . #isUpdatingCameraState = false ;
512+ }
513+
496514 public setCameraState ( cameraState : CameraState ) : void {
497515 this . #isUpdatingCameraState = true ;
498516 this . #updateCameras( cameraState ) ;
0 commit comments