Update of /cvsroot/epfl/tgengine-0.1
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22035
Modified Files:
camera.cc
Log Message:
quaternion camera bug
Index: camera.cc
===================================================================
RCS file: /cvsroot/epfl/tgengine-0.1/camera.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** camera.cc 28 Oct 2004 21:10:16 -0000 1.6
--- camera.cc 30 Oct 2004 17:43:27 -0000 1.7
***************
*** 25,29 ****
void Camera::Update (float time)
{
! if (Engine::pConsole->GetState()) //si la console est ouverte, on desactive la souris
return;
--- 25,29 ----
void Camera::Update (float time)
{
! /*if (Engine::pConsole->GetState()) //si la console est ouverte, on desactive la souris
return;
***************
*** 36,44 ****
//On se fout du temps pour ce qui est des mouvements de souris...
! vRot.y += ((float)mX-middleX)*fSensivity/**time*/*6;
! vRot.x += ((float)mY-middleY)*fSensivity/*time*/*6;
//SDL_WarpMouse (middleX, middleY);
! Engine::pEngine->WarpMouse(middleX, middleY);
/* float factor;
--- 36,44 ----
//On se fout du temps pour ce qui est des mouvements de souris...
! vRot.y += ((float)mX-middleX)*fSensivity*6;
! vRot.x += ((float)mY-middleY)*fSensivity*6;
//SDL_WarpMouse (middleX, middleY);
! Engine::pEngine->WarpMouse(middleX, middleY);*/
/* float factor;
***************
*** 97,103 ****
//vRot.ToAngleVectors(vForward, vRight, vUp);
! vForward = qRotation.GetXAxis ();
! vRight = qRotation.GetZAxis ();
! vUp = qRotation.GetYAxis ();
//_AngleToVectors ();
}
--- 97,103 ----
//vRot.ToAngleVectors(vForward, vRight, vUp);
! //vForward = qRotation.GetXAxis ();
! //vRight = qRotation.GetZAxis ();
! //vUp = qRotation.GetYAxis ();
//_AngleToVectors ();
}
***************
*** 142,148 ****
//glRotatef(vEuler.x, 1.0f, 0.0f, 0.0f);
//glRotatef(vEuler.y, 0.0f, 1.0f, 0.0f);
float matrix[16];
! qRotation.GetMatrix(matrix);
glMultMatrixf (matrix);
glTranslatef(-vPosition.x, -vPosition.y, -vPosition.z);
frustum.Update();
--- 142,153 ----
//glRotatef(vEuler.x, 1.0f, 0.0f, 0.0f);
//glRotatef(vEuler.y, 0.0f, 1.0f, 0.0f);
+ Vector3 axis = qRotation.GetRotationAxis ();
+ float a = RADTODEG*qRotation.GetRotationAngle ();
+ //std::cout << "camera : " << qRotation << std::endl;
float matrix[16];
! Quaternion qconj = qRotation.Conjugate();
! qconj.GetMatrix(matrix);
glMultMatrixf (matrix);
+ //glRotatef (-a, axis.x, axis.y, axis.z);
glTranslatef(-vPosition.x, -vPosition.y, -vPosition.z);
frustum.Update();
|