Mat4f getModelViewMatrix(){ GLfloat m[16]; glGetFloatv(GL_MODELVIEW_MATRIX, m); Mat4f matMV(m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11], m[12], m[13], m[14], m[15]); return matMV.transpose(); // convert to row major }
// getModelViewMatrix will return a copy of the // current OpenGL MODELVIEW matrix. Mat4<float> SampleModel::getModelViewMatrix() { /************************** ** ** GET THE OPENGL MODELVIEW MATRIX ** ** Since OpenGL stores it's matricies in ** column major order and our library ** use row major order, we will need to ** transpose what OpenGL gives us before returning. ** ** Hint: Use look up glGetFloatv or glGetDoublev ** for how to get these values from OpenGL. ** *******************************/ GLfloat m[16]; glGetFloatv(GL_MODELVIEW_MATRIX, m); Mat4f matMV(m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11], m[12], m[13], m[14], m[15]); return matMV.transpose(); // because the matrix GL returns is column major // convert to row major }