31 lines
1.3 KiB
C++
31 lines
1.3 KiB
C++
#ifndef singleboxtree_h
|
|
#define singleboxtree_h
|
|
|
|
class CSingleBoxTree : public CBVTree {
|
|
public:
|
|
CSingleBoxTree() { m_nPrims = 1; }
|
|
virtual int GetType() { return BVT_SINGLEBOX; }
|
|
virtual float Build(CGeometry *pGeom);
|
|
void SetBox(box *pbox);
|
|
virtual int PrepareForIntersectionTest(geometry_under_test *pGTest);
|
|
virtual void GetBBox(box *pbox);
|
|
virtual int MaxPrimsInNode() { return m_nPrims; }
|
|
virtual void GetNodeBV(BV *&pBV, int iNode=0);
|
|
virtual void GetNodeBV(BV *&pBV, const vectorf &sweepdir,float sweepstep, int iNode=0);
|
|
virtual void GetNodeBV(const matrix3x3f &Rw,const vectorf &offsw,float scalew, BV *&pBV, int iNode=0);
|
|
virtual void GetNodeBV(const matrix3x3f &Rw,const vectorf &offsw,float scalew, BV *&pBV, const vectorf &sweepdir,float sweepstep, int iNode=0);
|
|
virtual int GetNodeContents(int iNode, BV *pBVCollider,int bColliderUsed,int bColliderLocal,
|
|
geometry_under_test *pGTest,geometry_under_test *pGTestOp);
|
|
virtual int GetNodeContentsIdx(int iNode, int &iStartPrim) { iStartPrim=0; return m_nPrims; }
|
|
virtual void MarkUsedTriangle(int itri, geometry_under_test *pGTest);
|
|
|
|
virtual void GetMemoryStatistics(ICrySizer *pSizer);
|
|
virtual void Save(CMemStream &stm);
|
|
virtual void Load(CMemStream &stm, CGeometry *pGeom);
|
|
|
|
CGeometry *m_pGeom;
|
|
box m_Box;
|
|
int m_nPrims;
|
|
};
|
|
|
|
#endif |