|
| BV_OBBTree () |
|
| BV_OBBTree (const BV_OBBTree &) |
|
| ~BV_OBBTree () override |
|
BV_OBBTree & | operator= (const BV_OBBTree &) |
|
const char * | getType () const override |
|
const BV_Tree * | castTo (const char *type) const override |
|
BV_Tree * | castTo (const char *type) override |
|
void | buildLazy (BV_LeafIterator &leafIt) |
|
void | getRootOBB (UT_Matrix4 &xform, UT_Vector3 &radii) const |
|
void | setUseConvexHull (bool bValue) |
|
bool | getUseConvexHull () |
|
| BV_Tree () |
|
virtual | ~BV_Tree () |
|
BV_Tree * | clone () const |
|
int64 | getMemoryUsage () const |
|
int | getNumLeaves () const |
|
void | build (BV_LeafIterator &leafIt) |
| Construct a volume hierarchy from the given primitives. More...
|
|
void | updateExtents (BV_LeafIterator &leafIt) |
|
void | save (std::ostream &os, bool onlyStructure) const |
|
bool | load (UT_IStream &is, bool onlyStructure) |
|
BV_Status | intersect (BV_Callback &callback, const BV_Tree &treeb, const UT_DMatrix4 &xforma, const UT_DMatrix4 &xformb, fpreal tol=0.001F) const |
|
BV_Status | intersect (BV_Callback &callback, const BV_Tree &treeb, fpreal tol=0.001F) const |
| Static boxes only! More...
|
|
BV_Status | intersect (BV_Callback &callback, const BV_Tree &treeb, const UT_DMatrix4 &startxforma, const UT_DMatrix4 &startxformb, const UT_DMatrix4 &endxforma, const UT_DMatrix4 &endxformb, fpreal tol=0.001F) const |
| Moving boxes only! More...
|
|
BV_Status | intersect (BV_Callback &callback, const BV_Tree &treeb, const UT_DMatrix4 &xforma, const UT_DMatrix4 &startxforma, const UT_DMatrix4 &startxformb, const UT_DMatrix4 &xformb, const UT_DMatrix4 &endxforma, const UT_DMatrix4 &endxformb, fpreal tol=0.001F) const |
| Moving boxes only! More...
|
|
|
BV_Tree * | cloneSubclass () const override |
|
int64 | getMemoryUsageSubclass () const override |
|
int | getNumLeavesSubclass () const override |
|
void | buildSubclass (BV_LeafIterator &leafIt) override |
|
void | updateExtentsSubclass (BV_LeafIterator &leafIt) override |
|
BV_Status | intersectSubclass (BV_Callback &callback, const BV_Tree &treeb, const UT_DMatrix4 &startxforma, const UT_DMatrix4 &startxformb, const UT_DMatrix4 &endxforma, const UT_DMatrix4 &endxformb, fpreal tol) const override |
| WARNING: not thread-safe if tree was lazily built! More...
|
|
BV_OBB * | getRoot () |
|
void | buildInternal (BV_LeafIterator &leafIt, bool lazy) |
|
BV_OBB * | createTree (int startprim, int numleaves, const UT_Matrix3 &rootBasis, const UT_Vector3 &rootPos, int depth=-1) |
|
void | createChildren (BV_OBB &root, int depth=-1) |
|
bool | updateExtentsRecurse (BV_OBB &node, const UT_Matrix3 &parentBasis, const UT_Vector3 &parentPos) |
|
void | getBounds (const UT_Matrix3 &basis, UT_BoundingBox &bbox, bool &firstPrim) |
|
void | calcOBB (BV_OBB &node) |
|
void | calcSize (BV_OBB &node) |
|
bool | computeConvexHull (const TPointArray &source_points_in, TSimpleTriangleArray &final_triangles_out) |
|
bool | doConvexHullIteration (BV_CHDataManager &data_manager, TTriArray &working_triangles) |
|
bool | intersectRecurse (BV_Callback &callback, const BV_OBBTree &treeb, const BV_OBB &a, const BV_OBB &b, const bvTransform &t1, const bvTransform &t2, const bvTransform &t3, const bvTransform &t4, fpreal tol, int identities) const |
|
void | calculateSortKeys (bvLeaf *prims, int numleaves, UT_Matrix3 &basis, int axis) const |
|
|
void | saveSubclass (std::ostream &os, bool onlyStructure) const override |
| Saving and loading only works for non-lazy building. More...
|
|
bool | loadSubclass (UT_IStream &is, bool onlyStructure) override |
| Saving and loading only works for non-lazy building. More...
|
|
| BV_Tree (const BV_Tree &tree) |
|
Bounding volume hierarchy based on Oriented Bounding Boxes (OBBs).
Build: O(n^2) Update extents: O(n^2)
Definition at line 266 of file BV_OBBTree.h.