pcl::recognition::ModelLibrary Class Reference

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

## Classes

class | Model
| Stores some information about the model. More...

## Public Types

typedef pcl::PointCloud< pcl::PointXYZ > | PointCloudIn
typedef pcl::PointCloud< pcl::Normal > | PointCloudN
typedef std::list< std::pair< const ORROctree::Node::Data *, const ORROctree::Node::Data * > > | node_data_pair_list
typedef std::map< const Model *, node_data_pair_list > | HashTableCell
typedef VoxelStructure< HashTableCell, float > | HashTable

## Public Member Functions

| ModelLibrary (float pair_width, float voxel_size, float max_coplanarity_angle=3.0f *AUX_DEG_TO_RADIANS)
| This class is used by 'ObjRecRANSAC' to maintain the object models to be recognized. More...
virtual | ~ModelLibrary ()
void | removeAllModels ()
| Removes all models from the library and clears the hash table. More...
void | setMaxCoplanarityAngleDegrees (float max_coplanarity_angle_degrees)
| This is a threshold. More...
void | ignoreCoplanarPointPairsOn ()
| Call this method in order NOT to add co-planar point pairs to the hash table. More...
void | ignoreCoplanarPointPairsOff ()
| Call this method in order to add all point pairs (co-planar as well) to the hash table. More...
bool | addModel (const PointCloudIn &points, const PointCloudN &normals, const std::string &object_name, float frac_of_points_for_registration, void *user_data=NULL)
| Adds a model to the hash table. More...
const HashTable & | getHashTable () const
| Returns the hash table built by this instance. More...
const Model * | getModel (const std::string &name) const
const std::map< std::string, Model * > & | getModels () const

## Protected Member Functions

void | clear ()
| Removes all models from the library and destroys the hash table. More...
bool | addToHashTable (Model *model, const ORROctree::Node::Data *data1, const ORROctree::Node::Data *data2)
| Returns true if the oriented point pair was added to the hash table and false otherwise. More...

## Protected Attributes

float | pair_width_
float | voxel_size_
float | max_coplanarity_angle_
bool | ignore_coplanar_opps_
std::map< std::string, Model * > | models_
HashTable | hash_table_
int | num_of_cells_ [3]

## Detailed Description

Definition at line 59 of file model_library.h.

## Member Typedef Documentation

typedef VoxelStructure<HashTableCell, float> pcl::recognition::ModelLibrary::HashTable

Definition at line 176 of file model_library.h.

typedef std::map<const Model*, node_data_pair_list> pcl::recognition::ModelLibrary::HashTableCell

Definition at line 175 of file model_library.h.

typedef std::list<std::pair<const ORROctree::Node::Data*, const ORROctree::Node::Data*> > pcl::recognition::ModelLibrary::node_data_pair_list

Definition at line 174 of file model_library.h.

typedef pcl::PointCloud<pcl::PointXYZ> pcl::recognition::ModelLibrary::PointCloudIn

Definition at line 62 of file model_library.h.

typedef pcl::PointCloud<pcl::Normal> pcl::recognition::ModelLibrary::PointCloudN

Definition at line 63 of file model_library.h.

## Constructor & Destructor Documentation

pcl::recognition::ModelLibrary::ModelLibrary | ( | float | pair_width,
|  | float | voxel_size,
|  | float | max_coplanarity_angle = `3.0f *AUX_DEG_TO_RADIANS`
| ) |  |

This class is used by 'ObjRecRANSAC' to maintain the object models to be recognized.

Normally, you do not need to use this class directly.

virtual pcl::recognition::ModelLibrary::~ModelLibrary | ( |  | ) |

inline virtual

Definition at line 182 of file model_library.h.

## Member Function Documentation

bool pcl::recognition::ModelLibrary::addModel | ( | const PointCloudIn & | points,
|  | const PointCloudN & | normals,
|  | const std::string & | object_name,
|  | float | frac_of_points_for_registration,
|  | void * | user_data = `NULL`
| ) |  |

Adds a model to the hash table.

Parameters

  [in] | points | represents the model to be added.
  [in] | normals | are the normals at the model points.
  [in] | object_name | is the unique name of the object to be added.
  [in] | frac_of_points_for_registration | is the number of points used for fast ICP registration prior to hypothesis testing
  [in] | user_data | is a pointer to some data (can be NULL)

Returns true if model successfully added and false otherwise (e.g., if object_name is not unique).

bool pcl::recognition::ModelLibrary::addToHashTable | ( | Model * | model,
|  | const ORROctree::Node::Data * | data1,
|  | const ORROctree::Node::Data * | data2
| ) |  |

protected

Returns true if the oriented point pair was added to the hash table and false otherwise.

void pcl::recognition::ModelLibrary::clear | ( |  | ) |

protected

Removes all models from the library and destroys the hash table.

This method should be called upon destroying this object.

const HashTable& pcl::recognition::ModelLibrary::getHashTable | ( |  | ) | const

inline

Returns the hash table built by this instance.

Definition at line 231 of file model_library.h.

const Model* pcl::recognition::ModelLibrary::getModel | ( | const std::string & | name | ) | const

inline

Definition at line 237 of file model_library.h.

const std::map<std::string,Model*>& pcl::recognition::ModelLibrary::getModels | ( |  | ) | const

inline

Definition at line 247 of file model_library.h.

void pcl::recognition::ModelLibrary::ignoreCoplanarPointPairsOff | ( |  | ) |

inline

Call this method in order to add all point pairs (co-planar as well) to the hash table.

The default behavior is ignoring co-planar points on.

Definition at line 211 of file model_library.h.

void pcl::recognition::ModelLibrary::ignoreCoplanarPointPairsOn | ( |  | ) |

inline

Call this method in order NOT to add co-planar point pairs to the hash table.

The default behavior is ignoring co-planar points on.

Definition at line 203 of file model_library.h.

void pcl::recognition::ModelLibrary::removeAllModels | ( |  | ) |

Removes all models from the library and clears the hash table.

void pcl::recognition::ModelLibrary::setMaxCoplanarityAngleDegrees | ( | float | max_coplanarity_angle_degrees | ) |

inline

This is a threshold.

The larger the value the more point pairs will be considered as co-planar and will be ignored in the off-line model pre-processing and in the online recognition phases. This makes sense only if "ignore co-planar points" is on. Call this method before calling addModel.

Definition at line 195 of file model_library.h.

## Member Data Documentation

HashTable pcl::recognition::ModelLibrary::hash_table_

protected

Definition at line 268 of file model_library.h.

bool pcl::recognition::ModelLibrary::ignore_coplanar_opps_

protected

Definition at line 265 of file model_library.h.

float pcl::recognition::ModelLibrary::max_coplanarity_angle_

protected

Definition at line 264 of file model_library.h.

std::map<std::string,Model*> pcl::recognition::ModelLibrary::models_

protected

Definition at line 267 of file model_library.h.

int pcl::recognition::ModelLibrary::num_of_cells_[3]

protected

Definition at line 269 of file model_library.h.

float pcl::recognition::ModelLibrary::pair_width_

protected

Definition at line 262 of file model_library.h.

float pcl::recognition::ModelLibrary::voxel_size_

protected

Definition at line 263 of file model_library.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/model_library.h