提交 83a1fb57 编写于 作者: W WestLangley

Support ctrl-drag

上级 ce9e859c
...@@ -11,11 +11,10 @@ ...@@ -11,11 +11,10 @@
// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). // Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
// This is very similar to OrbitControls, another set of touch behavior // 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 // Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
// Pan - left mouse, or arrow keys / touch: one-finger move // Pan - left mouse, or arrow keys / touch: one-finger move
THREE.MapControls = function ( object, domElement ) { THREE.MapControls = function ( object, domElement ) {
this.object = object; this.object = object;
...@@ -78,7 +77,7 @@ THREE.MapControls = function ( object, domElement ) { ...@@ -78,7 +77,7 @@ THREE.MapControls = function ( object, domElement ) {
this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }; this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 };
// Mouse buttons // 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 // for reset
this.target0 = this.target.clone(); this.target0 = this.target.clone();
...@@ -776,17 +775,29 @@ THREE.MapControls = function ( object, domElement ) { ...@@ -776,17 +775,29 @@ THREE.MapControls = function ( object, domElement ) {
switch ( event.button ) { 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; break;
case scope.mouseButtons.ZOOM: case scope.mouseButtons.MIDDLE:
if ( scope.enableZoom === false ) return; if ( scope.enableZoom === false ) return;
...@@ -796,13 +807,13 @@ THREE.MapControls = function ( object, domElement ) { ...@@ -796,13 +807,13 @@ THREE.MapControls = function ( object, domElement ) {
break; 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; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册