void apply_matrix(const matrix& m) // Applies the given matrix to the current GL matrix. { float mat[16]; // Copy to the 4x4 layout. for (int col = 0; col < 4; col++) { for (int row = 0; row < 3; row++) { mat[col * 4 + row] = m.GetColumn(col).get(row); } if (col < 3) { mat[col * 4 + 3] = 0; } else { mat[col * 4 + 3] = 1; } } // Apply to the current OpenGL matrix. glMultMatrixf(mat); }
void OGLViewMatrix(const matrix& m) // Sets the OpenGL modelview matrix. { float mat[16]; // Copy to the 4x4 layout. for (int col = 0; col < 4; col++) { for (int row = 0; row < 3; row++) { mat[col * 4 + row] = m.GetColumn(col).Get(row); } if (col < 3) { mat[col * 4 + 3] = 0; } else { mat[col * 4 + 3] = 1; } } // Apply to the current OpenGL matrix. glMultMatrixf(mat); }