#include <SphereTree.h>
Inheritance diagram for SphereTree:
Public Member Functions | |
SphereTree (unsigned ll, unsigned dl, bool dc, BVList::SplitStrategy ss) | |
virtual SDS * | clone () const |
virtual Iterator * | createIterator () |
virtual InspectorSDS * | createInspector (unsigned) |
virtual int | append (SceneGraphObject *) |
virtual SceneGraphObject * | detach (SceneGraphObject::OID) |
virtual bool | update (void) |
virtual bool | build (void) |
unsigned | leafLimit (void) const |
unsigned | depthLimit (void) const |
virtual double | distance (Matrix4 *, BVH &, Matrix4 *, Node **, Node **, Vector3 *pDir=NULL, unsigned d1=UINT_MAX, unsigned d2=UINT_MAX) |
virtual bool | separation (Matrix4 *, BVH &, Matrix4 *, Vector3 *pDir=NULL, unsigned d1=UINT_MAX, unsigned d2=UINT_MAX) |
virtual Geometry ** | collision (Matrix4 *, float, float, float, float, int *) |
virtual void | dump (const char *, const char *) |
virtual void | dump (const char *) |
virtual void | __debug (void) |
virtual void | __debug (Node *n, int d) |
void | __get_edges (Matrix4 *, Node *, unsigned, unsigned, int, float *, unsigned &) |
float * | __getEdges (Matrix4 *pMyTr, unsigned level, int rot, unsigned &size) |
void | __get_meshes (Matrix4 *, Node *, unsigned, unsigned, int, Mesh **, unsigned &) |
Mesh ** | __getMeshes (Matrix4 *pMyTr, unsigned level, int rot, unsigned &size) |
Static Public Member Functions | |
static Matrix4 * | multiTrans (const Matrix4 *, const Matrix4 *, Vector3 &) |
static Matrix4 * | multiTrans (const Matrix4 *, const Matrix4 *, double &) |
Protected Member Functions | |
virtual bool | _enlarge_bv (Geometry **, Geometry &) |
virtual Geometry * | _create_bv (List< SceneGraphObject > &) |
virtual Geometry * | _create_bv (Geometry &, Geometry &) |
virtual Geometry * | _create_bv (SceneGraphObject &) |
virtual BVList * | _create_list () |
virtual void | _duplicate_attributes (const SDS &) |
SphereTree () | |
bool | _append (SceneGraphObject *, Geometry *, Node *, unsigned) |
void | _remove_leaf (Node *) |
void | _build_tree (Node *, unsigned) |
void | _destroy_tree (Node *) |
void | _rebuild_tree (Node *) |
Geometry * | _create_bv (BVList &) |
void | _collision (Node *, Geometry &, List< SceneGraphObject > *) |
void | _dump (const Node *, const char *, const char *) |
virtual DistRot * | _create_dist_rot (BVH::Node *) |
virtual void | _dr_init (const Matrix4 *, const Matrix4 *, BVH *) |
virtual void | _dr_primitives (DRInfo &, Node *, Vector3 *) |
virtual void | _dr_leaf (DRInfo &, Node *, unsigned) |
virtual void | _dr_inner (DRInfo &, Node *, Node *, unsigned) |
Protected Attributes | |
esg::BVH::DRInfo | _drInfo |
Node * | _root |
Node * | _leftLeaf |
unsigned | _leafLimit |
unsigned | _depthLimit |
unsigned | _treeDepth |
Matrix4 | _myTrMat |
Matrix4 | _coordMat |
matrix transforming my coords to the partner's | |
double | _scaleRatio |
metric ratio scale from _pCoordMat | |
BVH * | _pPartner |
partner during collision detection | |
BVList::SplitStrategy | _splitStrategy |
bool | _delayBuild |
List< SceneGraphObject > | _intangibleChildren |
Definition at line 14 of file SphereTree.h.
|
Definition at line 24 of file SphereTree.h. Referenced by SphereTree::clone(). |
|
Definition at line 27 of file SphereTree.h. |
|
Definition at line 769 of file BVH.cc. References BVH::__debug(), BVList::__debug(), Geometry::__debug(), BVH::Node::bv, BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, and BVH::Node::rightChild. |
|
Reimplemented from SDS. Definition at line 762 of file BVH.cc. References BVH::_root. Referenced by BVH::__debug(). |
|
Definition at line 782 of file BVH.cc. References BVH::_coordMat, BVH::Node::bv, Geometry::clone(), Mesh::getActVert1(), Mesh::getActVert2(), Mesh::goToNextSolid(), BVH::Node::leaf, BVH::Node::leftChild, Geometry::mesh(), Mesh::resetActSolid(), Mesh::resetEdgeWalkInSolid(), BVH::Node::rightChild, and Mesh::stepInEdgeWalkInSolid(). Referenced by BVH::__getEdges(). |
|
Definition at line 846 of file BVH.cc. References BVH::_coordMat, BVH::Node::bv, Geometry::clone(), BVH::Node::leaf, BVH::Node::leftChild, Geometry::mesh(), and BVH::Node::rightChild. Referenced by BVH::__getMeshes(). |
|
Definition at line 832 of file BVH.cc. References BVH::__get_edges(), and BVH::_root. |
|
Definition at line 871 of file BVH.cc. References BVH::__get_meshes(), and BVH::_root. |
|
Definition at line 9 of file BVH.cc. References BVH::_create_bv(), BVH::_create_list(), BVH::_depthLimit, BVH::_enlarge_bv(), BVH::_leafLimit, BVH::_leftLeaf, BVH::_splitStrategy, BVList::append(), BVH::Node::bv, BVH::Node::leaf, BVH::Node::leftChild, BVList::length(), BVH::Node::list, BVH::Node::parent, BVH::Node::rightChild, BVH::Node::sibling, and BVList::split(). |
|
Definition at line 143 of file BVH.cc. References BVH::_create_bv(), BVH::_depthLimit, BVH::_leafLimit, BVH::Node::bv, BVH::Node::leaf, BVList::length(), and BVH::Node::list. Referenced by BVH::build(). |
|
Definition at line 241 of file BVH.cc. References List::append(), BVH::Node::bv, BVList::firstItem(), BVH::Node::leaf, BVH::Node::list, BVList::nextItem(), and Geometry::separation(). Referenced by BVH::collision(). |
|
Definition at line 229 of file BVH.cc. References List::append(), BVList::firstItem(), and BVList::nextItem(). Referenced by BVH::_append(), BVH::_build_tree(), BVH::_rebuild_tree(), BVH::_remove_leaf(), BVH::collision(), and BVH::detach(). |
|
Implements BVH. Definition at line 30 of file SphereTree.cc. |
|
Implements BVH. Definition at line 25 of file SphereTree.cc. |
|
Implements BVH. Definition at line 20 of file SphereTree.cc. |
|
Reimplemented in FDH14Tree. Definition at line 284 of file BVH.cc. References BVH::_coordMat, BVH::_scaleRatio, and BVH::Node::bv. Referenced by BVH::_dr_inner(), BVH::distance(), and BVH::separation(). |
|
Implements BVH. Definition at line 35 of file SphereTree.cc. References FDH14::DIRS, and FDH14::FDHMat. |
|
Definition at line 195 of file BVH.cc. References BVH::Node::bv, BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, and BVH::Node::rightChild. Referenced by BVH::~BVH(). |
|
Reimplemented in FDH14Tree. Definition at line 289 of file BVH.cc. References BVH::_coordMat, BVH::_myTrMat, BVH::_pPartner, BVH::_scaleRatio, and SDS::multiTrans(). Referenced by FDH14Tree::_dr_init(), BVH::distance(), and BVH::separation(). |
|
Definition at line 414 of file BVH.cc. References BVH::_create_dist_rot(), BVH::_dr_leaf(), BVH::_pPartner, BVH::Node::bv, DistRot::distance(), BVH::DRInfo::hisMaxDepth, BVH::Node::leaf, BVH::DRInfo::leafInMe, BVH::Node::leftChild, BVH::DRInfo::maxDepth, BVH::DRInfo::minD, BVH::DRInfo::myMaxDepth, BVH::DRInfo::pDistRot, BVH::DRInfo::pLeaf, and BVH::Node::rightChild. Referenced by BVH::distance(), and BVH::separation(). |
|
Definition at line 347 of file BVH.cc. References BVH::_coordMat, BVH::_dr_primitives(), BVH::_myTrMat, BVH::_pPartner, BVH::Node::bv, DistRot::distance(), ESG_INVERSE_TR_DIR, BVH::Node::leaf, BVH::DRInfo::leafInMe, BVH::Node::leftChild, BVH::DRInfo::maxDepth, BVH::DRInfo::minD, BVH::DRInfo::pDir, BVH::DRInfo::pDistRot, BVH::DRInfo::pLeaf, BVH::DRInfo::pLeafA, BVH::DRInfo::pLeafB, and BVH::Node::rightChild. Referenced by BVH::_dr_inner(). |
|
Definition at line 304 of file BVH.cc. References BVH::DRInfo::DISTANCE, BVList::firstItem(), BVH::DRInfo::leafInMe, BVH::Node::list, MAXDOUBLE, BVH::DRInfo::minD, BVList::nextItem(), BVH::DRInfo::pLeaf, BVH::DRInfo::pLeafA, BVH::DRInfo::pLeafB, BVH::DRInfo::POINT_COLLISION, BVH::DRInfo::SEPARATION, and BVH::DRInfo::strategy. Referenced by BVH::_dr_leaf(). |
|
Definition at line 259 of file BVH.cc. References BVH::Node::bv, Geometry::dump(), BVList::firstItem(), BVH::Node::leaf, BVH::Node::list, and BVList::nextItem(). Referenced by BVH::dump(). |
|
Reimplemented from BVH. Definition at line 40 of file SphereTree.cc. References BVH::_duplicate_attributes(). Referenced by SphereTree::clone(). |
|
Implements BVH. Definition at line 5 of file SphereTree.cc. References Geometry::centroid(), Geometry::clone(), and Geometry::radius(). |
|
Definition at line 216 of file BVH.cc. References BVH::_create_bv(), BVH::Node::bv, BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, and BVH::Node::rightChild. Referenced by BVH::update(). |
|
Definition at line 86 of file BVH.cc. References BVH::_create_bv(), BVH::_leftLeaf, BVH::_root, BVH::Node::bv, BVH::Node::leftChild, BVH::Node::list, BVH::Node::parent, and BVH::Node::rightChild. Referenced by BVH::detach(). |
|
Implements SDS. Definition at line 532 of file BVH.cc. References SDS::_intangibleChildren, List::append(), and SceneGraphObject::tangible(). |
|
Implements SDS. Definition at line 594 of file BVH.cc. References BVH::_build_tree(), SDS::_delayBuild, and BVH::_root. |
|
Implements BVH. Definition at line 47 of file SphereTree.cc. References SphereTree::_duplicate_attributes(), and SphereTree::SphereTree(). |
|
Definition at line 687 of file BVH.cc. References BVH::_collision(), BVH::_create_bv(), SDS::_delayBuild, BVH::_root, BVH::_scaleRatio, BVH::Node::bv, List::firstItem(), List::length(), SDS::multiTrans(), and List::nextItem(). Referenced by OSGAdapter::collision(). |
|
Implements SDS. Definition at line 527 of file BVH.cc. References BVH::InspectorBVH. |
|
Implements SDS. Definition at line 522 of file BVH.cc. References BVH::IteratorBVH. Referenced by OSGAdapter::getVertices(). |
|
|
|
Implements SDS. Definition at line 567 of file BVH.cc. References BVH::_create_bv(), BVH::_leftLeaf, BVH::_remove_leaf(), and BVH::Node::rightChild. |
|
Definition at line 603 of file BVH.cc. References BVH::_create_dist_rot(), SDS::_delayBuild, BVH::_dr_init(), BVH::_dr_inner(), BVH::_root, BVH::Node::bv, DistRot::distance(), BVH::DRInfo::DISTANCE, BVH::DRInfo::hisMaxDepth, MAXDOUBLE, BVH::DRInfo::minD, BVH::DRInfo::myMaxDepth, BVH::DRInfo::pDir, BVH::DRInfo::pDistRot, BVH::DRInfo::pLeafA, BVH::DRInfo::pLeafB, and BVH::DRInfo::strategy. Referenced by OSGAdapter::distance(). |
|
Reimplemented in OctTree. |
|
Implements SDS. Definition at line 739 of file BVH.cc. References BVH::_depthLimit, BVH::_dump(), BVH::_leafLimit, BVH::_root, BVH::_splitStrategy, BVH::_treeDepth, BVList::SPLIT_BY_MAX_EXTENT, and BVList::SPLIT_BY_MAX_VARIATION. |
|
|
|
|
|
Definition at line 10 of file SDS.cc. Referenced by FDH14Tree::_dr_init(), BVH::_dr_init(), and BVH::collision(). |
|
Definition at line 651 of file BVH.cc. References BVH::_create_dist_rot(), SDS::_delayBuild, BVH::_dr_init(), BVH::_dr_inner(), BVH::_root, BVH::Node::bv, BVH::DRInfo::hisMaxDepth, BVH::DRInfo::minD, BVH::DRInfo::myMaxDepth, BVH::DRInfo::pDir, BVH::DRInfo::pDistRot, BVH::DRInfo::pLeafA, BVH::DRInfo::pLeafB, DistRot::separation(), BVH::DRInfo::SEPARATION, and BVH::DRInfo::strategy. Referenced by OSGAdapter::separation(). |
|
Implements SDS. Definition at line 587 of file BVH.cc. References SDS::_delayBuild, BVH::_rebuild_tree(), and BVH::_root. |
|
matrix transforming my coords to the partner's
Definition at line 125 of file BVH.h. Referenced by BVH::__get_edges(), BVH::__get_meshes(), BVH::_create_dist_rot(), BVH::_dr_init(), and BVH::_dr_leaf(). |
|
Definition at line 31 of file SDS.h. Referenced by SDS::_duplicate_attributes(), OctTree::build(), BVH::build(), BVH::collision(), BVH::distance(), BVH::separation(), OctTree::update(), and BVH::update(). |
|
Definition at line 121 of file BVH.h. Referenced by BVH::_append(), BVH::_build_tree(), BVH::_duplicate_attributes(), BVH::BVH(), and BVH::dump(). |
|
|
|
Definition at line 32 of file SDS.h. Referenced by OctTree::append(), Heap::append(), BVH::append(), IteratorSDS::firstChild(), and IteratorSDS::nextChild(). |
|
Definition at line 120 of file BVH.h. Referenced by BVH::_append(), BVH::_build_tree(), BVH::_duplicate_attributes(), BVH::BVH(), and BVH::dump(). |
|
Definition at line 119 of file BVH.h. Referenced by BVH::_append(), BVH::_duplicate_attributes(), BVH::_remove_leaf(), BVH::BVH(), and BVH::detach(). |
|
Definition at line 124 of file BVH.h. Referenced by BVH::_dr_init(), and BVH::_dr_leaf(). |
|
partner during collision detection
Definition at line 127 of file BVH.h. Referenced by BVH::_dr_init(), BVH::_dr_inner(), BVH::_dr_leaf(), BVH::_duplicate_attributes(), and BVH::BVH(). |
|
Definition at line 118 of file BVH.h. Referenced by BVH::__debug(), BVH::__getEdges(), BVH::__getMeshes(), BVH::_duplicate_attributes(), BVH::_remove_leaf(), BVH::build(), BVH::BVH(), BVH::collision(), BVH::distance(), BVH::dump(), BVH::separation(), BVH::update(), and BVH::~BVH(). |
|
metric ratio scale from _pCoordMat
Definition at line 126 of file BVH.h. Referenced by FDH14Tree::_create_dist_rot(), BVH::_create_dist_rot(), FDH14Tree::_dr_init(), BVH::_dr_init(), BVH::_duplicate_attributes(), BVH::BVH(), and BVH::collision(). |
|
Definition at line 129 of file BVH.h. Referenced by BVH::_append(), BVH::_duplicate_attributes(), BVH::BVH(), and BVH::dump(). |
|
Definition at line 122 of file BVH.h. Referenced by BVH::dump(). |