00001 #ifndef __GXFIRSTPERSONMOVEMENT 00002 #define __GXFIRSTPERSONMOVEMENT 00003 00004 00005 #include "GXStandardDefines.h" 00006 00007 class CGXFirstPersonMovement 00008 { 00009 public: 00010 CGXFirstPersonMovement(); 00011 virtual ~CGXFirstPersonMovement();//todo, superclass this and add arcball 00012 00013 virtual void StrafeLeft(float fAmt); 00014 virtual void StrafeRight(float fAmt); 00015 virtual void StrafeUp(float fAmt); 00016 virtual void StrafeDown(float fAmt); 00017 00018 virtual void Look(const float fDeltaX, const float fDeltaY); 00019 00020 virtual void GetViewMatrix(D3DXMATRIX* pOut); 00021 virtual void GetCameraPos(D3DXVECTOR3* pOut); 00022 virtual void SetCameraPos(D3DXVECTOR3* pIn); 00023 virtual void GetCameraDirection(D3DXVECTOR3* pOut); 00024 00025 virtual void IncrementPosition(const float fAmt); 00026 00027 00028 00029 00030 protected: 00031 D3DXVECTOR3 m_vCameraPos; 00032 D3DXVECTOR3 m_vLookAt; 00033 D3DXVECTOR3 m_vUp; 00034 00035 }; 00036 00037 00038 00039 00040 00041 00042 #endif