#include <BV_Tree.h>

Public Types | |
| enum | Status { BV_PASS, BV_FAIL_ROTATIONS_UNSUPPORTED, BV_FAIL_BAD_TYPE, BV_FAIL } |
Public Member Functions | |
| BV_Tree () | |
| virtual | ~BV_Tree () |
| BV_Tree * | clone () const |
| virtual const char * | getType () const =0 |
| virtual const BV_Tree * | castTo (const char *type) const |
| virtual BV_Tree * | castTo (const char *type) |
| int64 | getMemoryUsage () const |
| int | getNumLeaves () const |
| void | build (BV_LeafIterator &leafIt) |
| Construct a volume hierarchy from the given primitives. | |
| void | updateExtents (BV_LeafIterator &leafIt) |
| void | save (ostream &os, bool onlyStructure) const |
| bool | load (UT_IStream &is, bool onlyStructure) |
| Status | intersect (BV_Callback &callback, const BV_Tree &treeb, const UT_DMatrix4 &xforma, const UT_DMatrix4 &xformb, fpreal tol=0.001F) const |
| Status | intersect (BV_Callback &callback, const BV_Tree &treeb, fpreal tol=0.001F) const |
| Static boxes only! | |
| 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! | |
| 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! | |
Protected Member Functions | |
| BV_Tree (const BV_Tree &tree) | |
| virtual BV_Tree * | cloneSubclass () const =0 |
| virtual void | buildSubclass (BV_LeafIterator &leafIt)=0 |
| virtual int64 | getMemoryUsageSubclass () const =0 |
| virtual int | getNumLeavesSubclass () const =0 |
| virtual void | saveSubclass (ostream &os, bool onlyStructure) const =0 |
| virtual bool | loadSubclass (UT_IStream &is, bool onlyStructure)=0 |
| virtual void | updateExtentsSubclass (BV_LeafIterator &leafIt)=0 |
| virtual 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 =0 |
Definition at line 31 of file BV_Tree.h.
| enum BV_Tree::Status |
| BV_Tree::BV_Tree | ( | ) |
| virtual BV_Tree::~BV_Tree | ( | ) | [virtual] |
| BV_Tree::BV_Tree | ( | const BV_Tree & | tree | ) | [protected] |
| void BV_Tree::build | ( | BV_LeafIterator & | leafIt | ) | [inline] |
| virtual void BV_Tree::buildSubclass | ( | BV_LeafIterator & | leafIt | ) | [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| virtual BV_Tree* BV_Tree::castTo | ( | const char * | type | ) | [virtual] |
Reimplemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| virtual const BV_Tree* BV_Tree::castTo | ( | const char * | type | ) | const [virtual] |
Reimplemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| virtual BV_Tree* BV_Tree::cloneSubclass | ( | ) | const [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| virtual int64 BV_Tree::getMemoryUsageSubclass | ( | ) | const [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| virtual int BV_Tree::getNumLeavesSubclass | ( | ) | const [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| virtual const char* BV_Tree::getType | ( | ) | const [pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| Status BV_Tree::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 [inline] |
| Status BV_Tree::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 [inline] |
| Status BV_Tree::intersect | ( | BV_Callback & | callback, | |
| const BV_Tree & | treeb, | |||
| fpreal | tol = 0.001F | |||
| ) | const [inline] |
| Status BV_Tree::intersect | ( | BV_Callback & | callback, | |
| const BV_Tree & | treeb, | |||
| const UT_DMatrix4 & | xforma, | |||
| const UT_DMatrix4 & | xformb, | |||
| fpreal | tol = 0.001F | |||
| ) | const [inline] |
Find intersections of bounding volumes of this tree ("A") with tree B, rotated by ra and rb and translated by ta and tb respectively. For each intersection, call the callback with the leaves whose bounding volumes overlap.
The callback can return a "stop" status to stop testing for further intersections.
Note:
Static boxes only!
| virtual Status BV_Tree::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 [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| bool BV_Tree::load | ( | UT_IStream & | is, | |
| bool | onlyStructure | |||
| ) | [inline] |
| virtual bool BV_Tree::loadSubclass | ( | UT_IStream & | is, | |
| bool | onlyStructure | |||
| ) | [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| void BV_Tree::save | ( | ostream & | os, | |
| bool | onlyStructure | |||
| ) | const [inline] |
| virtual void BV_Tree::saveSubclass | ( | ostream & | os, | |
| bool | onlyStructure | |||
| ) | const [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
| void BV_Tree::updateExtents | ( | BV_LeafIterator & | leafIt | ) | [inline] |
| virtual void BV_Tree::updateExtentsSubclass | ( | BV_LeafIterator & | leafIt | ) | [protected, pure virtual] |
Implemented in BV_KDOPTree< K >, BV_OBBTree, and BV_KDOPTree< K >.
1.5.9