RobWorkProject  23.9.11-
Public Types | Public Member Functions | List of all members
BinaryBVTree< BV, PRIM > Class Template Reference

a generic pointer based tree structure. This is not the most efficient structure for bounding volume trees. though it is quite generic and easy to work with because of its pointer based structure. More...

#include <BinaryBVTree.hpp>

Inherits BVTree< BinaryBVTree< BV, PRIM > >.

Public Types

typedef BV BVType
 
typedef PRIM PRIMType
 
typedef BV::value_type value_type
 
typedef rw::core::Ptr< BinaryBVTree< BV, PRIM > > Ptr
 
typedef BTPNode< BV, PRIM > Node
 
typedef BTPNode< BV, PRIM >::NodeIterator NodeIterator
 
- Public Types inherited from BVTree< BinaryBVTree< BV, PRIM > >
typedef Traits< BinaryBVTree< BV, PRIM > >::BVType BVType
 
typedef Traits< BinaryBVTree< BV, PRIM > >::PRIMType PRIMType
 
typedef BVType::value_type value_type
 
typedef Traits< BinaryBVTree< BV, PRIM > >::NodeIterator NodeIterator
 
typedef Traits< BinaryBVTree< BV, PRIM > >::Node Node
 

Public Member Functions

 BinaryBVTree (PrimArrayAccessor< PRIM > *paccessor)
 constructor
 
 ~BinaryBVTree ()
 Destructor.
 
NodeIterator getIterator () const
 
NodeIterator createLeft (NodeIterator parent)
 
NodeIterator createRight (NodeIterator parent)
 
NodeIterator createRoot ()
 
void setBV (const BVType &bv, NodeIterator node)
 
void setNrOfPrims (int size, NodeIterator node)
 
void setPrimIdx (int primIdx, NodeIterator node)
 
void optimize ()
 
void setLeafPrimitives (Node *node, size_t primStartIdxs)
 
NodeIterator getRootIterator () const
 
NodegetRoot ()
 
std::pair< int, int > countNodes () const
 
void print () const
 
int getMaxTrisPerLeaf () const
 
- Public Member Functions inherited from BVTree< BinaryBVTree< BV, PRIM > >
 BVTree (PrimArrayAccessor< PRIMType > *primAccessor)
 Constructor. The BVTree takes ownership of the primAccessor . More...
 
virtual ~BVTree ()
 Destructor.
 
virtual NodeIterator createLeft (NodeIterator parent)=0
 
virtual NodeIterator createRight (NodeIterator parent)=0
 
virtual void setBV (const BVType &bv, NodeIterator node)=0
 
virtual void setNrOfPrims (int size, NodeIterator node)=0
 
virtual void setPrimIdx (int primIdx, NodeIterator node)=0
 
int getPrimitive (const NodeIterator &leafnode, PRIMType &dst, size_t triNr) const
 get triangle nr triNr that the BVNode leafnode is bounding. The result is set in triangle tridst and the index of the triangle is returned More...
 
size_t getNrPrimitives (const NodeIterator &leafnode) const
 

Detailed Description

template<class BV, class PRIM>
class rw::proximity::BinaryBVTree< BV, PRIM >

a generic pointer based tree structure. This is not the most efficient structure for bounding volume trees. though it is quite generic and easy to work with because of its pointer based structure.


The documentation for this class was generated from the following file: