6 #ifndef _INC_cQuadtree_H
7 #define _INC_cQuadtree_H
36 virtual const RECTQ_t& get_QuadRect()
const = 0;
40 interface IQuadVisit :
public cQuadCommon
44 virtual bool ObjectIntersect(IQuadObject* pObj,
const RECTQ_t&
rect) = 0;
74 static const size_t k_CAPACITY = 4;
81 bool CollapseCheck(
size_t i);
87 bool isEmptyQuad()
const;
94 bool SetBoundary(
const RECTQ_t&
rect, OUT ARRAYOBJ_t& aBumped);
96 bool AddObject(
const RECTQ_t&
rect, IQuadObject* pObj);
103 return AddObject(pObj->get_QuadRect(), pObj);
106 void AddObjectGrow(IQuadObject* pObj);
108 bool RemoveObject(
const RECTQ_t&
rect, IQuadObject* pObj);
113 return RemoveObject(pObj->get_QuadRect(), pObj);
116 bool VisitObjectsOverlap(
const RECTQ_t&
rect, IQuadVisit* pVisit)
const;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define UNREFERENCED_REFERENCE(x)
Definition: SysTypes.h:318
Definition: cQuadtree.h:50
virtual bool ObjectIntersect(IQuadObject *pObj, const RECTQ_t &rect) override
Definition: cQuadtree.h:54
Definition: cQuadtree.h:64
bool RemoveObject(IQuadObject *pObj)
Definition: cQuadtree.h:109
bool AddObject(IQuadObject *pObj)
Definition: cQuadtree.h:97
UNITTEST_FRIEND(cQuadtree)
cArrayPtr< IQuadObject > ARRAYOBJ_t
Definition: cQuadtree.h:71
const RECTQ_t & get_Boundary() const
Definition: cQuadtree.h:90
ITERATE_t AddTail(TYPE * newElement)
Definition: cArray.h:666
UNITTEST2_PREDEF(cQuadtree)
interface const RECTQ_t & rect
Definition: cQuadtree.h:44
int ITERATE_t
like size_t but signed
Definition: Index.h:28
Definition: cQuadtree.h:22
double DVALUE_t
Definition: cQuadtree.h:26
cVecT2< DVALUE_t > POINTQ_t
Definition: cQuadtree.h:27
cRectFT< DVALUE_t > RECTQ_t
Definition: cQuadtree.h:28