pcl::recognition::BVH< UserData > Class Template Reference

This class is an implementation of bounding volume hierarchies. More...

`#include <pcl/recognition/ransac_based/bvh.h>`

## Classes

class | BoundedObject
class | Node

## Public Member Functions

| BVH ()
virtual | ~BVH ()
void | build (std::vector< BoundedObject * > &objects)
| Creates the tree. More...
void | clear ()
| Frees the memory allocated by this object. More...
const std::vector< BoundedObject * > * | getInputObjects () const
bool | intersect (const float box[6], std::list< BoundedObject * > &intersected_objects) const
| Pushes back in 'intersected_objects' the bounded objects intersected by the input 'box' and returns true. More...

## Protected Attributes

Node * | root_
std::vector< BoundedObject * > * | sorted_objects_

## Detailed Description

### template<class UserData>
class pcl::recognition::BVH< UserData >

This class is an implementation of bounding volume hierarchies.

Use the build method to construct the data structure. To use the class, construct an std::vector of pointers to BVH::BoundedObject objects and pass it to the build method. BVH::BoundedObject is a template class, so you can save user-defined data in it.

The tree is built such that each leaf contains exactly one object.

Definition at line 66 of file bvh.h.

## Constructor & Destructor Documentation

template<class UserData >

pcl::recognition::BVH< UserData >::BVH | ( |  | ) |

inline

Definition at line 219 of file bvh.h.

template<class UserData >

virtual pcl::recognition::BVH< UserData >::~BVH | ( |  | ) |

inline virtual

Definition at line 225 of file bvh.h.

## Member Function Documentation

template<class UserData >

void pcl::recognition::BVH< UserData >::build | ( | std::vector< BoundedObject * > & | objects | ) |

inline

Creates the tree.

No need to call clear, it's called within the method. 'objects' is a vector of pointers to bounded objects which have to have valid bounds and centroids. Use the getData method of BoundedObject to retrieve the user-defined data saved in the object. Note that vector will be sorted within the method!

The tree is built such that each leaf contains exactly one object.

Definition at line 237 of file bvh.h.

template<class UserData >

void pcl::recognition::BVH< UserData >::clear | ( |  | ) |

inline

Frees the memory allocated by this object.

After that, you have to call build to use the tree again.

Definition at line 255 of file bvh.h.

template<class UserData >

const std::vector<BoundedObject*>* pcl::recognition::BVH< UserData >::getInputObjects | ( |  | ) | const

inline

Definition at line 265 of file bvh.h.

template<class UserData >

bool pcl::recognition::BVH< UserData >::intersect | ( | const float | box[6],
|  | std::list< BoundedObject * > & | intersected_objects
| ) |  | const

inline

Pushes back in 'intersected_objects' the bounded objects intersected by the input 'box' and returns true.

Returns false if no objects are intersected.

Definition at line 273 of file bvh.h.

References pcl::recognition::BVH< UserData >::Node::getLeftChild(), pcl::recognition::BVH< UserData >::Node::getObject(), pcl::recognition::BVH< UserData >::Node::getRightChild(), pcl::recognition::BVH< UserData >::Node::hasChildren(), and pcl::recognition::BVH< UserData >::Node::intersect().

## Member Data Documentation

template<class UserData >

Node* pcl::recognition::BVH< UserData >::root_

protected

Definition at line 310 of file bvh.h.

template<class UserData >

std::vector<BoundedObject*>* pcl::recognition::BVH< UserData >::sorted_objects_

protected

Definition at line 311 of file bvh.h.

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

- /build/pcl-6_P28C/pcl-1.7.2/recognition/include/pcl/recognition/ransac_based/bvh.h