00001 #ifndef MATH_H 00002 #define MATH_H 00003 00004 #include "shared.h" 00005 #include "vector.h" 00006 #include "vertex.h" 00007 #include "quat.h" 00008 00009 void LoadIdentity(float m[]); 00010 void CopyMatrix(float m[], float n[]); 00011 void MultMatrix(float m[], float n[]); 00012 void MatrixInverse(float m[]); 00013 QUAT AxisAngleToMatrix(VECTOR axis, float theta, float m[16]); 00014 float DotProduct(VECTOR vec1, VECTOR vec2); 00015 VECTOR CrossVector(VECTOR vec1, VECTOR vec2); 00016 void EulerToQuat(float roll, float pitch, float yaw, QUAT * quat); 00017 float MagnitudeQuat(QUAT q1); 00018 QUAT NormaliseQuat(QUAT q1); 00019 void QuatToMatrix(QUAT quat, float m[16]); 00020 QUAT MultQuat(QUAT q1, QUAT q2); 00021 VECTOR GetNormal(VECTOR vertex1, VECTOR vertex2, VECTOR vertex3); 00022 VERTEX GetNorm(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3); 00023 float MagnitudeVector(VECTOR vec1); 00024 VECTOR GetUnitVector(VECTOR vector); 00025 VECTOR GetEdgeVector(VECTOR point1, VECTOR point2); 00026 00027 #endif