PDA

View Full Version : storing the modelview matrix?



de_mon_uk
01-08-2004, 02:12 PM
Hi,

I am trying to make my 3D world rotate using the 'crystal sphere' method, using a mouse drag... and it works just fine except that when I'm done with the mouse drag the modelview matrix I transformed is not stored for the next draw and I can't work out why!

The final part of my transform is;

*rot = (float)((180/PI)*sqrt(dx*dx+dy*dy+dz*dz)/sqrt(R2));

glGetFloatv(GL_MODELVIEW_MATRIX,m);
*w1 = m[0]*a1 + m[1]*a2 + m[2]*a3;
*w2 = m[4]*a1 + m[5]*a2 + m[6]*a3;
*w3 = m[8]*a1 + m[9]*a2 + m[10]*a3;

After doing the glLoadIdentity(); in the draw loop I assumed glRotatef(rot, w1, w2, w3); would alter the matrix so that the next drag would alter it further yet it doesn't seem to work.

I know the maths is right but how do I make the new matrix my curent modelview matrix? Cheers.

KreK
01-09-2004, 01:59 PM
Ummm... Something like this?

GLfloat m[16]; // your custom MW matrix

glLoadMatrixf( m ); // use 'm' as MW matrix
glMultMatrixf( m ); // multiply current MW with 'm'