Hi,
I’ve been trying to get my hands on the state of the model matrix. I found some recommendations from old discussion and here’s what I did to test them:
GLdouble modelMatrix[16];
glPushMatrix();
cout << "Before transformations" << endl;
glGetDoublev(GL_MODELVIEW, modelMatrix);
for(int i = 0; i < 16; i++)
{
if(i % 4 == 0)
cout << endl;
cout << modelMatrix[i] << " ";
}
cout << endl;
glTranslatef(1.0f, 2.0f, 3.0f);
glRotatef(shoot_angle_y, 0.0f, 1.0f, 0.0f);
glRotatef(shoot_angle_x, 1.0f, 0.0f, 0.0f);
glTranslatef(0.0f, -2.0f, -1.0f);
cout << "After transformations" << endl;
glGetDoublev(GL_MODELVIEW, modelMatrix);
for(int i = 0; i < 16; i++)
{
if(i % 4 == 0)
cout << endl;
cout << modelMatrix[i] << " ";
}
cout << endl;
glutSolidSphere(0.27f, 32, 32);
cout << "After drawing something" << endl;
glGetDoublev(GL_MODELVIEW, modelMatrix);
for(int i = 0; i < 16; i++)
{
if(i % 4 == 0)
cout << endl;
cout << modelMatrix[i] << " ";
}
cout << endl;
glPopMatrix();
The problem is all the loops print this:
-9.25596e+061 -9.25596e+061 -9.25596e+061 -9.25596e+061
-9.25596e+061 -9.25596e+061 -9.25596e+061 -9.25596e+061
-9.25596e+061 -9.25596e+061 -9.25596e+061 -9.25596e+061
-9.25596e+061 -9.25596e+061 -9.25596e+061 -9.25596e+061
So it seems like I’m either unable to change the state of the matrix or I still don’t know how to read it. Probably the latter one since the vertices do move accordingly. Please help me. Do I do something wrong in my code or have I misunderstood something?