瀏覽代碼

Address PR feedback.

Ross Kirsling 7 年之前
父節點
當前提交
9bea0556fe
共有 1 個文件被更改,包括 30 次插入28 次删除
  1. 30 28
      examples/js/controls/OrbitControls.js

+ 30 - 28
examples/js/controls/OrbitControls.js

@@ -75,7 +75,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 	this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 };
 
 	// Mouse buttons
-	this.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT };
+	this.mouseButtons = { LEFT: THREE.MOUSE.LEFT, MIDDLE: THREE.MOUSE.MIDDLE, RIGHT: THREE.MOUSE.RIGHT };
 
 	// for reset
 	this.target0 = this.target.clone();
@@ -86,18 +86,6 @@ THREE.OrbitControls = function ( object, domElement ) {
 	// public methods
 	//
 
-	this.getStateForMouseDown = function ( event ) {
-
-		if ( event.button === scope.mouseButtons.ORBIT && ! event.ctrlKey ) return STATE.ROTATE;
-
-		if ( event.button === scope.mouseButtons.ZOOM ) return STATE.DOLLY;
-
-		if ( event.button === scope.mouseButtons.PAN || ( event.button === scope.mouseButtons.ORBIT && event.ctrlKey ) ) return STATE.PAN;
-
-		return STATE.NONE;
-
-	};
-
 	this.getPolarAngle = function () {
 
 		return spherical.phi;
@@ -687,46 +675,60 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 		event.preventDefault();
 
-		var newState = scope.getStateForMouseDown( event );
+		switch ( event.button ) {
 
-		switch ( newState ) {
+			case scope.mouseButtons.LEFT:
 
-			case STATE.ROTATE:
+				if ( event.ctrlKey || event.metaKey ) {
 
-				if ( scope.enableRotate === false ) return;
+					if ( scope.enablePan === false ) return;
+
+					handleMouseDownPan( event );
+
+					state = STATE.PAN;
+
+				} else {
+
+					if ( scope.enableRotate === false ) return;
 
-				handleMouseDownRotate( event );
+					handleMouseDownRotate( event );
+
+					state = STATE.ROTATE;
+
+				}
 
 				break;
 
-			case STATE.DOLLY:
+			case scope.mouseButtons.MIDDLE:
 
 				if ( scope.enableZoom === false ) return;
 
 				handleMouseDownDolly( event );
 
+				state = STATE.DOLLY;
+
 				break;
 
-			case STATE.PAN:
+			case scope.mouseButtons.RIGHT:
 
 				if ( scope.enablePan === false ) return;
 
 				handleMouseDownPan( event );
 
-				break;
-
-			default: // STATE.NONE
+				state = STATE.PAN;
 
-				return;
+				break;
 
 		}
 
-		state = newState;
+		if ( state !== STATE.NONE ) {
 
-		document.addEventListener( 'mousemove', onMouseMove, false );
-		document.addEventListener( 'mouseup', onMouseUp, false );
+			document.addEventListener( 'mousemove', onMouseMove, false );
+			document.addEventListener( 'mouseup', onMouseUp, false );
 
-		scope.dispatchEvent( startEvent );
+			scope.dispatchEvent( startEvent );
+
+		}
 
 	}