Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- POINT mouseLastPos;
- Vector4 position;
- float elevation, azimut;
- int trX, trZ;
- void MyC3DEngine::Setup(HWND hWnd)
- {
- position = Vector4(0.0, -50.0, 0.0, true);
- elevation = 0.0f;
- azimut = 0.0f;
- // Mouse Position
- mouseLastPos.x = 0.0f;
- mouseLastPos.y = 0.0f;
- }
- void MyC3DEngine::Update(float fDT)
- {
- if ((trZ != 0) || (trX !=0))
- position += (Matrix4::rotationX(elevation) * Matrix4::rotationY(azimut)).transpose() * Vector4((float)trX, 0.0f, (float)trZ);
- trX = 0;
- trZ = 0;
- }
- void MyC3DEngine::Render(unsigned int u32Width, unsigned int u32Height)
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- Matrix4 view = Matrix4::rotationX(elevation) * Matrix4::rotationY(azimut) * Matrix4::translation(&position);
- glEnable(GL_DEPTH_TEST);
- // YOUR CODE HERE
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(70.0, (GLdouble)u32Width / (GLdouble)u32Height, 0.5, 100.0);
- }
- void MyC3DEngine::MouseMove(POINT Pos)
- {
- azimut -= (Pos.x - mouseLastPos.x) * MOUSE_SPEED;
- elevation += (Pos.y - mouseLastPos.y) * MOUSE_SPEED;
- if (elevation >= halfMpi) elevation = halfMpi;
- else if (elevation <= -halfMpi) elevation = -halfMpi;
- mouseLastPos = Pos;
- }
- void MyC3DEngine::KeyDown(int s32VirtualKey)
- {
- switch (s32VirtualKey) {
- case VK_LEFT:
- trX = 1;
- break;
- case VK_RIGHT:
- trX = -1;
- break;
- case VK_UP:
- trZ = 1;
- break;
- case VK_DOWN:
- trZ = -1;
- break;
- default : break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement