Developer Documentation
TriangleBSPCoreT< BSPTraits > Class Template Reference
Inheritance diagram for TriangleBSPCoreT< BSPTraits >:
BSPImplT< TriangleBSPCoreT< BSPTraits > > TriangleBSPT< BSPTraits >

Public Types

typedef BSPTraits Traits
 
typedef BSPTraits::Point Point
 
typedef BSPTraits::Handle Handle
 
typedef BSPTraits::Node Node
 
typedef Point::value_type Scalar
 
typedef ACG::Geometry::PlaneT< Scalar > Plane
 
typedef std::vector< Handle > Handles
 
typedef Handles::iterator HandleIter
 

Public Member Functions

 TriangleBSPCoreT (const BSPTraits &_traits)
 
 ~TriangleBSPCoreT ()
 Destructor. More...
 
void reserve (size_t _n)
 Reserve memory for _n entries. More...
 
void push_back (Handle _h)
 Add a handle to the BSP. More...
 
bool empty ()
 
size_t size ()
 
void build (unsigned int _max_handles, unsigned int _max_depth)
 
template<typename MeshT >
void visualizeTree (MeshT *_object, int _max_depth)
 Create a PolyMesh object that visualizes the bounding boxes of the BSP tree. More...
 

Protected Attributes

BSPTraits traits_
 
Handles handles_
 
Node * root_
 
int nodes
 
int n_triangles
 

Private Member Functions

 TriangleBSPCoreT (const TriangleBSPCoreT &rhs)
 
TriangleBSPCoreToperator= (const TriangleBSPCoreT &rhs)
 
void _build (Node *_node, unsigned int _max_handles, unsigned int _depth)
 

Detailed Description

template<class BSPTraits>
class TriangleBSPCoreT< BSPTraits >

Definition at line 67 of file TriangleBSPCoreT.hh.

Member Typedef Documentation

◆ Handle

template<class BSPTraits >
typedef BSPTraits::Handle TriangleBSPCoreT< BSPTraits >::Handle

Definition at line 73 of file TriangleBSPCoreT.hh.

◆ HandleIter

template<class BSPTraits >
typedef Handles::iterator TriangleBSPCoreT< BSPTraits >::HandleIter

Definition at line 78 of file TriangleBSPCoreT.hh.

◆ Handles

template<class BSPTraits >
typedef std::vector<Handle> TriangleBSPCoreT< BSPTraits >::Handles

Definition at line 77 of file TriangleBSPCoreT.hh.

◆ Node

template<class BSPTraits >
typedef BSPTraits::Node TriangleBSPCoreT< BSPTraits >::Node

Definition at line 74 of file TriangleBSPCoreT.hh.

◆ Plane

template<class BSPTraits >
typedef ACG::Geometry::PlaneT<Scalar> TriangleBSPCoreT< BSPTraits >::Plane

Definition at line 76 of file TriangleBSPCoreT.hh.

◆ Point

template<class BSPTraits >
typedef BSPTraits::Point TriangleBSPCoreT< BSPTraits >::Point

Definition at line 72 of file TriangleBSPCoreT.hh.

◆ Scalar

template<class BSPTraits >
typedef Point::value_type TriangleBSPCoreT< BSPTraits >::Scalar

Definition at line 75 of file TriangleBSPCoreT.hh.

◆ Traits

template<class BSPTraits >
typedef BSPTraits TriangleBSPCoreT< BSPTraits >::Traits

Definition at line 71 of file TriangleBSPCoreT.hh.

Constructor & Destructor Documentation

◆ TriangleBSPCoreT()

template<class BSPTraits >
TriangleBSPCoreT< BSPTraits >::TriangleBSPCoreT ( const BSPTraits &  _traits)
inlineexplicit

Constructor: need traits that define the types and give us the points by traits_.point(PointHandle)

Definition at line 86 of file TriangleBSPCoreT.hh.

◆ ~TriangleBSPCoreT()

template<class BSPTraits >
TriangleBSPCoreT< BSPTraits >::~TriangleBSPCoreT ( )
inline

Destructor.

Definition at line 89 of file TriangleBSPCoreT.hh.

Member Function Documentation

◆ _build()

template<class BSPTraits >
void TriangleBSPCoreT< BSPTraits >::_build ( Node *  _node,
unsigned int  _max_handles,
unsigned int  _depth 
)
private

Definition at line 85 of file TriangleBSPCoreT_impl.hh.

◆ build()

template<class BSPTraits >
void TriangleBSPCoreT< BSPTraits >::build ( unsigned int  _max_handles,
unsigned int  _max_depth 
)

Build the tree.

Parameters
_max_handlesMaximum number of vertices per leaf.
_max_depthMaximum depth.

Definition at line 62 of file TriangleBSPCoreT_impl.hh.

◆ empty()

template<class BSPTraits >
bool TriangleBSPCoreT< BSPTraits >::empty ( )
inline
Returns
size() == 0

Definition at line 102 of file TriangleBSPCoreT.hh.

◆ push_back()

template<class BSPTraits >
void TriangleBSPCoreT< BSPTraits >::push_back ( Handle  _h)
inline

Add a handle to the BSP.

Definition at line 97 of file TriangleBSPCoreT.hh.

◆ reserve()

template<class BSPTraits >
void TriangleBSPCoreT< BSPTraits >::reserve ( size_t  _n)
inline

Reserve memory for _n entries.

Definition at line 95 of file TriangleBSPCoreT.hh.

◆ size()

template<class BSPTraits >
size_t TriangleBSPCoreT< BSPTraits >::size ( )
inline
Returns
The number of triangles contained in the tree.

Definition at line 107 of file TriangleBSPCoreT.hh.

◆ visualizeTree()

template<class BSPTraits >
template<typename MeshT >
void TriangleBSPCoreT< BSPTraits >::visualizeTree ( MeshT _object,
int  _max_depth 
)
inline

Create a PolyMesh object that visualizes the bounding boxes of the BSP tree.

Parameters
_objectThe output mesh which the tree will be written into
_max_depthThe maximal depth that will be visualized

Definition at line 122 of file TriangleBSPCoreT.hh.

Member Data Documentation

◆ handles_

template<class BSPTraits >
Handles TriangleBSPCoreT< BSPTraits >::handles_
protected

Definition at line 151 of file TriangleBSPCoreT.hh.

◆ n_triangles

template<class BSPTraits >
int TriangleBSPCoreT< BSPTraits >::n_triangles
protected

Definition at line 153 of file TriangleBSPCoreT.hh.

◆ nodes

template<class BSPTraits >
int TriangleBSPCoreT< BSPTraits >::nodes
protected

Definition at line 153 of file TriangleBSPCoreT.hh.

◆ root_

template<class BSPTraits >
Node* TriangleBSPCoreT< BSPTraits >::root_
protected

Definition at line 152 of file TriangleBSPCoreT.hh.

◆ traits_

template<class BSPTraits >
BSPTraits TriangleBSPCoreT< BSPTraits >::traits_
protected

Definition at line 150 of file TriangleBSPCoreT.hh.


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