#include <BV_KDOPTree.h>

Classes | |
| class | bvLeaf |
Public Types | |
| typedef BV_Tree | BaseClass |
Public Member Functions | |
| BV_KDOPTree () | |
| BV_KDOPTree (const BV_KDOPTree &) | |
| virtual | ~BV_KDOPTree () |
| BV_KDOPTree & | operator= (const BV_KDOPTree &) |
| virtual const char * | getType () const |
| virtual const BV_Tree * | castTo (const char *type) const |
| virtual BV_Tree * | castTo (const char *type) |
| const UT_Vector3 & | getPlaneDir (int k) const |
| Retrieve the orientation of the k-th slab. | |
Static Public Member Functions | |
| static int | getNumSlabs () |
| This defines the number of "slabs" used to define the polytope. | |
Protected Member Functions | |
| virtual BV_Tree * | cloneSubclass () const |
| virtual int64 | getMemoryUsageSubclass () const |
| virtual int | getNumLeavesSubclass () const |
| virtual void | saveSubclass (ostream &os, bool onlyStructure) const |
| virtual bool | loadSubclass (UT_IStream &is, bool onlyStructure) |
| virtual void | buildSubclass (BV_LeafIterator &leafIt) |
| virtual void | updateExtentsSubclass (BV_LeafIterator &leafIt) |
| 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 |
| const BV_KDOPNode< K > * | getRoot () const |
Static Protected Member Functions | |
| static bool | intersectRecurse (BV_Callback &callback, const BV_KDOPNode< K > &nodea, const BV_KDOPNode< K > &nodeb, fpreal tol) |
| static BV_KDOPNode< K > * | buildRecurse (UT_RefArray< bvLeaf > &leafData, int startLeaf, int numLeaves) |
| static void | updateExtentsRecurse (BV_LeafIterator &leafIt, BV_KDOPNode< K > &node) |
Static Protected Attributes | |
| static const UT_Vector3 | myPlaneDirs [K/2] |
Build: O(n^2) Update extents: O(n log n)
Defined for: k=6 (axis aligned bounding box) k=14 (AABB with cut corners) k=18 (AABB with cut edges) k=26 (AABB with cut corners and edges).
Source: Klosowski, Held, Mitchell, Sowizral and Zikan, "Efficient Collision Detection Using Bounding Volume Hierarchies of k-DOPs," IEEE Transactions on Visualization and Computer Graphics 4(1):21-36, 1998. ftp://ams.sunysb.edu/pub/geometry/cd-tvcg-97.ps.gz
Definition at line 80 of file BV_KDOPTree.h.
| typedef BV_Tree BV_KDOPTree< K >::BaseClass |
| BV_KDOPTree< K >::BV_KDOPTree | ( | ) |
| BV_KDOPTree< K >::BV_KDOPTree | ( | const BV_KDOPTree< K > & | ) |
| virtual BV_KDOPTree< K >::~BV_KDOPTree | ( | ) | [virtual] |
| static BV_KDOPNode<K>* BV_KDOPTree< K >::buildRecurse | ( | UT_RefArray< bvLeaf > & | leafData, | |
| int | startLeaf, | |||
| int | numLeaves | |||
| ) | [static, protected] |
| virtual void BV_KDOPTree< K >::buildSubclass | ( | BV_LeafIterator & | leafIt | ) | [protected, virtual] |
Implements BV_Tree.
| virtual BV_Tree* BV_KDOPTree< K >::castTo | ( | const char * | type | ) | [virtual] |
Reimplemented from BV_Tree.
| virtual const BV_Tree* BV_KDOPTree< K >::castTo | ( | const char * | type | ) | const [virtual] |
Reimplemented from BV_Tree.
| virtual BV_Tree* BV_KDOPTree< K >::cloneSubclass | ( | ) | const [protected, virtual] |
Implements BV_Tree.
| virtual int64 BV_KDOPTree< K >::getMemoryUsageSubclass | ( | ) | const [protected, virtual] |
Implements BV_Tree.
| virtual int BV_KDOPTree< K >::getNumLeavesSubclass | ( | ) | const [protected, virtual] |
Implements BV_Tree.
| static int BV_KDOPTree< K >::getNumSlabs | ( | ) | [inline, static] |
This defines the number of "slabs" used to define the polytope.
Definition at line 97 of file BV_KDOPTree.h.
| const UT_Vector3& BV_KDOPTree< K >::getPlaneDir | ( | int | k | ) | const [inline] |
| const BV_KDOPNode<K>* BV_KDOPTree< K >::getRoot | ( | ) | const [inline, protected] |
Definition at line 147 of file BV_KDOPTree.h.
| virtual const char* BV_KDOPTree< K >::getType | ( | ) | const [virtual] |
Implements BV_Tree.
| static bool BV_KDOPTree< K >::intersectRecurse | ( | BV_Callback & | callback, | |
| const BV_KDOPNode< K > & | nodea, | |||
| const BV_KDOPNode< K > & | nodeb, | |||
| fpreal | tol | |||
| ) | [static, protected] |
| virtual Status BV_KDOPTree< K >::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, virtual] |
Implements BV_Tree.
| virtual bool BV_KDOPTree< K >::loadSubclass | ( | UT_IStream & | is, | |
| bool | onlyStructure | |||
| ) | [protected, virtual] |
Implements BV_Tree.
| BV_KDOPTree& BV_KDOPTree< K >::operator= | ( | const BV_KDOPTree< K > & | ) |
| virtual void BV_KDOPTree< K >::saveSubclass | ( | ostream & | os, | |
| bool | onlyStructure | |||
| ) | const [protected, virtual] |
Implements BV_Tree.
| static void BV_KDOPTree< K >::updateExtentsRecurse | ( | BV_LeafIterator & | leafIt, | |
| BV_KDOPNode< K > & | node | |||
| ) | [static, protected] |
| virtual void BV_KDOPTree< K >::updateExtentsSubclass | ( | BV_LeafIterator & | leafIt | ) | [protected, virtual] |
Implements BV_Tree.
const UT_Vector3 BV_KDOPTree< K >::myPlaneDirs[K/2] [static, protected] |
Definition at line 144 of file BV_KDOPTree.h.
1.5.9