]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - matrixlib.h
tolerate clients living up to one frame in the future, just to be more flexible with...
[xonotic/darkplaces.git] / matrixlib.h
index 90e816270a4b7cc5346058673f9feadba872c1a8..f510f3d9d567975b99ad0c624f89a0383d334871 100644 (file)
@@ -6,6 +6,8 @@
 #define M_PI           3.14159265358979323846  // matches value in gcc v2 math.h
 #endif
 
+//#define MATRIX4x4_OPENGLORIENTATION
+
 typedef struct matrix4x4_s
 {
        float m[4][4];
@@ -28,9 +30,12 @@ void Matrix4x4_Concat (matrix4x4_t *out, const matrix4x4_t *in1, const matrix4x4
 // swaps the rows and columns of the matrix
 // (is this useful for anything?)
 void Matrix4x4_Transpose (matrix4x4_t *out, const matrix4x4_t *in1);
-// swaps the rows and columns of the rotation matrix
-// (inverting the rotation, but leaving everything else the same)
-void Matrix4x4_Transpose3x3 (matrix4x4_t *out, const matrix4x4_t *in1);
+// creates a matrix that does the opposite of the matrix provided
+// this is a full matrix inverter, it should be able to invert any matrix that
+// is possible to invert
+// (non-uniform scaling, rotation, shearing, and translation, possibly others)
+// warning: this function is SLOW
+int Matrix4x4_Invert_Full (matrix4x4_t *out, const matrix4x4_t *in1);
 // creates a matrix that does the opposite of the matrix provided
 // only supports translate, rotate, scale (not scale3) matrices
 void Matrix4x4_Invert_Simple (matrix4x4_t *out, const matrix4x4_t *in1);