Point Cloud Library (PCL)  1.9.1-dev
List of all members | Public Types | Public Member Functions | Protected Attributes
pcl::cuda::SampleConsensusModel< Storage > Class Template Referenceabstract

SampleConsensusModel represents the base model class. More...

#include </__w/1/s/cuda/sample_consensus/include/pcl/cuda/sample_consensus/sac_model.h>

+ Inheritance diagram for pcl::cuda::SampleConsensusModel< Storage >:

Public Types

typedef PointCloudAOS< Storage > PointCloud
 
typedef PointCloud::Ptr PointCloudPtr
 
typedef PointCloud::ConstPtr PointCloudConstPtr
 
typedef boost::shared_ptr< SampleConsensusModelPtr
 
typedef boost::shared_ptr< const SampleConsensusModelConstPtr
 
typedef Storage< int >::type Indices
 
typedef boost::shared_ptr< typename Storage< int >::type > IndicesPtr
 
typedef boost::shared_ptr< const typename Storage< int >::type > IndicesConstPtr
 
typedef Storage< float >::type Coefficients
 
typedef boost::shared_ptr< CoefficientsCoefficientsPtr
 
typedef boost::shared_ptr< const CoefficientsCoefficientsConstPtr
 
typedef Storage< float4 >::type Hypotheses
 
typedef Storage< int >::type Samples
 

Public Member Functions

 SampleConsensusModel (const PointCloudConstPtr &cloud)
 Constructor for base SampleConsensusModel. More...
 
virtual ~SampleConsensusModel ()
 Destructor for base SampleConsensusModel. More...
 
virtual void getSamples (int &iterations, Indices &samples)=0
 Get a set of random data samples and return them as point indices. More...
 
virtual bool computeModelCoefficients (const Indices &samples, Coefficients &model_coefficients)=0
 Check whether the given index samples can form a valid model, compute the model coefficients from these samples and store them in model_coefficients. More...
 
virtual bool generateModelHypotheses (Hypotheses &h, int max_iterations)=0
 
virtual bool generateModelHypotheses (Hypotheses &h, Samples &s, int max_iterations)=0
 
virtual bool isSampleInlier (IndicesPtr &inliers_stencil, Samples &samples, unsigned int &i)
 
virtual int selectWithinDistance (const Coefficients &model_coefficients, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)=0
 Select all the points which respect the given model coefficients as inliers. More...
 
virtual int selectWithinDistance (const Hypotheses &h, int idx, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)=0
 
virtual int selectWithinDistance (Hypotheses &h, int idx, float threshold, IndicesPtr &inliers_stencil, float3 &centroid)=0
 
virtual int countWithinDistance (const Coefficients &model_coefficients, float threshold)=0
 
virtual int countWithinDistance (const Hypotheses &h, int idx, float threshold)=0
 
int deleteIndices (const IndicesPtr &indices_stencil)
 
int deleteIndices (const Hypotheses &h, int idx, IndicesPtr &inliers, const IndicesPtr &inliers_delete)
 
virtual void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset. More...
 
PointCloudConstPtr getInputCloud () const
 Get a pointer to the input point cloud dataset. More...
 
IndicesPtr getIndices () const
 Get a pointer to the vector of indices used. More...
 
void setRadiusLimits (float min_radius, float max_radius)
 Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius) More...
 
void getRadiusLimits (float &min_radius, float &max_radius)
 Get the minimum and maximum allowable radius limits for the model as set by the user. More...
 
boost::shared_ptr< typename Storage< float4 >::type > getNormals ()
 
void setNormals (boost::shared_ptr< typename Storage< float4 >::type > normals)
 

Protected Attributes

PointCloudConstPtr input_
 A boost shared pointer to the point cloud data array. More...
 
boost::shared_ptr< typename Storage< float4 >::type > normals_
 
IndicesPtr indices_
 A pointer to the vector of point indices to use. More...
 
IndicesPtr indices_stencil_
 A pointer to the vector of point indices (stencil) to use. More...
 
unsigned int nr_indices_in_stencil_
 number of indices left in indices_stencil_ More...
 
float radius_min_
 The minimum and maximum radius limits for the model. More...
 
float radius_max_
 
thrust::minstd_rand rngl_
 Linear-Congruent random number generator engine. More...
 

Detailed Description

template<template< typename > class Storage>
class pcl::cuda::SampleConsensusModel< Storage >

SampleConsensusModel represents the base model class.

All sample consensus models must inherit from this class.

Definition at line 87 of file sac_model.h.

Member Typedef Documentation

template<template< typename > class Storage>
typedef Storage<float>::type pcl::cuda::SampleConsensusModel< Storage >::Coefficients

Definition at line 101 of file sac_model.h.

