OrbitControls: improve mouse customizable options

上级 2930462b
......@@ -753,7 +753,6 @@ THREE.OrbitControls = function ( object, domElement ) {
if ( scope.enabled === false ) return;
// Prevent the browser from scrolling.
event.preventDefault();
// Manually set the focus since calling preventDefault above
......@@ -761,119 +760,90 @@ THREE.OrbitControls = function ( object, domElement ) {
scope.domElement.focus ? scope.domElement.focus() : window.focus();
var mouseAction;
switch ( event.button ) {
case 0:
switch ( scope.mouseButtons.LEFT ) {
case THREE.MOUSE.ROTATE:
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
mouseAction = scope.mouseButtons.LEFT;
break;
if ( scope.enablePan === false ) return;
case 1:
handleMouseDownPan( event );
mouseAction = scope.mouseButtons.MIDDLE;
break;
state = STATE.PAN;
case 2:
} else {
mouseAction = scope.mouseButtons.RIGHT;
break;
if ( scope.enableRotate === false ) return;
default:
handleMouseDownRotate( event );
mouseAction = - 1;
state = STATE.ROTATE;
}
}
switch ( mouseAction ) {
break;
case THREE.MOUSE.DOLLY:
case THREE.MOUSE.PAN:
if ( scope.enableZoom === false ) return;
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
handleMouseDownDolly( event );
if ( scope.enableRotate === false ) return;
state = STATE.DOLLY;
handleMouseDownRotate( event );
break;
state = STATE.ROTATE;
case THREE.MOUSE.ROTATE:
} else {
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
if ( scope.enablePan === false ) return;
if ( scope.enablePan === false ) return;
handleMouseDownPan( event );
handleMouseDownPan( event );
state = STATE.PAN;
state = STATE.PAN;
}
} else {
break;
if ( scope.enableRotate === false ) return;
default:
handleMouseDownRotate( event );
state = STATE.NONE;
state = STATE.ROTATE;
}
break;
case THREE.MOUSE.PAN:
case 1:
switch ( scope.mouseButtons.MIDDLE ) {
case THREE.MOUSE.DOLLY:
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
if ( scope.enableZoom === false ) return;
if ( scope.enableRotate === false ) return;
handleMouseDownDolly( event );
handleMouseDownRotate( event );
state = STATE.DOLLY;
state = STATE.ROTATE;
break;
} else {
if ( scope.enablePan === false ) return;
default:
handleMouseDownPan( event );
state = STATE.NONE;
state = STATE.PAN;
}
break;
case 2:
switch ( scope.mouseButtons.RIGHT ) {
case THREE.MOUSE.ROTATE:
if ( scope.enableRotate === false ) return;
handleMouseDownRotate( event );
state = STATE.ROTATE;
break;
case THREE.MOUSE.PAN:
if ( scope.enablePan === false ) return;
handleMouseDownPan( event );
state = STATE.PAN;
break;
default:
state = STATE.NONE;
}
default:
break;
state = STATE.NONE;
}
......
......@@ -763,7 +763,6 @@ var OrbitControls = function ( object, domElement ) {
if ( scope.enabled === false ) return;
// Prevent the browser from scrolling.
event.preventDefault();
// Manually set the focus since calling preventDefault above
......@@ -771,119 +770,90 @@ var OrbitControls = function ( object, domElement ) {
scope.domElement.focus ? scope.domElement.focus() : window.focus();
var mouseAction;
switch ( event.button ) {
case 0:
switch ( scope.mouseButtons.LEFT ) {
case MOUSE.ROTATE:
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
mouseAction = scope.mouseButtons.LEFT;
break;
if ( scope.enablePan === false ) return;
case 1:
handleMouseDownPan( event );
mouseAction = scope.mouseButtons.MIDDLE;
break;
state = STATE.PAN;
case 2:
} else {
mouseAction = scope.mouseButtons.RIGHT;
break;
if ( scope.enableRotate === false ) return;
default:
handleMouseDownRotate( event );
mouseAction = - 1;
state = STATE.ROTATE;
}
}
switch ( mouseAction ) {
break;
case MOUSE.DOLLY:
case MOUSE.PAN:
if ( scope.enableZoom === false ) return;
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
handleMouseDownDolly( event );
if ( scope.enableRotate === false ) return;
state = STATE.DOLLY;
handleMouseDownRotate( event );
break;
state = STATE.ROTATE;
case MOUSE.ROTATE:
} else {
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
if ( scope.enablePan === false ) return;
if ( scope.enablePan === false ) return;
handleMouseDownPan( event );
handleMouseDownPan( event );
state = STATE.PAN;
state = STATE.PAN;
}
} else {
break;
if ( scope.enableRotate === false ) return;
default:
handleMouseDownRotate( event );
state = STATE.NONE;
state = STATE.ROTATE;
}
break;
case MOUSE.PAN:
case 1:
switch ( scope.mouseButtons.MIDDLE ) {
case MOUSE.DOLLY:
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
if ( scope.enableZoom === false ) return;
if ( scope.enableRotate === false ) return;
handleMouseDownDolly( event );
handleMouseDownRotate( event );
state = STATE.DOLLY;
state = STATE.ROTATE;
break;
} else {
if ( scope.enablePan === false ) return;
default:
handleMouseDownPan( event );
state = STATE.NONE;
state = STATE.PAN;
}
break;
case 2:
switch ( scope.mouseButtons.RIGHT ) {
case MOUSE.ROTATE:
if ( scope.enableRotate === false ) return;
handleMouseDownRotate( event );
state = STATE.ROTATE;
break;
case MOUSE.PAN:
if ( scope.enablePan === false ) return;
handleMouseDownPan( event );
state = STATE.PAN;
break;
default:
state = STATE.NONE;
}
default:
break;
state = STATE.NONE;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册