提交 60f79860 编写于 作者: M Mark Lundin

Update TrackballControls.js

Removed unnecessary `new` Vector in `getMouseProjectionOnBall`.

Removed assignment of variables have already been set.

Made the optional target in `getMouseOnScreen` mandatory.
上级 b8653d73
/**
* @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:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册