Browse Source

TrackballControls: Refactored touch code. See #7406.

Mr.doob 9 years ago
parent
commit
c784d820de
1 changed files with 6 additions and 14 deletions
  1. 6 14
      examples/js/controls/TrackballControls.js

+ 6 - 14
examples/js/controls/TrackballControls.js

@@ -507,7 +507,7 @@ THREE.TrackballControls = function ( object, domElement ) {
 				_movePrev.copy( _moveCurr );
 				break;
 
-			case 2:
+			default: // 2 or more
 				_state = STATE.TOUCH_ZOOM_PAN;
 				var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
 				var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
@@ -519,12 +519,9 @@ THREE.TrackballControls = function ( object, domElement ) {
 				_panEnd.copy( _panStart );
 				break;
 
-			default:
-				_state = STATE.NONE;
-
 		}
-		_this.dispatchEvent( startEvent );
 
+		_this.dispatchEvent( startEvent );
 
 	}
 
@@ -542,7 +539,7 @@ THREE.TrackballControls = function ( object, domElement ) {
 				_moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) );
 				break;
 
-			case 2:
+			default: // 2 or more
 				var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
 				var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;
 				_touchZoomDistanceEnd = Math.sqrt( dx * dx + dy * dy );
@@ -552,9 +549,6 @@ THREE.TrackballControls = function ( object, domElement ) {
 				_panEnd.copy( getMouseOnScreen( x, y ) );
 				break;
 
-			default:
-				_state = STATE.NONE;
-
 		}
 
 	}
@@ -570,15 +564,13 @@ THREE.TrackballControls = function ( object, domElement ) {
 				break;
 
 			case 1:
+				_state = STATE.TOUCH_ROTATE;
 				_movePrev.copy( _moveCurr );
 				_moveCurr.copy( getMouseOnCircle( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ) );
-				if ( _state !== STATE.TOUCH_ROTATE ) {
-					_state = STATE.TOUCH_ROTATE;
-					_movePrev.copy( _moveCurr );
-				}
 				break;
 
-			case 2:
+			default: // 2 or more
+				_state = STATE.TOUCH_ZOOM_PAN;
 				_touchZoomDistanceStart = _touchZoomDistanceEnd = 0;
 
 				var x = ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX ) / 2;