]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - mathlib.h
renamed MATERIALFLAG_WATER to MATERIALFLAG_WATERSCROLL
[xonotic/darkplaces.git] / mathlib.h
index 2b6201dc802b4d6d7da70293ff1c2aac882e760d..1e0f98c003212c6419ce2c7be7abf4355201b833 100644 (file)
--- a/mathlib.h
+++ b/mathlib.h
@@ -60,6 +60,9 @@ extern vec3_t vec3_origin;
 // TOCHECK: what is this function supposed to do?
 #define bit2i(n) log2i((n) << 1)
 
+// boolean XOR (why doesn't C have the ^^ operator for this purpose?)
+#define boolxor(a,b) (!(a) != !(b))
+
 // returns the smallest integer greater than or equal to "value", or 0 if "value" is too big
 unsigned int CeilPowerOf2(unsigned int value);
 
@@ -212,6 +215,8 @@ void AngleVectors (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
 void AngleVectorsFLU (const vec3_t angles, vec3_t forward, vec3_t left, vec3_t up);
 // LordHavoc: builds a [3][4] matrix
 void AngleMatrix (const vec3_t angles, const vec3_t translate, vec_t matrix[][4]);
+// LordHavoc: calculates pitch/yaw/roll angles from forward and up vectors
+void AnglesFromVectors (vec3_t angles, const vec3_t forward, const vec3_t up, qboolean flippitch);
 
 // LordHavoc: like AngleVectors, but taking a forward vector instead of angles, useful!
 void VectorVectors(const vec3_t forward, vec3_t right, vec3_t up);