|
From: julien r. <jul...@us...> - 2004-10-30 17:43:49
|
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(); |