Browse Source

Update TrackballControls.js

Removed unnecessary `new` Vector in `getMouseProjectionOnBall`.

Removed assignment of variables have already been set.

Made the optional target in `getMouseOnScreen` mandatory.
Mark Lundin 11 years ago
parent
commit
60f798608d
1 changed files with 14 additions and 13 deletions
  1. 14 13
      examples/js/controls/TrackballControls.js

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

@@ -1,6 +1,6 @@
 /**
  * @author Eberhard Graether / http://egraether.com/
- * @author Mark Lundin 		 / http://mark-lundin.com
+ * @author Mark Lundin 	/ http://mark-lundin.com
  */
 
 THREE.TrackballControls = function ( object, domElement ) {
@@ -103,9 +103,9 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 	};
 
-	this.getMouseOnScreen = function ( pageX, pageY, optionalTarget ) {
+	this.getMouseOnScreen = function ( pageX, pageY, vector ) {
 
-		return ( optionalTarget || new THREE.Vector2() ).set(
+		return vector.set(
 			( pageX - _this.screen.left ) / _this.screen.width,
 			( pageY - _this.screen.top ) / _this.screen.height
 		);
@@ -114,12 +114,13 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 	this.getMouseProjectionOnBall = (function(){
 
-		var objectUp = new THREE.Vector3();
+		var objectUp = new THREE.Vector3(),
+		    mouseOnBall = new THREE.Vector3();
 
 
 		return function ( pageX, pageY, projection ) {
 
-			var mouseOnBall = new THREE.Vector3(
+			mouseOnBall.set(
 				( pageX - _this.screen.width * 0.5 - _this.screen.left ) / (_this.screen.width*.5),
 				( _this.screen.height * 0.5 + _this.screen.top - pageY ) / (_this.screen.height*.5),
 				0.0
@@ -398,17 +399,17 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 		if ( _state === STATE.ROTATE && !_this.noRotate ) {
 
-			_rotateStart = _this.getMouseProjectionOnBall( event.pageX, event.pageY, _rotateStart );
+			_this.getMouseProjectionOnBall( event.pageX, event.pageY, _rotateStart );
 			_rotateEnd.copy(_rotateStart)
 
 		} else if ( _state === STATE.ZOOM && !_this.noZoom ) {
 
-			_zoomStart = _this.getMouseOnScreen( event.pageX, event.pageY, _zoomStart );
+			_this.getMouseOnScreen( event.pageX, event.pageY, _zoomStart );
 			_zoomEnd.copy(_zoomStart);
 
 		} else if ( _state === STATE.PAN && !_this.noPan ) {
 
-			_panStart = _this.getMouseOnScreen( event.pageX, event.pageY, _panStart);
+			_this.getMouseOnScreen( event.pageX, event.pageY, _panStart );
 			_panEnd.copy(_panStart)
 
 		}
@@ -429,15 +430,15 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 		if ( _state === STATE.ROTATE && !_this.noRotate ) {
 
-			_rotateEnd = _this.getMouseProjectionOnBall( event.pageX, event.pageY, _rotateEnd );
+			_this.getMouseProjectionOnBall( event.pageX, event.pageY, _rotateEnd );
 
 		} else if ( _state === STATE.ZOOM && !_this.noZoom ) {
 
-			_zoomEnd = _this.getMouseOnScreen( event.pageX, event.pageY, _zoomEnd );
+			_this.getMouseOnScreen( event.pageX, event.pageY, _zoomEnd );
 
 		} else if ( _state === STATE.PAN && !_this.noPan ) {
 
-			_panEnd = _this.getMouseOnScreen( event.pageX, event.pageY, _panEnd );
+			_this.getMouseOnScreen( event.pageX, event.pageY, _panEnd );
 
 		}
 
@@ -525,7 +526,7 @@ THREE.TrackballControls = function ( object, domElement ) {
 		switch ( event.touches.length ) {
 
 			case 1:
-				_rotateEnd = _this.getMouseProjectionOnBall( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY, _rotateEnd );
+				_this.getMouseProjectionOnBall( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY, _rotateEnd );
 				break;
 
 			case 2:
@@ -535,7 +536,7 @@ THREE.TrackballControls = function ( object, domElement ) {
 				break;
 
 			case 3:
-				_panEnd = _this.getMouseOnScreen( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY, _panEnd );
+				_this.getMouseOnScreen( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY, _panEnd );
 				break;
 
 			default: