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. | |
| void | clear () |
| Frees the memory allocated by this object. | |
| 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. | |
Protected Attributes | |
| Node * | root_ |
| std::vector< BoundedObject * > * | sorted_objects_ |
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.
| pcl::recognition::BVH< UserData >::BVH | ( | ) | [inline] |
| virtual pcl::recognition::BVH< UserData >::~BVH | ( | ) | [inline, virtual] |
| 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.
| void pcl::recognition::BVH< UserData >::clear | ( | ) | [inline] |
| const std::vector<BoundedObject*>* pcl::recognition::BVH< UserData >::getInputObjects | ( | ) | const [inline] |
| 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().
Node* pcl::recognition::BVH< UserData >::root_ [protected] |
std::vector<BoundedObject*>* pcl::recognition::BVH< UserData >::sorted_objects_ [protected] |