afCamera.h
上传用户:kaiguan
上传日期:2007-10-28
资源大小:1074k
文件大小:2k
源码类别:

其他游戏

开发平台:

Visual C++

  1. // afCamera.h: interface for the afCamera class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #ifndef AF_CAMERA
  5. #define AF_CAMERA
  6. #pragma once
  7. #include "stdafx.h"
  8. class afPlane;
  9. class afCamera  
  10. {
  11. protected:    
  12.     D3DXVECTOR3 m_vEyePt;       // Attributes for view matrix
  13.     D3DXVECTOR3 m_vLookatPt;
  14.     D3DXVECTOR3 m_vUpVec;
  15.     D3DXVECTOR3 m_vView;
  16.     D3DXVECTOR3 m_vCross;
  17.     D3DXMATRIXA16  m_matView;
  18.     D3DXMATRIXA16  m_matBillboard; // Special matrix for billboarding effects
  19.     FLOAT       m_fFOV;         // Attributes for projection matrix
  20.     FLOAT       m_fAspect;
  21.     FLOAT       m_fNearPlane;
  22.     FLOAT       m_fFarPlane;
  23. bool m_updateVisibility;
  24.     D3DXMATRIXA16  m_matProj;
  25. public:
  26. void createClippingPlanes(afPlane nPlanes[6]);
  27. void SetUpdateVisibility(bool visible);
  28. bool getUpdateVisibility();
  29.     // Access functions
  30.     D3DXVECTOR3 GetEyePt()           { return m_vEyePt; }
  31.     D3DXVECTOR3 GetLookatPt()        { return m_vLookatPt; }
  32.     D3DXVECTOR3 GetUpVec()           { return m_vUpVec; }
  33.     D3DXVECTOR3 GetViewDir()         { return m_vView; }
  34.     D3DXVECTOR3 GetCross()           { return m_vCross; }
  35.     FLOAT       GetFOVY()            { return m_fFOV; }
  36. FLOAT       GetFOVX()  { return m_fFOV*m_fAspect;}
  37.     FLOAT       GetAspect()          { return m_fAspect; }
  38.     FLOAT       GetNearPlane()       { return m_fNearPlane; }
  39.     FLOAT       GetFarPlane()        { return m_fFarPlane; }
  40.     D3DXMATRIX*  GetViewMatrix()      { return &m_matView; }
  41.     D3DXMATRIX*  GetBillboardMatrix() { return &m_matBillboard; }
  42.     D3DXMATRIX*  GetProjMatrix()      { return &m_matProj; }
  43.     VOID SetViewParams( D3DXVECTOR3 &vEyePt, D3DXVECTOR3& vLookatPt,
  44.                         D3DXVECTOR3& vUpVec );
  45.     VOID SetProjParams( FLOAT fFOV, FLOAT fAspect, FLOAT fNearPlane,
  46.                         FLOAT fFarPlane );
  47.     afCamera();
  48. };
  49. #endif