#include <OPC_AABBTree.h>
Public Member Functions | |
inline_ udword | GetNbPrimitives () const |
const inline_ udword * | GetPrimitives () const |
Protected Member Functions | |
void | _BuildHierarchy (AABBTreeBuilder *builder) |
void | _Refit (AABBTreeBuilder *builder) |
udword | Split (udword axis, AABBTreeBuilder *builder) |
bool | Subdivide (AABBTreeBuilder *builder) |
Protected Attributes | |
udword | mNbPrimitives |
Number of primitives for this node. More... | |
udword * | mNodePrimitives |
Node-related primitives (shortcut to a position in mIndices below) More... | |
Contains a generic AABB tree node.
Definition at line 83 of file OPC_AABBTree.h.
|
protected |
Recursive hierarchy building in a top-down fashion.
builder | [in] the tree builder |
Definition at line 333 of file OPC_AABBTree.cpp.
|
protected |
Refits the tree (top-down).
builder | [in] the tree builder |
Definition at line 354 of file OPC_AABBTree.cpp.
Definition at line 89 of file OPC_AABBTree.h.
Definition at line 88 of file OPC_AABBTree.h.
|
protected |
Splits the node along a given axis. The list of indices is reorganized according to the split values.
axis | [in] splitting axis index |
builder | [in] the tree builder |
Definition at line 99 of file OPC_AABBTree.cpp.
|
protected |
Subdivides the node.
N / \ / \
N/2 N/2 / \ / \ N/4 N/4 N/4 N/4 (etc)
A well-balanced tree should have a O(log n) depth. A degenerate tree would have a O(n) depth. Note a perfectly-balanced tree is not well-suited to collision detection anyway.
builder | [in] the tree builder |
Definition at line 150 of file OPC_AABBTree.cpp.
|
protected |
Number of primitives for this node.
Definition at line 94 of file OPC_AABBTree.h.
|
protected |
Node-related primitives (shortcut to a position in mIndices below)
Definition at line 93 of file OPC_AABBTree.h.