template<template< typename > class Storage>
typedef boost::shared_ptr<const Coefficients> pcl::cuda::SampleConsensusModel< Storage >::CoefficientsConstPtr

Definition at line 103 of file sac_model.h.

template<template< typename > class Storage>
typedef boost::shared_ptr<Coefficients> pcl::cuda::SampleConsensusModel< Storage >::CoefficientsPtr

Definition at line 102 of file sac_model.h.

template<template< typename > class Storage>
typedef boost::shared_ptr<const SampleConsensusModel> pcl::cuda::SampleConsensusModel< Storage >::ConstPtr

Definition at line 95 of file sac_model.h.

template<template< typename > class Storage>
typedef Storage<float4>::type pcl::cuda::SampleConsensusModel< Storage >::Hypotheses

Definition at line 105 of file sac_model.h.

template<template< typename > class Storage>
typedef Storage<int>::type pcl::cuda::SampleConsensusModel< Storage >::Indices

Definition at line 97 of file sac_model.h.

template<template< typename > class Storage>
typedef boost::shared_ptr<const typename Storage<int>::type> pcl::cuda::SampleConsensusModel< Storage >::IndicesConstPtr

Definition at line 99 of file sac_model.h.

template<template< typename > class Storage>
typedef boost::shared_ptr<typename Storage<int>::type> pcl::cuda::SampleConsensusModel< Storage >::IndicesPtr

Definition at line 98 of file sac_model.h.

template<template< typename > class Storage>
typedef PointCloudAOS<Storage> pcl::cuda::SampleConsensusModel< Storage >::PointCloud

Definition at line 90 of file sac_model.h.

template<template< typename > class Storage>
typedef PointCloud::ConstPtr pcl::cuda::SampleConsensusModel< Storage >::PointCloudConstPtr

Definition at line 92 of file sac_model.h.

template<template< typename > class Storage>
typedef PointCloud::Ptr pcl::cuda::SampleConsensusModel< Storage >::PointCloudPtr

Definition at line 91 of file sac_model.h.

template<template< typename > class Storage>
typedef boost::shared_ptr<SampleConsensusModel> pcl::cuda::SampleConsensusModel< Storage >::Ptr

Definition at line 94 of file sac_model.h.

template<template< typename > class Storage>
typedef Storage<int>::type pcl::cuda::SampleConsensusModel< Storage >::Samples

Definition at line 107 of file sac_model.h.

Constructor & Destructor Documentation

template<template< typename > class Storage>
pcl::cuda::SampleConsensusModel< Storage >::SampleConsensusModel ( const PointCloudConstPtr cloud)
inline

Constructor for base SampleConsensusModel.

Parameters
cloudthe input point cloud dataset

Definition at line 118 of file sac_model.h.

template<template< typename > class Storage>
virtual pcl::cuda::SampleConsensusModel< Storage >::~SampleConsensusModel ( )
inlinevirtual

Destructor for base SampleConsensusModel.

Definition at line 143 of file sac_model.h.

Member Function Documentation

template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::computeModelCoefficients ( const Indices samples,
Coefficients model_coefficients 
)
pure virtual

Check whether the given index samples can form a valid model, compute the model coefficients from these samples and store them in model_coefficients.

Pure virtual.

Parameters
samplesthe point indices found as possible good candidates for creating a valid model, stored on the device
model_coefficientsthe computed model coefficients

Implemented in pcl::cuda::SampleConsensusModel1PointPlane< Storage >, and pcl::cuda::SampleConsensusModelPlane< Storage >.

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::countWithinDistance ( const Coefficients model_coefficients,
float  threshold 
)
pure virtual
template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::countWithinDistance ( const Hypotheses h,
int  idx,
float  threshold 
)
pure virtual
template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel< Storage >::deleteIndices ( const IndicesPtr indices_stencil)
template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel< Storage >::deleteIndices ( const Hypotheses h,
int  idx,
IndicesPtr inliers,
const IndicesPtr inliers_delete 
)
template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::generateModelHypotheses ( Hypotheses h,
int  max_iterations 
)
pure virtual
template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::generateModelHypotheses ( Hypotheses h,
Samples s,
int  max_iterations 
)
pure virtual
template<template< typename > class Storage>
IndicesPtr pcl::cuda::SampleConsensusModel< Storage >::getIndices ( ) const
inline

Get a pointer to the vector of indices used.

Definition at line 287 of file sac_model.h.

template<template< typename > class Storage>
PointCloudConstPtr pcl::cuda::SampleConsensusModel< Storage >::getInputCloud ( ) const
inline

Get a pointer to the input point cloud dataset.

Definition at line 268 of file sac_model.h.

template<template< typename > class Storage>
boost::shared_ptr<typename Storage<float4>::type> pcl::cuda::SampleConsensusModel< Storage >::getNormals ( )
inline

Definition at line 335 of file sac_model.h.

