diff --git a/examples/js/controls/MapControls.js b/examples/js/controls/MapControls.js index 257d06863a1e7df3fe8aba6ed9104afca371deb0..8c15a7c003516cc0f77df4097842970a708ca7b2 100644 --- a/examples/js/controls/MapControls.js +++ b/examples/js/controls/MapControls.js @@ -11,11 +11,10 @@ // Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). // This is very similar to OrbitControls, another set of touch behavior // -// Orbit - right mouse / touch: two-finger rotate +// Orbit - right mouse, or left mouse + ctrl/metaKey / touch: two-finger rotate // Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish // Pan - left mouse, or arrow keys / touch: one-finger move - THREE.MapControls = function ( object, domElement ) { this.object = object; @@ -78,7 +77,7 @@ THREE.MapControls = function ( object, domElement ) { this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }; // Mouse buttons - this.mouseButtons = { ORBIT: THREE.MOUSE.RIGHT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.LEFT }; + this.mouseButtons = { LEFT: THREE.MOUSE.LEFT, MIDDLE: THREE.MOUSE.MIDDLE, RIGHT: THREE.MOUSE.RIGHT }; // for reset this.target0 = this.target.clone(); @@ -776,17 +775,29 @@ THREE.MapControls = function ( object, domElement ) { switch ( event.button ) { - case scope.mouseButtons.ORBIT: + case scope.mouseButtons.LEFT: - if ( scope.enableRotate === false ) return; + if ( event.ctrlKey || event.metaKey ) { - handleMouseDownRotate( event ); + if ( scope.enableRotate === false ) return; - state = STATE.ROTATE; + handleMouseDownRotate( event ); + + state = STATE.ROTATE; + + } else { + + if ( scope.enablePan === false ) return; + + handleMouseDownPan( event ); + + state = STATE.PAN; + + } break; - case scope.mouseButtons.ZOOM: + case scope.mouseButtons.MIDDLE: if ( scope.enableZoom === false ) return; @@ -796,13 +807,13 @@ THREE.MapControls = function ( object, domElement ) { break; - case scope.mouseButtons.PAN: + case scope.mouseButtons.RIGHT: - if ( scope.enablePan === false ) return; + if ( scope.enableRotate === false ) return; - handleMouseDownPan( event ); + handleMouseDownRotate( event ); - state = STATE.PAN; + state = STATE.ROTATE; break;