54 const d2Vec2 marginVec(margin, margin);
92 typedef std::vector<d2Node *> NodeList;
94 void UpdateNodeHelper(
d2Node *node, NodeList &invalidNodes);
96 void RemoveNode(
d2Node *node);
98 void ClearChildrenCrossFlagHelper(
d2Node *node);
99 void CrossChildren(
d2Node *node);
104 NodeList m_invalidNodes;
Definition d2AABBTree.h:73
d2Body * Pick(const d2Vec2 &point) const override
void Add(d2Body *body) override
d2AABBTree(void)
Definition d2AABBTree.h:76
void Update(void) override
ColliderPairList & ComputePairs(void) override
void Query(const d2AABB &aabb, ColliderList &output) const override
Definition d2AABBTree.h:86
void Draw(const d2Draw &draw) const override
void Remove(d2Body *body) override
A class representing a 2D rigid body.
Definition d2Body.h:28
Definition d2Broadphase.h:16
std::vector< d2Body * > ColliderList
Definition d2Broadphase.h:39
std::list< ColliderPair > ColliderPairList
Definition d2Broadphase.h:13
void * userData
Definition d2AABB.h:14
d2Vec2 upperBound
Definition d2AABB.h:12
d2Vec2 lowerBound
Definition d2AABB.h:11
void Combine(const d2AABB &aabb)
Definition d2AABB.h:39
Definition d2AABBTree.h:11
d2AABB aabb
Definition d2AABBTree.h:15
d2Node * GetSibling(void) const
Definition d2AABBTree.h:64
bool IsLeaf(void) const
Definition d2AABBTree.h:26
d2Node * children[2]
Definition d2AABBTree.h:13
void UpdateAABB(float margin)
Definition d2AABBTree.h:49
bool childrenCrossed
Definition d2AABBTree.h:14
d2Node(void)
Definition d2AABBTree.h:18
d2Node * parent
Definition d2AABBTree.h:12
void SetLeaf(d2AABB *data)
Definition d2AABBTree.h:40
d2AABB * data
Definition d2AABBTree.h:16
void SetBranch(d2Node *n0, d2Node *n1)
Definition d2AABBTree.h:31
Represents a 2D vector.
Definition d2Math.h:22