Skip to content

Commit

Permalink
Merge pull request #14410 from WestLangley/dev-map_controls_ctrl_drag
Browse files Browse the repository at this point in the history
MapControls: support ctrl-drag
  • Loading branch information
mrdoob committed Jul 8, 2018
2 parents b7d23d5 + 83a1fb5 commit 808b1a8
Showing 1 changed file with 23 additions and 12 deletions.
35 changes: 23 additions & 12 deletions examples/js/controls/MapControls.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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;

Expand All @@ -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;

Expand Down

0 comments on commit 808b1a8

Please sign in to comment.