|
@@ -482,6 +482,8 @@ THREE.Matrix4.prototype = {
|
|
|
|
|
|
getInverse: function ( m ) {
|
|
getInverse: function ( m ) {
|
|
|
|
|
|
|
|
+ // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm
|
|
|
|
+
|
|
var n11 = m.n11, n12 = m.n12, n13 = m.n13, n14 = m.n14,
|
|
var n11 = m.n11, n12 = m.n12, n13 = m.n13, n14 = m.n14,
|
|
n21 = m.n21, n22 = m.n22, n23 = m.n23, n24 = m.n24,
|
|
n21 = m.n21, n22 = m.n22, n23 = m.n23, n24 = m.n24,
|
|
n31 = m.n31, n32 = m.n32, n33 = m.n33, n34 = m.n34,
|
|
n31 = m.n31, n32 = m.n32, n33 = m.n33, n34 = m.n34,
|
|
@@ -768,41 +770,6 @@ THREE.Matrix4.prototype = {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
-/*
|
|
|
|
-THREE.Matrix4.makeInvert = function ( m1, m2 ) {
|
|
|
|
-
|
|
|
|
- // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm
|
|
|
|
-
|
|
|
|
- var n11 = m1.n11, n12 = m1.n12, n13 = m1.n13, n14 = m1.n14,
|
|
|
|
- n21 = m1.n21, n22 = m1.n22, n23 = m1.n23, n24 = m1.n24,
|
|
|
|
- n31 = m1.n31, n32 = m1.n32, n33 = m1.n33, n34 = m1.n34,
|
|
|
|
- n41 = m1.n41, n42 = m1.n42, n43 = m1.n43, n44 = m1.n44;
|
|
|
|
-
|
|
|
|
- if ( m2 === undefined ) m2 = new THREE.Matrix4();
|
|
|
|
-
|
|
|
|
- m2.n11 = n23*n34*n42 - n24*n33*n42 + n24*n32*n43 - n22*n34*n43 - n23*n32*n44 + n22*n33*n44;
|
|
|
|
- m2.n12 = n14*n33*n42 - n13*n34*n42 - n14*n32*n43 + n12*n34*n43 + n13*n32*n44 - n12*n33*n44;
|
|
|
|
- m2.n13 = n13*n24*n42 - n14*n23*n42 + n14*n22*n43 - n12*n24*n43 - n13*n22*n44 + n12*n23*n44;
|
|
|
|
- m2.n14 = n14*n23*n32 - n13*n24*n32 - n14*n22*n33 + n12*n24*n33 + n13*n22*n34 - n12*n23*n34;
|
|
|
|
- m2.n21 = n24*n33*n41 - n23*n34*n41 - n24*n31*n43 + n21*n34*n43 + n23*n31*n44 - n21*n33*n44;
|
|
|
|
- m2.n22 = n13*n34*n41 - n14*n33*n41 + n14*n31*n43 - n11*n34*n43 - n13*n31*n44 + n11*n33*n44;
|
|
|
|
- m2.n23 = n14*n23*n41 - n13*n24*n41 - n14*n21*n43 + n11*n24*n43 + n13*n21*n44 - n11*n23*n44;
|
|
|
|
- m2.n24 = n13*n24*n31 - n14*n23*n31 + n14*n21*n33 - n11*n24*n33 - n13*n21*n34 + n11*n23*n34;
|
|
|
|
- m2.n31 = n22*n34*n41 - n24*n32*n41 + n24*n31*n42 - n21*n34*n42 - n22*n31*n44 + n21*n32*n44;
|
|
|
|
- m2.n32 = n14*n32*n41 - n12*n34*n41 - n14*n31*n42 + n11*n34*n42 + n12*n31*n44 - n11*n32*n44;
|
|
|
|
- m2.n33 = n13*n24*n41 - n14*n22*n41 + n14*n21*n42 - n11*n24*n42 - n12*n21*n44 + n11*n22*n44;
|
|
|
|
- m2.n34 = n14*n22*n31 - n12*n24*n31 - n14*n21*n32 + n11*n24*n32 + n12*n21*n34 - n11*n22*n34;
|
|
|
|
- m2.n41 = n23*n32*n41 - n22*n33*n41 - n23*n31*n42 + n21*n33*n42 + n22*n31*n43 - n21*n32*n43;
|
|
|
|
- m2.n42 = n12*n33*n41 - n13*n32*n41 + n13*n31*n42 - n11*n33*n42 - n12*n31*n43 + n11*n32*n43;
|
|
|
|
- m2.n43 = n13*n22*n41 - n12*n23*n41 - n13*n21*n42 + n11*n23*n42 + n12*n21*n43 - n11*n22*n43;
|
|
|
|
- m2.n44 = n12*n23*n31 - n13*n22*n31 + n13*n21*n32 - n11*n23*n32 - n12*n21*n33 + n11*n22*n33;
|
|
|
|
- m2.multiplyScalar( 1 / m1.determinant() );
|
|
|
|
-
|
|
|
|
- return m2;
|
|
|
|
-
|
|
|
|
-};
|
|
|
|
-*/
|
|
|
|
-
|
|
|
|
THREE.Matrix4.makeInvert3x3 = function ( m1 ) {
|
|
THREE.Matrix4.makeInvert3x3 = function ( m1 ) {
|
|
|
|
|
|
// input: THREE.Matrix4, output: THREE.Matrix3
|
|
// input: THREE.Matrix4, output: THREE.Matrix3
|