Skip to content

Commit

Permalink
OrbitControls: renamed properties to avoid double-negatives
Browse files Browse the repository at this point in the history
  • Loading branch information
WestLangley committed Aug 24, 2015
1 parent b20e021 commit 45908e7
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 40 deletions.
185 changes: 149 additions & 36 deletions examples/js/controls/OrbitControls.js
Expand Up @@ -35,9 +35,10 @@
this.minAzimuthAngle = - Infinity; // radians
this.maxAzimuthAngle = Infinity; // radians

// Set to true to disable damping (inertia)
this.staticMoving = false;
this.dynamicDampingFactor = 0.2;
// Set to true to enable damping (inertia)
// If damping is enabled, you must call controls.update() in your animation loop
this.enableDamping = false;
this.dampingFactor = 0.25;

////////////
// internals
Expand Down Expand Up @@ -253,15 +254,15 @@

this.object.lookAt( this.target );

if ( this.staticMoving ) {
if ( this.enableDamping === true ) {

thetaDelta = 0;
phiDelta = 0;
thetaDelta *= ( 1 - this.dampingFactor );
phiDelta *= ( 1 - this.dampingFactor );

} else {

thetaDelta *= ( 1 - this.dynamicDampingFactor );
phiDelta *= ( 1 - this.dynamicDampingFactor );
thetaDelta = 0;
phiDelta = 0;

}

Expand Down Expand Up @@ -321,13 +322,13 @@

this.getPolarAngle = function () {

return constraint.phi;
return constraint.getPolarAngle();

};

this.getAzimuthalAngle = function () {

return constraint.theta;
return constraint.getAzimuthalAngle();

};

Expand All @@ -338,24 +339,26 @@
this.center = this.target;

// This option actually enables dollying in and out; left as "zoom" for
// backwards compatibility
this.noZoom = false;
// backwards compatibility.
// Set to false to disable zooming
this.enableZoom = true;
this.zoomSpeed = 1.0;

// Set to true to disable this control
this.noRotate = false;
// Set to false to disable rotating
this.enableRotate = true;
this.rotateSpeed = 1.0;

// Set to true to disable this control
this.noPan = false;
// Set to false to disable panning
this.enablePan = true;
this.keyPanSpeed = 7.0; // pixels moved per arrow key push

// Set to true to automatically rotate around the target
// If auto-rotate is enabled, you must call controls.update() in your animation loop
this.autoRotate = false;
this.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60

// Set to true to disable use of the keys
this.noKeys = false;
// Set to false to disable use of the keys
this.enableKeys = true;

// The four arrow keys
this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 };
Expand Down Expand Up @@ -457,23 +460,23 @@

