Browse Source

Merge pull request #20613 from Mugen87/dev3

Quaternion: Rename inverse() to invert().
Mr.doob 4 years ago
parent
commit
210552d2c8

+ 1 - 1
docs/api/en/math/Quaternion.html

@@ -102,7 +102,7 @@
 			Sets this quaternion to the identity quaternion; that is, to the quaternion that represents "no rotation".
 			Sets this quaternion to the identity quaternion; that is, to the quaternion that represents "no rotation".
 		</p>
 		</p>
 
 
-		<h3>[method:Quaternion inverse]()</h3>
+		<h3>[method:Quaternion invert]()</h3>
 		<p>
 		<p>
 			Inverts this quaternion - calculates the [page:.conjugate conjugate]. The quaternion is assumed to have unit length.
 			Inverts this quaternion - calculates the [page:.conjugate conjugate]. The quaternion is assumed to have unit length.
 		</p>
 		</p>

+ 3 - 3
docs/api/zh/math/Quaternion.html

@@ -99,7 +99,7 @@
 			设置该四元数为 identity 四元数,即表示“不旋转”的四元数。
 			设置该四元数为 identity 四元数,即表示“不旋转”的四元数。
 		</p>
 		</p>
 
 
-		<h3>[method:Quaternion inverse]()</h3>
+		<h3>[method:Quaternion invert]()</h3>
 		<p>
 		<p>
 			翻转该四元数 —— 计算 [page:.conjugate conjugate] 。假定该四元数具有单位长度。
 			翻转该四元数 —— 计算 [page:.conjugate conjugate] 。假定该四元数具有单位长度。
 		</p>
 		</p>
@@ -128,7 +128,7 @@
 		<h3>[method:Quaternion multiplyQuaternions]( [param:Quaternion a], [param:Quaternion b] )</h3>
 		<h3>[method:Quaternion multiplyQuaternions]( [param:Quaternion a], [param:Quaternion b] )</h3>
 		<p>
 		<p>
 		将该四元数设为 [page:Quaternion a] x [page:Quaternion b] 。<br />
 		将该四元数设为 [page:Quaternion a] x [page:Quaternion b] 。<br />
-		改编自 [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm here] 所概述的方法。	
+		改编自 [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm here] 所概述的方法。
 		</p>
 		</p>
 
 
 		<h3>[method:Quaternion premultiply]( [param:Quaternion q] )</h3>
 		<h3>[method:Quaternion premultiply]( [param:Quaternion q] )</h3>
@@ -175,7 +175,7 @@
 		<h3>[method:Quaternion setFromRotationMatrix]( [param:Matrix4 m] )</h3>
 		<h3>[method:Quaternion setFromRotationMatrix]( [param:Matrix4 m] )</h3>
 		<p>
 		<p>
 		从[page:Matrix4 m]的旋转分量中来设置该四元数。<br />
 		从[page:Matrix4 m]的旋转分量中来设置该四元数。<br />
-		改编自 [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm here] 所概述的方法。	
+		改编自 [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm here] 所概述的方法。
 		</p>
 		</p>
 
 
 		<h3>[method:Quaternion setFromUnitVectors]( [param:Vector3 vFrom], [param:Vector3 vTo] )</h3>
 		<h3>[method:Quaternion setFromUnitVectors]( [param:Vector3 vFrom], [param:Vector3 vTo] )</h3>

+ 1 - 1
editor/js/Viewport.ViewHelper.js

