First attempt at adding John Tsiombikas' spaceball support for X11. It compiles...
[freeglut] / progs / demos / spaceball / vmath.h
diff --git a/progs/demos/spaceball/vmath.h b/progs/demos/spaceball/vmath.h
new file mode 100644 (file)
index 0000000..5010c07
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef VMATH_H_\r
+#define VMATH_H_\r
+\r
+typedef struct { float x, y, z; } vec3_t;\r
+typedef struct { float x, y, z, w; } vec4_t;\r
+\r
+typedef vec4_t quat_t;\r
+\r
+typedef float mat4_t[4][4];\r
+\r
+/* vector functions */\r
+static inline vec3_t v3_cons(float x, float y, float z);\r
+static inline float v3_dot(vec3_t v1, vec3_t v2);\r
+\r
+/* quaternion functions */\r
+static inline quat_t quat_cons(float s, float x, float y, float z);\r
+static inline vec3_t quat_vec(quat_t q);\r
+static inline quat_t quat_mul(quat_t q1, quat_t q2);\r
+static inline void quat_to_mat(mat4_t res, quat_t q);\r
+quat_t quat_rotate(quat_t q, float angle, float x, float y, float z);\r
+\r
+/* matrix functions */\r
+static inline void m4_cons(mat4_t m,\r
+               float m11, float m12, float m13, float m14,\r
+               float m21, float m22, float m23, float m24,\r
+               float m31, float m32, float m33, float m34,\r
+               float m41, float m42, float m43, float m44);\r
+\r
+#include "vmath.inl"\r
+\r
+#endif /* VMATH_H_ */\r