diff --git a/examples/js/controls/OrbitControls.js b/examples/js/controls/OrbitControls.js index 09f2cf6fe8764e161c05e45828590c20e132bcc2..9faea1f030aeda87811e891e5d88a00430668a2e 100644 --- a/examples/js/controls/OrbitControls.js +++ b/examples/js/controls/OrbitControls.js @@ -100,6 +100,8 @@ THREE.OrbitControls = function ( object, domElement ) { var dollyEnd = new THREE.Vector2(); var dollyDelta = new THREE.Vector2(); + var theta; + var phi; var phiDelta = 0; var thetaDelta = 0; var scale = 1; @@ -160,7 +162,7 @@ THREE.OrbitControls = function ( object, domElement ) { // get X column of matrix panOffset.set( te[ 0 ], te[ 1 ], te[ 2 ] ); panOffset.multiplyScalar( - distance ); - + pan.add( panOffset ); }; @@ -173,11 +175,11 @@ THREE.OrbitControls = function ( object, domElement ) { // get Y column of matrix panOffset.set( te[ 4 ], te[ 5 ], te[ 6 ] ); panOffset.multiplyScalar( distance ); - + pan.add( panOffset ); }; - + // pass in x,y of change desired in pixel space, // right and down are positive this.pan = function ( deltaX, deltaY ) { @@ -248,11 +250,11 @@ THREE.OrbitControls = function ( object, domElement ) { // angle from z-axis around y-axis - var theta = Math.atan2( offset.x, offset.z ); + theta = Math.atan2( offset.x, offset.z ); // angle from y-axis - var phi = Math.atan2( Math.sqrt( offset.x * offset.x + offset.z * offset.z ), offset.y ); + phi = Math.atan2( Math.sqrt( offset.x * offset.x + offset.z * offset.z ), offset.y ); if ( this.autoRotate ) { @@ -276,7 +278,7 @@ THREE.OrbitControls = function ( object, domElement ) { // restrict radius to be between desired limits radius = Math.max( this.minDistance, Math.min( this.maxDistance, radius ) ); - + // move target to panned location this.target.add( pan ); @@ -324,6 +326,18 @@ THREE.OrbitControls = function ( object, domElement ) { }; + this.getPolarAngle = function () { + + return phi; + + }; + + this.getAzimuthalAngle = function () { + + return theta + + }; + function getAutoRotationAngle() { return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed; @@ -418,7 +432,7 @@ THREE.OrbitControls = function ( object, domElement ) { panEnd.set( event.clientX, event.clientY ); panDelta.subVectors( panEnd, panStart ); - + scope.pan( panDelta.x, panDelta.y ); panStart.copy( panEnd ); @@ -478,7 +492,7 @@ THREE.OrbitControls = function ( object, domElement ) { function onKeyDown( event ) { if ( scope.enabled === false || scope.noKeys === true || scope.noPan === true ) return; - + switch ( event.keyCode ) { case scope.keys.UP: @@ -614,7 +628,7 @@ THREE.OrbitControls = function ( object, domElement ) { panEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); panDelta.subVectors( panEnd, panStart ); - + scope.pan( panDelta.x, panDelta.y ); panStart.copy( panEnd );