Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector
In directory usw-pr-cvs1:/tmp/cvs-serv14858/src/java/org/lwjgl/vector
Modified Files:
Matrix4f.java Matrix3f.java
Log Message:
Determinants
Index: Matrix4f.java
CVS Browser:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix4f.java
===================================================================
RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix4f.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Matrix4f.java 24 Aug 2002 21:26:47 -0000 1.4
+++ Matrix4f.java 24 Aug 2002 21:35:20 -0000 1.5
@@ -395,8 +395,36 @@
m33 = dest.m33;
} else
transpose();
-
+
return dest;
+ }
+
+ /**
+ * @return the determinant of the matrix
+ */
+ public float determinant() {
+ float f =
+ m00
+ * ((m11 * m22 * m33 + m12 * m23 * m31 + m13 * m21 * m32)
+ - m13 * m22 * m31
+ - m11 * m23 * m32
+ - m12 * m21 * m33);
+ f -= m01
+ * ((m10 * m22 * m33 + m12 * m23 * m30 + m13 * m20 * m32)
+ - m13 * m22 * m30
+ - m10 * m23 * m32
+ - m12 * m20 * m33);
+ f += m02
+ * ((m10 * m21 * m33 + m11 * m23 * m30 + m13 * m20 * m31)
+ - m13 * m21 * m30
+ - m10 * m23 * m31
+ - m11 * m20 * m33);
+ f -= m03
+ * ((m10 * m21 * m32 + m11 * m22 * m30 + m12 * m20 * m31)
+ - m12 * m21 * m30
+ - m10 * m22 * m31
+ - m11 * m20 * m32);
+ return f;
}
Index: Matrix3f.java
CVS Browser:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix3f.java
===================================================================
RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix3f.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Matrix3f.java 24 Aug 2002 21:26:47 -0000 1.4
+++ Matrix3f.java 24 Aug 2002 21:35:20 -0000 1.5
@@ -288,10 +288,10 @@
* @return the transposed matrix
*/
public Matrix3f transpose(Matrix3f dest) {
-
+
if (dest == null)
dest = new Matrix3f();
-
+
if (this != dest) {
m00 = dest.m00;
m01 = dest.m10;
@@ -304,9 +304,20 @@
m22 = dest.m22;
} else
transpose();
-
+
return this;
-
+
+ }
+
+ /**
+ * @return the determinant of the matrix
+ */
+ public float determinant() {
+ float f =
+ m00 * (m11 * m22 - m12 * m21)
+ + m01 * (m12 * m20 - m10 * m22)
+ + m02 * (m10 * m21 - m11 * m20);
+ return f;
}
/**
|