www.pudn.com > XFileLoadingCode.zip > Camera.h
//**************************************************************************************************
//
// Camera.h: interface for the CCamera class.
//
// Description: basic 1st person camera
//
// Created by: Keith Ditchburn 15/11/2003
//
//**************************************************************************************************
#pragma once
#include "d3d9.h"
#include "d3dx9.h"
class CCamera
{
public:
void SetPosition(const D3DXVECTOR3 &pos);
void SetView(const D3DXVECTOR3 &pos,const D3DXVECTOR3 &look);
void RotateLeft();
void RotateRight();
void MouseMove(int dx,int dy);
void MoveRight();
void MoveLeft();
void MoveBack();
void MoveForward();
void MoveDown();
void MoveUp();
void CalculateViewMatrix(D3DXMATRIX *view);
inline const D3DXVECTOR3& CCamera::GetPosition() const {return m_position;}
inline const D3DXVECTOR3& CCamera::GetLookDirection() const {return m_look;}
CCamera();
~CCamera();
private:
void BaseRegenerateVectors();
float m_movementSpeed; // Speed of each movement
float m_rotationSpeed; // Speed of each rotation
D3DXVECTOR3 m_position; // Position of the camera in the world
D3DXVECTOR3 m_look; // Camera look direction
D3DXVECTOR3 m_right; // Vector pointing to the right
D3DXVECTOR3 m_up; // Which way is up
D3DXVECTOR3 m_rotationChange; // Holds required rotation changes temporarily
};