📄 frustum.h
字号:
//////////////////////////////////////////////////////////////////////////
// CFrustum类,平截头体,剔除物体用。
//
// Frustum.h: CFrustum类的声明
//
// Copy Rights Wonderful 2006
//////////////////////////////////////////////////////////////////////////
#ifndef __FRUSTUM_H_INCLUDED__
#define __FRUSTUM_H_INCLUDED__
#include "Plane.h"
//-------------------------------------------------------------------------------
// 前向声明
//-------------------------------------------------------------------------------
class Vector3;
class CSphere;
class AABB3;
//-------------------------------------------------------------------------------
// 平截头体类
//-------------------------------------------------------------------------------
class CFrustum
{
public:
// 每次摄像机移动后都重新计算一次平截头体每个面
void CalculateFrustum();
// 判断一个3D点是否在平截头体内
bool PointInFrustum(const Vector3 &point);
// 判断一个3D球是否在平截头体内
bool SphereInFrustum(const CSphere &sphere);
// 判断一个轴对称包围盒是否在平截头体内
bool CubeInFrustum(const AABB3& box);
private:
CPlane m_Frustum[6]; // 保存平截头体6个平面
};
//-------------------------------------------------------------------------------
// 平截头体全局对象
//-------------------------------------------------------------------------------
extern CFrustum g_Frustum;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -