1 #ifndef ENGINE_GEOMETRY_H_
2 #define ENGINE_GEOMETRY_H_
6 typedef struct Vector Vector;
7 typedef struct Transform Transform;
16 GLfloat a1, a2, a3, a4;
17 GLfloat b1, b2, b3, b4;
18 GLfloat c1, c2, c3, c4;
19 GLfloat d1, d2, d3, d4;
22 static const float TAU = 6.28318530718f;
25 Transform multiply(Transform t1, Transform t2);
26 void translate(Transform* transform, Vector vec);
27 void rotate(Transform* transform, Vector axis, float angle);
28 Vector addVectors(Vector v1, Vector v2);
29 Vector subtractVectors(Vector v1, Vector v2);
30 Vector crossProduct(Vector v1, Vector v2);
31 float dotProduct(Vector v1, Vector v2);
32 Vector scaleVector(Vector vec, float scale);
33 Vector growVectorNoFlip(Vector vec, float amount);
34 Vector clampMagnitude(Vector vec, float maxMagnitude);
35 float magnitude(Vector vec);
36 Vector applyTransform(Transform transform, Vector vec);
37 Vector translationOf(Transform transform);
38 Vector normalized(Vector vec);
40 #endif // ENGINE_GEOMETRY_H_