From: Caspian Rychlik-P. <ci...@us...> - 2002-08-28 00:06:04
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector In directory usw-pr-cvs1:/tmp/cvs-serv15688/src/java/org/lwjgl/vector Modified Files: Matrix2f.java Vector3f.java Matrix4f.java Vector2f.java Vector.java Matrix.java Matrix3f.java Log Message: Fixes Index: Matrix2f.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix2f.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix2f.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Matrix2f.java 26 Aug 2002 20:24:29 -0000 1.7 +++ Matrix2f.java 28 Aug 2002 00:05:45 -0000 1.8 @@ -84,8 +84,8 @@ public Matrix load(FloatBuffer buf) { m00 = buf.get(); - m10 = buf.get(); m01 = buf.get(); + m10 = buf.get(); m11 = buf.get(); return this; @@ -101,8 +101,8 @@ public Matrix loadTranspose(FloatBuffer buf) { m00 = buf.get(); - m01 = buf.get(); m10 = buf.get(); + m01 = buf.get(); m11 = buf.get(); return this; @@ -115,8 +115,8 @@ */ public Matrix store(FloatBuffer buf) { buf.put(m00); - buf.put(m10); buf.put(m01); + buf.put(m10); buf.put(m11); return this; } @@ -128,8 +128,8 @@ */ public Matrix storeTranspose(FloatBuffer buf) { buf.put(m00); - buf.put(m01); buf.put(m10); + buf.put(m01); buf.put(m11); return this; } @@ -293,6 +293,7 @@ * @return this */ public Matrix invert() { + assert false : "Not implemented yet!"; return this; } @@ -356,6 +357,7 @@ * @see org.lwjgl.vector.Matrix#determinant() */ public float determinant() { + assert false : "Not implemented yet!"; return 0; } Index: Vector3f.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector3f.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector3f.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Vector3f.java 26 Aug 2002 20:24:29 -0000 1.5 +++ Vector3f.java 28 Aug 2002 00:05:45 -0000 1.6 @@ -143,6 +143,32 @@ return dest.set(left.x - right.x, left.y - right.y, left.z - right.z); } } + + /** + * The cross product of two vectors. + * + * @param left The LHS vector + * @param right The RHS vector + * @param dest The destination result, or null if a new vector is to be created + * @return left cross right + */ + public static Vector3f cross( + Vector3f left, + Vector3f right, + Vector3f dest) + { + + if (dest == null) + dest = new Vector3f(); + + dest.set( + left.y * right.z - left.z * right.y, + right.x * left.z - right.z * left.x, + left.x * right.y - left.y * right.x + ); + + return dest; + } 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.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Matrix4f.java 26 Aug 2002 20:24:29 -0000 1.8 +++ Matrix4f.java 28 Aug 2002 00:05:45 -0000 1.9 @@ -39,6 +39,16 @@ * @author foo */ public class Matrix4f extends Matrix { + + public float m00 = 1.0f, m01, m02, m03, m10, m11 = 1.0f, m12, m13, m20, m21, m22 = 1.0f, m23, m30, m31, m32, m33 = 1.0f; + + /** + * Construct a Matrix4f + */ + public Matrix4f() { + super(); + } + /** * Set this matrix to be the identity matrix. * @return this @@ -91,15 +101,6 @@ } - - public float m00 = 1.0f, m01, m02, m03, m10, m11 = 1.0f, m12, m13, m20, m21, m22 = 1.0f, m23, m30, m31, m32, m33 = 1.0f; - - /** - * Construct a Matrix4f - */ - public Matrix4f() { - super(); - } /** * Load from another matrix4f * @param src The source matrix @@ -137,20 +138,20 @@ public Matrix load(FloatBuffer buf) { m00 = buf.get(); - m10 = buf.get(); - m20 = buf.get(); - m30 = buf.get(); m01 = buf.get(); - m11 = buf.get(); - m21 = buf.get(); - m31 = buf.get(); m02 = buf.get(); - m12 = buf.get(); - m22 = buf.get(); - m32 = buf.get(); m03 = buf.get(); + m10 = buf.get(); + m11 = buf.get(); + m12 = buf.get(); m13 = buf.get(); + m20 = buf.get(); + m21 = buf.get(); + m22 = buf.get(); m23 = buf.get(); + m30 = buf.get(); + m31 = buf.get(); + m32 = buf.get(); m33 = buf.get(); return this; @@ -166,20 +167,20 @@ public Matrix loadTranspose(FloatBuffer buf) { m00 = buf.get(); - m01 = buf.get(); - m02 = buf.get(); - m03 = buf.get(); m10 = buf.get(); - m11 = buf.get(); - m12 = buf.get(); - m13 = buf.get(); m20 = buf.get(); - m21 = buf.get(); - m22 = buf.get(); - m23 = buf.get(); m30 = buf.get(); + m01 = buf.get(); + m11 = buf.get(); + m21 = buf.get(); m31 = buf.get(); + m02 = buf.get(); + m12 = buf.get(); + m22 = buf.get(); m32 = buf.get(); + m03 = buf.get(); + m13 = buf.get(); + m23 = buf.get(); m33 = buf.get(); return this; @@ -192,20 +193,20 @@ */ public Matrix store(FloatBuffer buf) { buf.put(m00); - buf.put(m10); - buf.put(m20); - buf.put(m30); buf.put(m01); - buf.put(m11); - buf.put(m21); - buf.put(m31); buf.put(m02); - buf.put(m12); - buf.put(m22); - buf.put(m32); buf.put(m03); + buf.put(m10); + buf.put(m11); + buf.put(m12); buf.put(m13); + buf.put(m20); + buf.put(m21); + buf.put(m22); buf.put(m23); + buf.put(m30); + buf.put(m31); + buf.put(m32); buf.put(m33); return this; } @@ -217,20 +218,20 @@ */ public Matrix storeTranspose(FloatBuffer buf) { buf.put(m00); - buf.put(m01); - buf.put(m02); - buf.put(m03); buf.put(m10); - buf.put(m11); - buf.put(m12); - buf.put(m13); buf.put(m20); - buf.put(m21); - buf.put(m22); - buf.put(m23); buf.put(m30); + buf.put(m01); + buf.put(m11); + buf.put(m21); buf.put(m31); + buf.put(m02); + buf.put(m12); + buf.put(m22); buf.put(m32); + buf.put(m03); + buf.put(m13); + buf.put(m23); buf.put(m33); return this; } @@ -425,6 +426,76 @@ } /** + * Translate this matrix + * @param vec The vector to translate by + * @return this + */ + public Matrix4f translate(Vector2f vec) { + m30 += m00 * vec.x + m10 * vec.y; + m31 += m01 * vec.x + m11 * vec.y; + m32 += m02 * vec.x + m12 * vec.y; + m33 += m03 * vec.x + m13 * vec.y; + return this; + } + + /** + * Translate this matrix + * @param vec The vector to translate by + * @return this + */ + public Matrix4f translate(Vector3f vec) { + m30 += m00 * vec.x + m10 * vec.y + m20 * vec.z; + m31 += m01 * vec.x + m11 * vec.y + m21 * vec.z; + m32 += m02 * vec.x + m12 * vec.y + m22 * vec.z; + m33 += m03 * vec.x + m13 * vec.y + m23 * vec.z; + return this; + } + + + + /** + * Translate this matrix and stash the result in another matrix + * @param vec The vector to translate by + * @param dest The destination matrix or null if a new matrix is to be created + * @return the translated matrix + */ + public Matrix4f translate(Vector3f vec, Matrix4f dest) { + if (dest == null) + dest = new Matrix4f(); + else if (dest == this) + return translate(vec); + + dest.m30 += m00 * vec.x + m10 * vec.y + m20 * vec.z; + dest.m31 += m01 * vec.x + m11 * vec.y + m21 * vec.z; + dest.m32 += m02 * vec.x + m12 * vec.y + m22 * vec.z; + dest.m33 += m03 * vec.x + m13 * vec.y + m23 * vec.z; + + return dest; + } + + /** + * Translate this matrix and stash the result in another matrix + * @param vec The vector to translate by + * @param dest The destination matrix or null if a new matrix is to be created + * @return the translated matrix + */ + public Matrix4f translate(Vector2f vec, Matrix4f dest) { + if (dest == null) + dest = new Matrix4f(); + else if (dest == this) + return translate(vec); + + dest.m30 += m00 * vec.x + m10 * vec.y; + dest.m31 += m01 * vec.x + m11 * vec.y; + dest.m32 += m02 * vec.x + m12 * vec.y; + dest.m33 += m03 * vec.x + m13 * vec.y; + + return dest; + } + + + + /** * Transpose this matrix and place the result in another matrix * @param dest The destination matrix or null if a new matrix is to be created * @return the transposed matrix @@ -488,6 +559,7 @@ * @return this */ public Matrix invert() { + assert false : "Not implemented yet!"; return this; } Index: Vector2f.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector2f.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector2f.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Vector2f.java 26 Aug 2002 20:24:29 -0000 1.5 +++ Vector2f.java 28 Aug 2002 00:05:45 -0000 1.6 @@ -151,7 +151,7 @@ /** * The dot product of two vectors is calculated as - * v1.x * v2.x + v1.y * v2.y + * v1.x * v2.x + v1.y * v2.y + v1.z * v2.z * @param left The LHS vector * @param right The RHS vector * @return left dot right @@ -159,6 +159,8 @@ public static float dot(Vector2f left, Vector2f right) { return left.x * right.x + left.y * right.y; } + + /** * Calculate the angle between two vectors, in degrees Index: Vector.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Vector.java 26 Aug 2002 20:24:29 -0000 1.2 +++ Vector.java 28 Aug 2002 00:05:45 -0000 1.3 @@ -83,7 +83,7 @@ * Normalise this vector * @return this */ - public final Vector normalise() { + public final Vector normalize() { float l = 1.0f / length(); return scale(l); } Index: Matrix.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Matrix.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Matrix.java 26 Aug 2002 20:24:29 -0000 1.3 +++ Matrix.java 28 Aug 2002 00:05:45 -0000 1.4 @@ -36,7 +36,8 @@ /** * $Id$ * - * Base class for matrices. + * Base class for matrices. When a matrix is constructed it will be the identity + * matrix unless otherwise stated. * * @author cix_foo <ci...@us...> * @version $Revision$ 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.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Matrix3f.java 26 Aug 2002 20:24:29 -0000 1.8 +++ Matrix3f.java 28 Aug 2002 00:05:45 -0000 1.9 @@ -90,13 +90,13 @@ public Matrix load(FloatBuffer buf) { m00 = buf.get(); - m10 = buf.get(); - m20 = buf.get(); m01 = buf.get(); - m11 = buf.get(); - m21 = buf.get(); m02 = buf.get(); + m10 = buf.get(); + m11 = buf.get(); m12 = buf.get(); + m20 = buf.get(); + m21 = buf.get(); m22 = buf.get(); return this; @@ -112,13 +112,13 @@ public Matrix loadTranspose(FloatBuffer buf) { m00 = buf.get(); - m01 = buf.get(); - m02 = buf.get(); m10 = buf.get(); - m11 = buf.get(); - m12 = buf.get(); m20 = buf.get(); + m01 = buf.get(); + m11 = buf.get(); m21 = buf.get(); + m02 = buf.get(); + m12 = buf.get(); m22 = buf.get(); return this; @@ -131,13 +131,13 @@ */ public Matrix store(FloatBuffer buf) { buf.put(m00); - buf.put(m10); - buf.put(m20); buf.put(m01); - buf.put(m11); - buf.put(m21); buf.put(m02); + buf.put(m10); + buf.put(m11); buf.put(m12); + buf.put(m20); + buf.put(m21); buf.put(m22); return this; } @@ -149,13 +149,13 @@ */ public Matrix storeTranspose(FloatBuffer buf) { buf.put(m00); - buf.put(m01); - buf.put(m02); buf.put(m10); - buf.put(m11); - buf.put(m12); buf.put(m20); + buf.put(m01); + buf.put(m11); buf.put(m21); + buf.put(m02); + buf.put(m12); buf.put(m22); return this; } @@ -366,6 +366,7 @@ * @return this */ public Matrix invert() { + assert false : "Not implemented yet!"; return this; } |