|
| | 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.