@@ -103,7 +103,7 @@ function ViewHelper( editorCamera, container ) {
 
 
 	this.render = function ( renderer ) {
 	this.render = function ( renderer ) {
 
 
-		this.quaternion.copy( editorCamera.quaternion ).inverse();
+		this.quaternion.copy( editorCamera.quaternion ).invert();
 		this.updateMatrixWorld();
 		this.updateMatrixWorld();
 
 
 		point.set( 0, 0, 1 );
 		point.set( 0, 0, 1 );

+ 1 - 1
examples/js/animation/CCDIKSolver.js

@@ -95,7 +95,7 @@ THREE.CCDIKSolver = ( function () {
 							// don't use getWorldPosition/Quaternion() here for the performance
 							// don't use getWorldPosition/Quaternion() here for the performance
 							// because they call updateMatrixWorld( true ) inside.
 							// because they call updateMatrixWorld( true ) inside.
 							link.matrixWorld.decompose( linkPos, invLinkQ, linkScale );
 							link.matrixWorld.decompose( linkPos, invLinkQ, linkScale );
-							invLinkQ.inverse();
+							invLinkQ.invert();
 							effectorPos.setFromMatrixPosition( effector.matrixWorld );
 							effectorPos.setFromMatrixPosition( effector.matrixWorld );
 
 
 							// work in link world
 							// work in link world

+ 1 - 1
examples/js/controls/OrbitControls.js

@@ -125,7 +125,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 		// so camera.up is the orbit axis
 		// so camera.up is the orbit axis
 		var quat = new THREE.Quaternion().setFromUnitVectors( object.up, new THREE.Vector3( 0, 1, 0 ) );
 		var quat = new THREE.Quaternion().setFromUnitVectors( object.up, new THREE.Vector3( 0, 1, 0 ) );
-		var quatInverse = quat.clone().inverse();
+		var quatInverse = quat.clone().invert();
 
 
 		var lastPosition = new THREE.Vector3();
 		var lastPosition = new THREE.Vector3();
 		var lastQuaternion = new THREE.Quaternion();
 		var lastQuaternion = new THREE.Quaternion();

+ 5 - 5
examples/js/controls/TransformControls.js

@@ -221,8 +221,8 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
 			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
 
 
-			parentQuaternionInv.copy( parentQuaternion ).inverse();
-			worldQuaternionInv.copy( worldQuaternion ).inverse();
+			parentQuaternionInv.copy( parentQuaternion ).invert();
+			worldQuaternionInv.copy( worldQuaternion ).invert();
 
 
 		}
 		}
 
 
@@ -371,7 +371,7 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 
 				if ( space === 'local' ) {
 				if ( space === 'local' ) {
 
 
-					object.position.applyQuaternion( _tempQuaternion.copy( quaternionStart ).inverse() );
+					object.position.applyQuaternion( _tempQuaternion.copy( quaternionStart ).invert() );
 
 
 					if ( axis.search( 'X' ) !== - 1 ) {
 					if ( axis.search( 'X' ) !== - 1 ) {
 
 
@@ -1277,7 +1277,7 @@ THREE.TransformControlsGizmo = function () {
 					handle.position.copy( this.worldPositionStart );
 					handle.position.copy( this.worldPositionStart );
 					handle.quaternion.copy( this.worldQuaternionStart );
 					handle.quaternion.copy( this.worldQuaternionStart );
 					tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 );
 					tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 );
-					tempVector.applyQuaternion( this.worldQuaternionStart.clone().inverse() );
+					tempVector.applyQuaternion( this.worldQuaternionStart.clone().invert() );
 					handle.scale.copy( tempVector );
 					handle.scale.copy( tempVector );
 					handle.visible = this.dragging;
 					handle.visible = this.dragging;
 
 
@@ -1460,7 +1460,7 @@ THREE.TransformControlsGizmo = function () {
 				// Align handles to current local or world rotation
 				// Align handles to current local or world rotation
 
 
 				tempQuaternion2.copy( quaternion );
 				tempQuaternion2.copy( quaternion );
-				alignVector.copy( this.eye ).applyQuaternion( tempQuaternion.copy( quaternion ).inverse() );
+				alignVector.copy( this.eye ).applyQuaternion( tempQuaternion.copy( quaternion ).invert() );
 
 
 				if ( handle.name.search( "E" ) !== - 1 ) {
 				if ( handle.name.search( "E" ) !== - 1 ) {
 
 

+ 1 - 1
examples/js/loaders/FBXLoader.js

@@ -2738,7 +2738,7 @@ THREE.FBXLoader = ( function () {
 				postRotation.push( eulerOrder );
 				postRotation.push( eulerOrder );
 
 
 				postRotation = new THREE.Euler().fromArray( postRotation );
 				postRotation = new THREE.Euler().fromArray( postRotation );
-				postRotation = new THREE.Quaternion().setFromEuler( postRotation ).inverse();
+				postRotation = new THREE.Quaternion().setFromEuler( postRotation ).invert();
 
 
 			}
 			}
 
 

+ 1 - 1
examples/jsm/animation/CCDIKSolver.js

@@ -110,7 +110,7 @@ var CCDIKSolver = ( function () {
 							// don't use getWorldPosition/Quaternion() here for the performance
 							// don't use getWorldPosition/Quaternion() here for the performance
 							// because they call updateMatrixWorld( true ) inside.
 							// because they call updateMatrixWorld( true ) inside.
 							link.matrixWorld.decompose( linkPos, invLinkQ, linkScale );
 							link.matrixWorld.decompose( linkPos, invLinkQ, linkScale );
-							invLinkQ.inverse();
+							invLinkQ.invert();
 							effectorPos.setFromMatrixPosition( effector.matrixWorld );
 							effectorPos.setFromMatrixPosition( effector.matrixWorld );
 
 
 							// work in link world
 							// work in link world

+ 1 - 1
examples/jsm/controls/OrbitControls.js

@@ -135,7 +135,7 @@ var OrbitControls = function ( object, domElement ) {
 
 
 		// so camera.up is the orbit axis
 		// so camera.up is the orbit axis
 		var quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );
 		var quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );
-		var quatInverse = quat.clone().inverse();
+		var quatInverse = quat.clone().invert();
 
 
 		var lastPosition = new Vector3();
 		var lastPosition = new Vector3();
 		var lastQuaternion = new Quaternion();
 		var lastQuaternion = new Quaternion();

+ 5 - 5
examples/jsm/controls/TransformControls.js

@@ -244,8 +244,8 @@ var TransformControls = function ( camera, domElement ) {
 
 
 			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
 			this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
 
 
-			parentQuaternionInv.copy( parentQuaternion ).inverse();
-			worldQuaternionInv.copy( worldQuaternion ).inverse();
+			parentQuaternionInv.copy( parentQuaternion ).invert();
+			worldQuaternionInv.copy( worldQuaternion ).invert();
 
 
 		}
 		}
 
 
@@ -394,7 +394,7 @@ var TransformControls = function ( camera, domElement ) {
 
 
 				if ( space === 'local' ) {
 				if ( space === 'local' ) {
 
 
-					object.position.applyQuaternion( _tempQuaternion.copy( quaternionStart ).inverse() );
+					object.position.applyQuaternion( _tempQuaternion.copy( quaternionStart ).invert() );
 
 
 					if ( axis.search( 'X' ) !== - 1 ) {
 					if ( axis.search( 'X' ) !== - 1 ) {
 
 
@@ -1300,7 +1300,7 @@ var TransformControlsGizmo = function () {
 					handle.position.copy( this.worldPositionStart );
 					handle.position.copy( this.worldPositionStart );
 					handle.quaternion.copy( this.worldQuaternionStart );
 					handle.quaternion.copy( this.worldQuaternionStart );
 					tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 );
 					tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 );
-					tempVector.applyQuaternion( this.worldQuaternionStart.clone().inverse() );
+					tempVector.applyQuaternion( this.worldQuaternionStart.clone().invert() );
 					handle.scale.copy( tempVector );
 					handle.scale.copy( tempVector );
 					handle.visible = this.dragging;
 					handle.visible = this.dragging;
 
 
@@ -1483,7 +1483,7 @@ var TransformControlsGizmo = function () {
 				// Align handles to current local or world rotation
 				// Align handles to current local or world rotation
 
 
 				tempQuaternion2.copy( quaternion );
 				tempQuaternion2.copy( quaternion );
-				alignVector.copy( this.eye ).applyQuaternion( tempQuaternion.copy( quaternion ).inverse() );
+				alignVector.copy( this.eye ).applyQuaternion( tempQuaternion.copy( quaternion ).invert() );
 
 
 				if ( handle.name.search( "E" ) !== - 1 ) {
 				if ( handle.name.search( "E" ) !== - 1 ) {
 
 

+ 1 - 1
examples/jsm/controls/experimental/CameraControls.js

@@ -135,7 +135,7 @@ var CameraControls = function ( object, domElement ) {
 
 
 		// so camera.up is the orbit axis
 		// so camera.up is the orbit axis
 		var quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );
 		var quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );
-		var quatInverse = quat.clone().inverse();
+		var quatInverse = quat.clone().invert();
 
 
 		var lastPosition = new Vector3();
 		var lastPosition = new Vector3();
 		var lastQuaternion = new Quaternion();
 		var lastQuaternion = new Quaternion();

+ 1 - 1
examples/jsm/loaders/FBXLoader.js

@@ -2785,7 +2785,7 @@ var FBXLoader = ( function () {
 				postRotation.push( eulerOrder );
 				postRotation.push( eulerOrder );
 
 
 				postRotation = new Euler().fromArray( postRotation );
 				postRotation = new Euler().fromArray( postRotation );
-				postRotation = new Quaternion().setFromEuler( postRotation ).inverse();
+				postRotation = new Quaternion().setFromEuler( postRotation ).invert();
 
 
 			}
 			}
 
 

+ 14 - 4
src/Three.Legacy.js

@@ -738,12 +738,22 @@ Plane.prototype.isIntersectionLine = function ( line ) {
 
 
 };
 };
 
 
-Quaternion.prototype.multiplyVector3 = function ( vector ) {
+Object.assign( Quaternion.prototype, {
 
 
-	console.warn( 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' );
-	return vector.applyQuaternion( this );
+	multiplyVector3: function ( vector ) {
 
 
-};
+		console.warn( 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' );
+		return vector.applyQuaternion( this );
+
+	},
+	inverse: function ( ) {
+
+		console.warn( 'THREE.Quaternion: .inverse() has been renamed to invert().' );
+		return this.invert();
+
+	}
+
+} );
 
 
 Object.assign( Ray.prototype, {
 Object.assign( Ray.prototype, {
 
 

+ 1 - 1
src/core/Object3D.js

@@ -291,7 +291,7 @@ Object3D.prototype = Object.assign( Object.create( EventDispatcher.prototype ),
 
 
 			_m1.extractRotation( parent.matrixWorld );
 			_m1.extractRotation( parent.matrixWorld );
 			_q1.setFromRotationMatrix( _m1 );
 			_q1.setFromRotationMatrix( _m1 );
-			this.quaternion.premultiply( _q1.inverse() );
+			this.quaternion.premultiply( _q1.invert() );
 
 
 		}
 		}
 
 

+ 6 - 1
src/math/Quaternion.d.ts

@@ -82,7 +82,7 @@ export class Quaternion {
 	/**
 	/**
 	 * Inverts this quaternion.
 	 * Inverts this quaternion.
 	 */
 	 */
-	inverse(): Quaternion;
+	invert(): Quaternion;
 
 
 	conjugate(): Quaternion;
 	conjugate(): Quaternion;
 	dot( v: Quaternion ): number;
 	dot( v: Quaternion ): number;
@@ -180,4 +180,9 @@ export class Quaternion {
 	 */
 	 */
 	multiplyVector3( v: any ): any;
 	multiplyVector3( v: any ): any;
 
 
+	/**
+	 * @deprecated Use {@link Quaternion#invert .invert()} instead.
+	 */
+	inverse(): Quaternion;
+
 }
 }

+ 1 - 1
src/math/Quaternion.js

@@ -410,7 +410,7 @@ class Quaternion {
 
 
 	}
 	}
 
 
-	inverse() {
+	invert() {
 
 
 		// quaternion is assumed to have unit length
 		// quaternion is assumed to have unit length
 
 

+ 1 - 1
test/unit/src/math/Quaternion.tests.js

@@ -537,7 +537,7 @@ export default QUnit.module( 'Maths', () => {
 
 
 		} );
 		} );
 
 
-		QUnit.test( "inverse/conjugate", ( assert ) => {
+		QUnit.test( "invert/conjugate", ( assert ) => {
 
 
 			var a = new Quaternion( x, y, z, w );
 			var a = new Quaternion( x, y, z, w );