if ( event.button === scope.mouseButtons.ORBIT ) {

if ( scope.noRotate === true ) return;
if ( scope.enableRotate === false ) return;

state = STATE.ROTATE;

rotateStart.set( event.clientX, event.clientY );

} else if ( event.button === scope.mouseButtons.ZOOM ) {

if ( scope.noZoom === true ) return;
if ( scope.enableZoom === false ) return;

state = STATE.DOLLY;

dollyStart.set( event.clientX, event.clientY );

} else if ( event.button === scope.mouseButtons.PAN ) {

if ( scope.noPan === true ) return;
if ( scope.enablePan === false ) return;

state = STATE.PAN;

Expand Down Expand Up @@ -501,7 +504,7 @@

if ( state === STATE.ROTATE ) {

if ( scope.noRotate === true ) return;
if ( scope.enableRotate === false ) return;

rotateEnd.set( event.clientX, event.clientY );
rotateDelta.subVectors( rotateEnd, rotateStart );
Expand All @@ -516,7 +519,7 @@

} else if ( state === STATE.DOLLY ) {

if ( scope.noZoom === true ) return;
if ( scope.enableZoom === false ) return;

dollyEnd.set( event.clientX, event.clientY );
dollyDelta.subVectors( dollyEnd, dollyStart );
Expand All @@ -535,7 +538,7 @@

} else if ( state === STATE.PAN ) {

if ( scope.noPan === true ) return;
if ( scope.enablePan === false ) return;

panEnd.set( event.clientX, event.clientY );
panDelta.subVectors( panEnd, panStart );
Expand Down Expand Up @@ -563,7 +566,7 @@

function onMouseWheel( event ) {

if ( scope.enabled === false || scope.noZoom === true || state !== STATE.NONE ) return;
if ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return;

event.preventDefault();
event.stopPropagation();
Expand Down Expand Up @@ -602,7 +605,7 @@

function onKeyDown( event ) {

if ( scope.enabled === false || scope.noKeys === true || scope.noPan === true ) return;
if ( scope.enabled === false || scope.enableKeys === false || scope.enablePan === false ) return;

switch ( event.keyCode ) {

Expand Down Expand Up @@ -638,7 +641,7 @@

case 1: // one-fingered touch: rotate

if ( scope.noRotate === true ) return;
if ( scope.enableRotate === false ) return;

state = STATE.TOUCH_ROTATE;

Expand All @@ -647,7 +650,7 @@

case 2: // two-fingered touch: dolly

if ( scope.noZoom === true ) return;
if ( scope.enableZoom === false ) return;

state = STATE.TOUCH_DOLLY;

Expand All @@ -659,7 +662,7 @@

case 3: // three-fingered touch: pan

if ( scope.noPan === true ) return;
if ( scope.enablePan === false ) return;

state = STATE.TOUCH_PAN;

Expand Down Expand Up @@ -689,7 +692,7 @@

case 1: // one-fingered touch: rotate

if ( scope.noRotate === true ) return;
if ( scope.enableRotate === false ) return;
if ( state !== STATE.TOUCH_ROTATE ) return;

rotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
Expand All @@ -707,7 +710,7 @@

case 2: // two-fingered touch: dolly

if ( scope.noZoom === true ) return;
if ( scope.enableZoom === false ) return;
if ( state !== STATE.TOUCH_DOLLY ) return;

var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;
Expand All @@ -734,7 +737,7 @@

case 3: // three-fingered touch: pan

if ( scope.noPan === true ) return;
if ( scope.enablePan === false ) return;
if ( state !== STATE.TOUCH_PAN ) return;

panEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );
Expand Down Expand Up @@ -965,17 +968,125 @@

},

enableDamping : {

get: function () {

return this.constraint.enableDamping;

},

set: function ( value ) {

this.constraint.enableDamping = value;

}

},

dampingFactor : {

get: function () {

return this.constraint.dampingFactor;

},

set: function ( value ) {

this.constraint.dampingFactor = value;

}

},

// backward compatibility

noZoom: {

get: function () {

console.warn( 'THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.' );
return ! this.enableZoom;

},

set: function ( value ) {

console.warn( 'THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.' );
this.enableZoom = ! value;

}

},

noRotate: {

get: function () {

console.warn( 'THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.' );
return ! this.enableRotate;

},

set: function ( value ) {

console.warn( 'THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.' );
this.enableRotate = ! value;

}

},

noPan: {

get: function () {

console.warn( 'THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.' );
return ! this.enablePan;

},

set: function ( value ) {

console.warn( 'THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.' );
this.enablePan = ! value;

}

},

noKeys: {

get: function () {

console.warn( 'THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.' );
return ! this.enableKeys;

},

set: function ( value ) {

console.warn( 'THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.' );
this.enableKeys = ! value;

}

},

staticMoving : {

get: function () {

return this.constraint.staticMoving;
console.warn( 'THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.' );
return ! this.constraint.enableDamping;

},

set: function ( value ) {

this.constraint.staticMoving = value;
console.warn( 'THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.' );
this.constraint.enableDamping = ! value;

}

Expand All @@ -985,13 +1096,15 @@

get: function () {

return this.constraint.dynamicDampingFactor;
console.warn( 'THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.' );
return this.constraint.dampingFactor;

},

set: function ( value ) {

this.constraint.dynamicDampingFactor = value;
console.warn( 'THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.' );
this.constraint.dampingFactor = value;

}

Expand Down
9 changes: 5 additions & 4 deletions examples/misc_controls_orbit.html
Expand Up @@ -72,9 +72,10 @@
camera.position.z = 500;

controls = new THREE.OrbitControls( camera, renderer.domElement );
//controls.addEventListener( 'change', render ); // only add this if there is no animation loop and no damping
controls.dynamicDampingFactor = 0.2;
controls.noZoom = true;
//controls.addEventListener( 'change', render ); // add this only if there is no animation loop (requestAnimationFrame)
controls.enableDamping = true;
controls.dampingFactor = 0.25;
controls.enableZoom = false;

// world

Expand Down Expand Up @@ -133,7 +134,7 @@

requestAnimationFrame( animate );

controls.update(); // required if there is damping or if autoRotate = true
controls.update(); // required if controls.enableDamping = true, or if controls.autoRotate = true

stats.update();

Expand Down

0 comments on commit 45908e7

Please sign in to comment.