BSP树的实现与应用
1. 引言
在场景管理中,BSP(Binary Space Partitioning)树是一种非常有用的数据结构。它可以用于渲染、碰撞检测等多个方面。不过,在实现BSP树的过程中,会遇到一些问题,比如级别几何的限制(可在互联网上搜索“非法几何”)、浮点精度问题导致的无限循环,或者编译器崩溃等。
2. 实现BSP树的准备工作
在实现BSP树之前,需要一个辅助类来存储可见多边形列表。以下是这个辅助类 ZFXPolylist 的代码:
class ZFXPolylist
{
public:
ZFXPolylist(void);
~ZFXPolylist(void);
bool AddPolygon(const ZFXPolygon&);
void Reset(void);
ZFXPolygon* GetPolylist(void){return m_pPolys;}
unsigned int GetNum(void) {return m_Num; }
private:
ZFXPolygon *m_pPolys;
unsigned int m_Num;
unsigned int m_Max;
bool CheckMem(void);
}; // class
ZFXPolylist::ZFXPolylist(void)
{
m_pPolys = NULL;
m_Num = 0;
超级会员免费看
订阅专栏 解锁全文
6924

被折叠的 条评论
为什么被折叠?



