Veškeré 3D operace, operace s maticemi a složitá matematika týkající se 3D prostoru je koncentrována zde. Modul je postaven bez použití tříd kvůli efektivnosti, na kterou se v tomto modulu zvláště hledí.
typedef GLfloat GLMatrix[4][4]; - definice pro matici
typedef GLfloat GLVector3[3]; - definice pro vektor
inline void MatrixCopy(GLMatrix *MD, GLMatrix *MS) { assert(MS!=MD);
memcpy(MD,MS,sizeof(GLMatrix)); }; - funkce pro kopírování matice
void MatrixLoadIdentity(GLMatrix *M); - načtení jednotkové matice
void MatrixMoveForward(GLMatrix *M, GLfloat S); - pohyb objektu, jehož
poloha je dána touto maticí, dopředu o S
void MatrixMoveBackward(GLMatrix *M, GLfloat S); - pohyb objektu zpět
void MatrixTranspose(GLMatrix *MD, GLMatrix *MS); - transponuje matici MS a
výsledek uloží do MD
void MatrixMove(GLMatrix (*M), float Forward, float LR, float DU); - pohyb
objektu, jehož poloha je dána maticí M, o Forward směrem dopředu, o LR směrem
do boku (kladná hodnota doprava), o DU směrem vertikálním (kladná hodnota
nahoru, záporná dolů)
void MatrixRotate(GLMatrix *M, const GLfloat RotLR, const GLfloat RotUD, const
GLfloat Rol); - rotuje objekt popsaný maticí M horizontálně o RotLR,
vertikálně o RotUD a kolem vlastní osy o Rol; hodnoty jsou v radiánech