📄 frustum.h
字号:
/*==========================================================================;
*
* 光线游戏引擎(Light Game Engine)
*
* 版权所有 (C) 2005-2007 康 旭。 保留所有权利。
* Copyright (C) KangXu. All Rights Reserved.
*
* 文件: frustum.h
* 内容: 视锥体函数
*
****************************************************************************/
/*! \file frustum.h * 视锥体函数. * 此文件是视锥体函数头文件. */
/*! \class LightFrustum * \brief 视锥体类 * * 本类负责视锥体的可见性测试,支持点、立方体、长方体和球体的测试。 * 每个 LightFrustum 实例都必须通过 LightEngine 类的 NewFrustum 方法分配。 */
class LightFrustum
{
public:
/*! \fn void CalculateFrustum() = 0 * \brief 根据投影矩阵和模型视矩阵计算视锥体(每当摄像机旋转和移动时调用) * * 根据投影矩阵和模型视矩阵计算视锥体(每当摄像机旋转和移动时调用) * * \param 无 * * \return 无 * * \see
*/
virtual void CalculateFrustum() = 0;
/*! \fn bool PointInFrustum( float x, float y, float z ) = 0 * \brief 检测指定点是否在视锥体中(如果是返回 TRUE,否则返回 FALSE ) * * 检测指定点是否在视锥体中(如果是返回 TRUE,否则返回 FALSE ) * * \param float x 要检测点的 x 坐标 * * \param float y 要检测点的 y 坐标 * * \param float z 要检测点的 z 坐标 * * \return 如果是返回 TRUE,否则返回 FALSE * * \see
*/
virtual bool PointInFrustum( float x, float y, float z ) = 0;
/*! \fn bool SphereInFrustum( float x, float y, float z, float radius ) = 0 * \brief 检测指定球体是否与视锥体相交(如果是返回 TRUE,否则返回 FALSE ) * * 检测指定球体是否与视锥体相交(如果是返回 TRUE,否则返回 FALSE ) * * \param float x 球体圆心的 x 坐标 * * \param float y 球体圆心的 y 坐标 * * \param float z 球体圆心的 z 坐标 * * \param float radius 球体的半径 * * \return 如果是返回 TRUE,否则返回 FALSE * * \see
*/
virtual bool SphereInFrustum( float x, float y, float z, float radius ) = 0;
/*! \fn bool CubeInFrustum( float x, float y, float z, float size ) = 0 * \brief 检测指定立方体是否与视锥体相交(如果是返回 TRUE,否则返回 FALSE ) * * 检测指定立方体是否与视锥体相交(如果是返回 TRUE,否则返回 FALSE ) * * \param float x 立方体中心的 x 坐标 * * \param float y 立方体中心的 y 坐标 * * \param float z 立方体中心的 z 坐标 * * \param float size 立方体边长 * * \return 如果是返回 TRUE,否则返回 FALSE * * \see
*/
virtual bool CubeInFrustum( float x, float y, float z, float size ) = 0;
/*! \fn bool BoxInFrustum( float x, float y, float z, float sizeX, float sizeY, float sizeZ ) = 0 * \brief 检测指定长方体是否与视锥体相交(如果是返回 TRUE,否则返回 FALSE ) * * 检测指定长方体是否与视锥体相交(如果是返回 TRUE,否则返回 FALSE ) * * \param float x 长方体中心的 x 坐标 * * \param float y 长方体中心的 y 坐标 * * \param float z 长方体中心的 z 坐标 * * \param float sizeX 长方体 x 轴方向的边长 * * \param float sizeY 长方体 y 轴方向的边长 * * \param float sizeZ 长方体 z 轴方向的边长 * * \return 如果是返回 TRUE,否则返回 FALSE * * \see
*/
virtual bool BoxInFrustum( float x, float y, float z, float sizeX, float sizeY, float sizeZ ) = 0;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -