www.pudn.com > terrainSimple.rar > camera.h


////////////////////////////////////////////////////////////////////////////////////////////////// 
//  
// File: camera.h 
//  
// Author: Frank Luna (C) All Rights Reserved 
// 
// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0  
// 
// Desc: Defines a camera's position and orientation. 
//          
////////////////////////////////////////////////////////////////////////////////////////////////// 
 
#ifndef __cameraH__ 
#define __cameraH__ 
 
#include  
 
class Camera 
{ 
public: 
	enum CameraType { LANDOBJECT, AIRCRAFT }; //分地面物体和飞行器 
 
	Camera(); 
	Camera(CameraType cameraType); 
	~Camera(); 
 
	void strafe(float units); // left/right 
	void fly(float units);    // up/down 
	void walk(float units);   // forward/backward 
	 
	void pitch(float angle); // rotate on right vector 
	void yaw(float angle);   // rotate on up vector 
	void roll(float angle);  // rotate on look vector 
 
	void getViewMatrix(D3DXMATRIX* V);  
	void setCameraType(CameraType cameraType);  
	void getPosition(D3DXVECTOR3* pos);  
	void setPosition(D3DXVECTOR3* pos);  
 
	void getRight(D3DXVECTOR3* right); 
	void getUp(D3DXVECTOR3* up); 
	void getLook(D3DXVECTOR3* look); 
private: 
	CameraType  _cameraType; 
	D3DXVECTOR3 _right; 
	D3DXVECTOR3 _up; 
	D3DXVECTOR3 _look; 
	D3DXVECTOR3 _pos; 
}; 
#endif // __cameraH__