zfxFrustum.h
上传用户:junlon
上传日期:2022-01-05
资源大小:39075k
文件大小:1k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. //--------------------------------------------------------------------------------------
  2. // 文件: zfxFrustum.h, 作者:曾凡喜
  3. //
  4. // 封装了裁减体类 ,并实现点,立方体,矩形,球体的检测
  5. //
  6. // 每当视口改变的时候,都需要重新构造裁减体(Construct),再调用可视性检测函数(Check。。。。)
  7. //
  8. // 版权归作者所有,不得用于商业用途
  9. //--------------------------------------------------------------------------------------
  10. #pragma once
  11. #ifndef __ZFXFRUSTUM__H__INCLUDED__
  12. #define __ZFXFRUSTUM__H__INCLUDED__
  13. class CZFXFrustum{
  14. public:
  15. CZFXFrustum();
  16. ~CZFXFrustum();
  17. public:
  18. // 构造裁减体的六个平面,每当视口改变的时候,都需要重新构造裁减体,再调用可视性检测函数
  19. void Construct( LPDIRECT3DDEVICE9 pd3dDevice );
  20. // 返回FALSE表示在裁减体之外(不可见),TRUE表示在裁减体之内(可见)
  21. // 点监测
  22. BOOL CheckPoint( D3DXVECTOR3 ptPos );
  23. // 立方体检测
  24. BOOL CheckCube( D3DXVECTOR3 centerPos, float size );
  25. // 矩形检测,与立方体检测的区别是,它默认矩形与 XOY 平面平行,不考虑垂直(Y)方向上的因素
  26. BOOL CheckRectangle( D3DXVECTOR3 centerPos, float size );
  27. // 检测球体
  28. BOOL CheckSphere( D3DXVECTOR3 centerPos, float radius );
  29. protected:
  30. D3DXPLANE m_planes[6];
  31. };
  32. #endif //__ZFXFRUSTUM__H__INCLUDED__