template<template< typename > class Storage>
void pcl::cuda::SampleConsensusModel< Storage >::getRadiusLimits ( float &  min_radius,
float &  max_radius 
)
inline

Get the minimum and maximum allowable radius limits for the model as set by the user.

Parameters
min_radiusthe resultant minimum radius model
max_radiusthe resultant maximum radius model

Definition at line 326 of file sac_model.h.

template<template< typename > class Storage>
virtual void pcl::cuda::SampleConsensusModel< Storage >::getSamples ( int &  iterations,
Indices samples 
)
pure virtual

Get a set of random data samples and return them as point indices.

Pure virtual.

Parameters
iterationsthe internal number of iterations used by SAC methods
samplesthe resultant model samples, stored on the device

Implemented in pcl::cuda::SampleConsensusModel1PointPlane< Storage >, and pcl::cuda::SampleConsensusModelPlane< Storage >.

template<template< typename > class Storage>
virtual bool pcl::cuda::SampleConsensusModel< Storage >::isSampleInlier ( IndicesPtr inliers_stencil,
Samples samples,
unsigned int &  i 
)
inlinevirtual

Definition at line 170 of file sac_model.h.

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::selectWithinDistance ( const Coefficients model_coefficients,
float  threshold,
IndicesPtr inliers,
IndicesPtr inliers_stencil 
)
pure virtual

Select all the points which respect the given model coefficients as inliers.

Pure virtual.

Parameters
model_coefficientsthe coefficients of a model that we need to compute distances to
thresholda maximum admissible distance threshold for determining the inliers from the outliers
inliersthe resultant model inliers
inliers_stencil

Implemented in pcl::cuda::SampleConsensusModel1PointPlane< Storage >, and pcl::cuda::SampleConsensusModelPlane< Storage >.

template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::selectWithinDistance ( const Hypotheses h,
int  idx,
float  threshold,
IndicesPtr inliers,
IndicesPtr inliers_stencil 
)
pure virtual
template<template< typename > class Storage>
virtual int pcl::cuda::SampleConsensusModel< Storage >::selectWithinDistance ( Hypotheses h,
int  idx,
float  threshold,
IndicesPtr inliers_stencil,
float3 &  centroid 
)
pure virtual
template<template< typename > class Storage>
virtual void pcl::cuda::SampleConsensusModel< Storage >::setInputCloud ( const PointCloudConstPtr cloud)
virtual

Provide a pointer to the input dataset.

Parameters
cloudthe const boost shared pointer to a PointCloud message
template<template< typename > class Storage>
void pcl::cuda::SampleConsensusModel< Storage >::setNormals ( boost::shared_ptr< typename Storage< float4 >::type >  normals)
inline

Definition at line 338 of file sac_model.h.

template<template< typename > class Storage>
void pcl::cuda::SampleConsensusModel< Storage >::setRadiusLimits ( float  min_radius,
float  max_radius 
)
inline

Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius)

Parameters
min_radiusthe minimum radius model
max_radiusthe maximum radius model

Definition at line 313 of file sac_model.h.

Member Data Documentation

template<template< typename > class Storage>
IndicesPtr pcl::cuda::SampleConsensusModel< Storage >::indices_
protected

A pointer to the vector of point indices to use.

Definition at line 353 of file sac_model.h.

template<template< typename > class Storage>
IndicesPtr pcl::cuda::SampleConsensusModel< Storage >::indices_stencil_
protected

A pointer to the vector of point indices (stencil) to use.

Definition at line 355 of file sac_model.h.

template<template< typename > class Storage>
PointCloudConstPtr pcl::cuda::SampleConsensusModel< Storage >::input_
protected

A boost shared pointer to the point cloud data array.

Definition at line 349 of file sac_model.h.

template<template< typename > class Storage>
boost::shared_ptr<typename Storage<float4>::type> pcl::cuda::SampleConsensusModel< Storage >::normals_
protected

Definition at line 350 of file sac_model.h.

template<template< typename > class Storage>
unsigned int pcl::cuda::SampleConsensusModel< Storage >::nr_indices_in_stencil_
protected

number of indices left in indices_stencil_

Definition at line 357 of file sac_model.h.

template<template< typename > class Storage>
float pcl::cuda::SampleConsensusModel< Storage >::radius_max_
protected

Definition at line 362 of file sac_model.h.

template<template< typename > class Storage>
float pcl::cuda::SampleConsensusModel< Storage >::radius_min_
protected

The minimum and maximum radius limits for the model.

Applicable to all models that estimate a radius.

Definition at line 362 of file sac_model.h.

template<template< typename > class Storage>
thrust::minstd_rand pcl::cuda::SampleConsensusModel< Storage >::rngl_
protected

Linear-Congruent random number generator engine.

Definition at line 365 of file sac_model.h.


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