Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
pcl::SampleConsensusModel< PointT > Class Template Referenceabstract

SampleConsensusModel represents the base model class. More...

#include <pcl/sample_consensus/sac_model.h>

+ Inheritance diagram for pcl::SampleConsensusModel< PointT >:
+ Collaboration diagram for pcl::SampleConsensusModel< PointT >:

Public Types

using PointCloud = pcl::PointCloud< PointT >
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using PointCloudPtr = typename PointCloud::Ptr
 
using SearchPtr = typename pcl::search::Search< PointT >::Ptr
 
using Ptr = shared_ptr< SampleConsensusModel< PointT > >
 
using ConstPtr = shared_ptr< const SampleConsensusModel< PointT > >
 

Public Member Functions

 SampleConsensusModel (const PointCloudConstPtr &cloud, bool random=false)
 Constructor for base SampleConsensusModel. More...
 
 SampleConsensusModel (const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
 Constructor for base SampleConsensusModel. More...
 
virtual ~SampleConsensusModel ()=default
 Destructor for base SampleConsensusModel. More...
 
virtual void getSamples (int &iterations, Indices &samples)
 Get a set of random data samples and return them as point indices. More...
 
virtual bool computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const =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 void optimizeModelCoefficients (const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const =0
 Recompute the model coefficients using the given inlier set and return them to the user. More...
 
virtual void getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const =0
 Compute all distances from the cloud data to a given model. More...
 
virtual void selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers)=0
 Select all the points which respect the given model coefficients as inliers. More...
 
virtual std::size_t countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold) const =0
 Count all the points which respect the given model coefficients as inliers. More...
 
virtual void projectPoints (const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true) const =0
 Create a new point cloud with inliers projected onto the model. More...
 
virtual bool doSamplesVerifyModel (const std::set< index_t > &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const =0
 Verify whether a subset of indices verifies a given set of model coefficients. More...
 
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...
 
void setIndices (const IndicesPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
void setIndices (const Indices &indices)
 Provide the vector of indices that represents the input data. More...
 
IndicesPtr getIndices () const
 Get a pointer to the vector of indices used. More...
 
virtual SacModel getModelType () const =0
 Return a unique id for each type of model employed. More...
 
const std::string & getClassName () const
 Get a string representation of the name of this class. More...
 
unsigned int getSampleSize () const
 Return the size of a sample from which the model is computed. More...
 
unsigned int getModelSize () const
 Return the number of coefficients in the model. More...
 
void setRadiusLimits (const double &min_radius, const double &max_radius)
 Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius) More...
 
void getRadiusLimits (double &min_radius, double &max_radius) const
 Get the minimum and maximum allowable radius limits for the model as set by the user. More...
 
void setModelConstraints (std::function< bool(const Eigen::VectorXf &)> function)
 This can be used to impose any kind of constraint on the model, e.g. More...
 
void setSamplesMaxDist (const double &radius, SearchPtr search)
 Set the maximum distance allowed when drawing random samples. More...
 
void getSamplesMaxDist (double &radius) const
 Get maximum distance allowed when drawing random samples. More...
 
double computeVariance (const std::vector< double > &error_sqr_dists) const
 Compute the variance of the errors to the model. More...
 
double computeVariance () const
 Compute the variance of the errors to the model from the internally estimated vector of distances. More...
 

Protected Member Functions

 SampleConsensusModel (bool random=false)
 Empty constructor for base SampleConsensusModel. More...
 
void drawIndexSample (Indices &sample)
 Fills a sample array with random samples from the indices_ vector. More...
 
void drawIndexSampleRadius (Indices &sample)
 Fills a sample array with one random sample from the indices_ vector and other random samples that are closer than samples_radius_. More...
 
virtual bool isModelValid (const Eigen::VectorXf &model_coefficients) const
 Check whether a model is valid given the user constraints. More...
 
virtual bool isSampleGood (const Indices &samples) const =0
 Check if a sample of indices results in a good sample of points indices. More...
 
int rnd ()
 Boost-based random number generator. More...
 

Protected Attributes

std::string model_name_
 The model name. More...
 
PointCloudConstPtr input_
 A boost shared pointer to the point cloud data array. More...
 
IndicesPtr indices_
 A pointer to the vector of point indices to use. More...
 
double radius_min_
 The minimum and maximum radius limits for the model. More...
 
double radius_max_
 
double samples_radius_
 The maximum distance of subsequent samples from the first (radius search) More...
 
SearchPtr samples_radius_search_
 The search object for picking subsequent samples using radius search. More...
 
Indices shuffled_indices_
 Data containing a shuffled version of the indices. More...
 
boost::mt19937 rng_alg_
 Boost-based random number generator algorithm. More...
 
std::shared_ptr< boost::uniform_int<> > rng_dist_
 Boost-based random number generator distribution. More...
 
std::shared_ptr< boost::variate_generator< boost::mt19937 &, boost::uniform_int<> > > rng_gen_
 Boost-based random number generator. More...
 
std::vector< double > error_sqr_dists_
 A vector holding the distances to the computed model. More...
 
unsigned int sample_size_
 The size of a sample from which the model is computed. More...
 
unsigned int model_size_
 The number of coefficients in the model. More...
 
std::function< bool(const Eigen::VectorXf &)> custom_model_constraints_
 A user defined function that takes model coefficients and returns whether the model is acceptable or not. More...
 

Static Protected Attributes

static const unsigned int max_sample_checks_ = 1000
 The maximum number of samples to try until we get a good one. More...
 

Friends

class ProgressiveSampleConsensus< PointT >
 

Detailed Description

template<typename PointT>
class pcl::SampleConsensusModel< PointT >

SampleConsensusModel represents the base model class.

All sample consensus models must inherit from this class.

Author
Radu B. Rusu

Definition at line 70 of file sac_model.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::ConstPtr = shared_ptr<const SampleConsensusModel<PointT> >

Definition at line 79 of file sac_model.h.

◆ PointCloud

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::PointCloud = pcl::PointCloud<PointT>

Definition at line 73 of file sac_model.h.

◆ PointCloudConstPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 74 of file sac_model.h.

◆ PointCloudPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 75 of file sac_model.h.

◆ Ptr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::Ptr = shared_ptr<SampleConsensusModel<PointT> >

Definition at line 78 of file sac_model.h.

◆ SearchPtr

template<typename PointT >
using pcl::SampleConsensusModel< PointT >::SearchPtr = typename pcl::search::Search<PointT>::Ptr

Definition at line 76 of file sac_model.h.

Constructor & Destructor Documentation

◆ SampleConsensusModel() [1/3]

template<typename PointT >
pcl::SampleConsensusModel< PointT >::SampleConsensusModel ( bool  random = false)
inlineprotected

Empty constructor for base SampleConsensusModel.

Parameters
[in]randomif true set the random seed to the current time, else set to 12345 (default: false)

Definition at line 85 of file sac_model.h.

◆ SampleConsensusModel() [2/3]

template<typename PointT >
pcl::SampleConsensusModel< PointT >::SampleConsensusModel ( const PointCloudConstPtr cloud,
bool  random = false 
)
inline

Constructor for base SampleConsensusModel.

Parameters
[in]cloudthe input point cloud dataset
[in]randomif true set the random seed to the current time, else set to 12345 (default: false)

Definition at line 108 of file sac_model.h.

◆ SampleConsensusModel() [3/3]

template<typename PointT >
pcl::SampleConsensusModel< PointT >::SampleConsensusModel ( const PointCloudConstPtr cloud,
const Indices indices,
bool  random = false 
)
inline

Constructor for base SampleConsensusModel.

Parameters
[in]cloudthe input point cloud dataset
[in]indicesa vector of point indices to be used from cloud
[in]randomif true set the random seed to the current time, else set to 12345 (default: false)

Definition at line 134 of file sac_model.h.

◆ ~SampleConsensusModel()

template<typename PointT >
virtual pcl::SampleConsensusModel< PointT >::~SampleConsensusModel ( )
virtualdefault

Destructor for base SampleConsensusModel.

Member Function Documentation

◆ computeModelCoefficients()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::computeModelCoefficients ( const Indices samples,
Eigen::VectorXf &  model_coefficients 
) const
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. Implementations of this function must be thread-safe.

Parameters
[in]samplesthe point indices found as possible good candidates for creating a valid model
[out]model_coefficientsthe computed model coefficients

Implemented in pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, and pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >.

◆ computeVariance() [1/2]

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::computeVariance ( ) const
inline

Compute the variance of the errors to the model from the internally estimated vector of distances.

The model must be computed first (or at least selectWithinDistance must be called).

Definition at line 451 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::error_sqr_dists_.

◆ computeVariance() [2/2]

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::computeVariance ( const std::vector< double > &  error_sqr_dists) const
inline

Compute the variance of the errors to the model.

Parameters
[in]error_sqr_distsa vector holding the distances

Definition at line 437 of file sac_model.h.

◆ countWithinDistance()

template<typename PointT >
virtual std::size_t pcl::SampleConsensusModel< PointT >::countWithinDistance ( const Eigen::VectorXf &  model_coefficients,
const double  threshold 
) const
pure virtual

◆ doSamplesVerifyModel()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::doSamplesVerifyModel ( const std::set< index_t > &  indices,
const Eigen::VectorXf &  model_coefficients,
const double  threshold 
) const
pure virtual

◆ drawIndexSample()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::drawIndexSample ( Indices sample)
inlineprotected

Fills a sample array with random samples from the indices_ vector.

Parameters
[out]samplethe set of indices of target_ to analyze

Definition at line 467 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::rnd(), and pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Referenced by pcl::SampleConsensusModel< PointT >::getSamples().

◆ drawIndexSampleRadius()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius ( Indices sample)
inlineprotected

Fills a sample array with one random sample from the indices_ vector and other random samples that are closer than samples_radius_.

Parameters
[out]samplethe set of indices of target_ to analyze

Definition at line 484 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::input_, pcl::SampleConsensusModel< PointT >::rnd(), pcl::SampleConsensusModel< PointT >::samples_radius_, pcl::SampleConsensusModel< PointT >::samples_radius_search_, and pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Referenced by pcl::SampleConsensusModel< PointT >::getSamples().

◆ getClassName()

template<typename PointT >
const std::string& pcl::SampleConsensusModel< PointT >::getClassName ( ) const
inline

Get a string representation of the name of this class.

Definition at line 350 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::model_name_.

Referenced by pcl::SampleConsensusModel< PointT >::isModelValid().

◆ getDistancesToModel()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::getDistancesToModel ( const Eigen::VectorXf &  model_coefficients,
std::vector< double > &  distances 
) const
pure virtual

◆ getIndices()

template<typename PointT >
IndicesPtr pcl::SampleConsensusModel< PointT >::getIndices ( ) const
inline

Get a pointer to the vector of indices used.

Definition at line 342 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::indices_.

◆ getInputCloud()

template<typename PointT >
PointCloudConstPtr pcl::SampleConsensusModel< PointT >::getInputCloud ( ) const
inline

Get a pointer to the input point cloud dataset.

Definition at line 318 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::input_.

◆ getModelSize()

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::getModelSize ( ) const
inline

Return the number of coefficients in the model.

Definition at line 364 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::model_size_.

◆ getModelType()

template<typename PointT >
virtual SacModel pcl::SampleConsensusModel< PointT >::getModelType ( ) const
pure virtual

◆ getRadiusLimits()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::getRadiusLimits ( double &  min_radius,
double &  max_radius 
) const
inline

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

Parameters
[out]min_radiusthe resultant minimum radius model
[out]max_radiusthe resultant maximum radius model

Definition at line 389 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::radius_max_, and pcl::SampleConsensusModel< PointT >::radius_min_.

Referenced by pcl::SACSegmentation< PointT >::initSACModel(), and pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().

◆ getSamples()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::getSamples ( int &  iterations,
Indices samples 
)
inlinevirtual

◆ getSampleSize()

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::getSampleSize ( ) const
inline

Return the size of a sample from which the model is computed.

Definition at line 357 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::sample_size_.

Referenced by pcl::SampleConsensusModel< PointT >::getSamples().

◆ getSamplesMaxDist()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::getSamplesMaxDist ( double &  radius) const
inline

Get maximum distance allowed when drawing random samples.

Parameters
[out]radiusthe maximum distance (L2 norm)

Definition at line 426 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::samples_radius_.

◆ isModelValid()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::isModelValid ( const Eigen::VectorXf &  model_coefficients) const
inlineprotectedvirtual

◆ isSampleGood()

template<typename PointT >
virtual bool pcl::SampleConsensusModel< PointT >::isSampleGood ( const Indices samples) const
protectedpure virtual

◆ optimizeModelCoefficients()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::optimizeModelCoefficients ( const Indices inliers,
const Eigen::VectorXf &  model_coefficients,
Eigen::VectorXf &  optimized_coefficients 
) const
pure virtual

Recompute the model coefficients using the given inlier set and return them to the user.

Pure virtual.

Note
: these are the coefficients of the model after refinement (e.g., after a least-squares optimization)
Parameters
[in]inliersthe data inliers supporting the model
[in]model_coefficientsthe initial guess for the model coefficients
[out]optimized_coefficientsthe resultant recomputed coefficients after non-linear optimization

Implemented in pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelRegistration< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelEllipse3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle3D< pcl::PointXYZRGB >, pcl::SampleConsensusModelCircle2D< PointT >, and pcl::SampleConsensusModelCircle2D< pcl::PointXYZRGB >.

◆ projectPoints()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::projectPoints ( const Indices inliers,
const Eigen::VectorXf &  model_coefficients,
PointCloud projected_points,
bool  copy_data_fields = true 
) const
pure virtual

Create a new point cloud with inliers projected onto the model.

Pure virtual.

Parameters
[in]inliersthe data inliers that we want to project on the model
[in]model_coefficientsthe coefficients of a model
[out]projected_pointsthe resultant projected points
[in]copy_data_fieldsset to true (default) if we want the projected_points cloud to be an exact copy of the input dataset minus the point projections on the plane model

Implemented in pcl::SampleConsensusModelStick< PointT >, pcl::SampleConsensusModelSphere< PointT >, pcl::SampleConsensusModelPlane< PointT >, pcl::SampleConsensusModelLine< PointT >, pcl::SampleConsensusModelEllipse3D< PointT >, pcl::SampleConsensusModelCylinder< PointT, PointNT >, pcl::SampleConsensusModelCone< PointT, PointNT >, pcl::SampleConsensusModelCircle3D< PointT >, pcl::SampleConsensusModelCircle2D< PointT >, and pcl::SampleConsensusModelRegistration< PointT >.

◆ rnd()

template<typename PointT >
int pcl::SampleConsensusModel< PointT >::rnd ( )
inlineprotected

◆ selectWithinDistance()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::selectWithinDistance ( const Eigen::VectorXf &  model_coefficients,
const double  threshold,
Indices inliers 
)
pure virtual

◆ setIndices() [1/2]

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setIndices ( const Indices indices)
inline

Provide the vector of indices that represents the input data.

Parameters
[out]indicesthe vector of indices that represents the input data.

Definition at line 334 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::indices_, and pcl::SampleConsensusModel< PointT >::shuffled_indices_.

◆ setIndices() [2/2]

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setIndices ( const IndicesPtr indices)
inline

Provide a pointer to the vector of indices that represents the input data.

Parameters
[in]indicesa pointer to the vector of indices that represents the input data.

Definition at line 324 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::indices_, and pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Referenced by pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, pcl::Normal, float >::selectBase().

◆ setInputCloud()

template<typename PointT >
virtual void pcl::SampleConsensusModel< PointT >::setInputCloud ( const PointCloudConstPtr cloud)
inlinevirtual

Provide a pointer to the input dataset.

Parameters
[in]cloudthe const boost shared pointer to a PointCloud message

Reimplemented in pcl::SampleConsensusModelRegistration< PointT >.

Definition at line 301 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::indices_, pcl::SampleConsensusModel< PointT >::input_, and pcl::SampleConsensusModel< PointT >::shuffled_indices_.

Referenced by pcl::SampleConsensusModelRegistration< PointT >::setInputCloud().

◆ setModelConstraints()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setModelConstraints ( std::function< bool(const Eigen::VectorXf &)>  function)
inline

This can be used to impose any kind of constraint on the model, e.g.

that it has a specific direction, size, or anything else.

Parameters
[in]functionA function that gets model coefficients and returns whether the model is acceptable or not.

Definition at line 400 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::custom_model_constraints_.

◆ setRadiusLimits()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setRadiusLimits ( const double &  min_radius,
const double &  max_radius 
)
inline

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

Parameters
[in]min_radiusthe minimum radius model
[in]max_radiusthe maximum radius model
Todo:
change this to set limits on the entire model

Definition at line 376 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::radius_max_, and pcl::SampleConsensusModel< PointT >::radius_min_.

Referenced by pcl::SACSegmentation< PointT >::initSACModel(), and pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel().

◆ setSamplesMaxDist()

template<typename PointT >
void pcl::SampleConsensusModel< PointT >::setSamplesMaxDist ( const double &  radius,
SearchPtr  search 
)
inline

Set the maximum distance allowed when drawing random samples.

Parameters
[in]radiusthe maximum distance (L2 norm)
search

Definition at line 415 of file sac_model.h.

References pcl::SampleConsensusModel< PointT >::samples_radius_, and pcl::SampleConsensusModel< PointT >::samples_radius_search_.

Friends And Related Function Documentation

◆ ProgressiveSampleConsensus< PointT >

template<typename PointT >
friend class ProgressiveSampleConsensus< PointT >
friend

Definition at line 426 of file sac_model.h.

Member Data Documentation

◆ custom_model_constraints_

template<typename PointT >
std::function<bool(const Eigen::VectorXf &)> pcl::SampleConsensusModel< PointT >::custom_model_constraints_
protected

A user defined function that takes model coefficients and returns whether the model is acceptable or not.

Definition at line 602 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::isModelValid(), and pcl::SampleConsensusModel< PointT >::setModelConstraints().

◆ error_sqr_dists_

template<typename PointT >
std::vector<double> pcl::SampleConsensusModel< PointT >::error_sqr_dists_
protected

A vector holding the distances to the computed model.

Used internally.

Definition at line 586 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::computeVariance().

◆ indices_

template<typename PointT >
IndicesPtr pcl::SampleConsensusModel< PointT >::indices_
protected

◆ input_

template<typename PointT >
PointCloudConstPtr pcl::SampleConsensusModel< PointT >::input_
protected

◆ max_sample_checks_

template<typename PointT >
const unsigned int pcl::SampleConsensusModel< PointT >::max_sample_checks_ = 1000
staticprotected

The maximum number of samples to try until we get a good one.

Definition at line 560 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::getSamples().

◆ model_name_

template<typename PointT >
std::string pcl::SampleConsensusModel< PointT >::model_name_
protected

The model name.

Definition at line 551 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::getClassName(), pcl::SampleConsensusModelCircle2D< PointT >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< PointT >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< PointT, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelPlane< PointT >::SampleConsensusModelPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere(), and pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick().

◆ model_size_

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::model_size_
protected

The number of coefficients in the model.

Every subclass should initialize this appropriately.

Definition at line 592 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::getModelSize(), pcl::SampleConsensusModel< PointT >::isModelValid(), pcl::SampleConsensusModelCircle2D< PointT >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< PointT >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< PointT, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelPlane< PointT >::SampleConsensusModelPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere(), and pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick().

◆ radius_max_

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::radius_max_
protected

◆ radius_min_

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::radius_min_
protected

The minimum and maximum radius limits for the model.

Applicable to all models that estimate a radius.

Definition at line 565 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::getRadiusLimits(), pcl::SampleConsensusModelSphere< PointT >::isModelValid(), and pcl::SampleConsensusModel< PointT >::setRadiusLimits().

◆ rng_alg_

template<typename PointT >
boost::mt19937 pcl::SampleConsensusModel< PointT >::rng_alg_
protected

Boost-based random number generator algorithm.

Definition at line 577 of file sac_model.h.

◆ rng_dist_

template<typename PointT >
std::shared_ptr<boost::uniform_int<> > pcl::SampleConsensusModel< PointT >::rng_dist_
protected

Boost-based random number generator distribution.

Definition at line 580 of file sac_model.h.

◆ rng_gen_

template<typename PointT >
std::shared_ptr<boost::variate_generator< boost::mt19937&, boost::uniform_int<> > > pcl::SampleConsensusModel< PointT >::rng_gen_
protected

Boost-based random number generator.

Definition at line 583 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::rnd().

◆ sample_size_

template<typename PointT >
unsigned int pcl::SampleConsensusModel< PointT >::sample_size_
protected

The size of a sample from which the model is computed.

Every subclass should initialize this appropriately.

Definition at line 589 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::getSampleSize(), pcl::SampleConsensusModelCircle2D< PointT >::SampleConsensusModelCircle2D(), pcl::SampleConsensusModelCircle3D< PointT >::SampleConsensusModelCircle3D(), pcl::SampleConsensusModelCone< PointT, PointNT >::SampleConsensusModelCone(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::SampleConsensusModelCylinder(), pcl::SampleConsensusModelEllipse3D< PointT >::SampleConsensusModelEllipse3D(), pcl::SampleConsensusModelLine< PointT >::SampleConsensusModelLine(), pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >::SampleConsensusModelNormalParallelPlane(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::SampleConsensusModelNormalPlane(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::SampleConsensusModelNormalSphere(), pcl::SampleConsensusModelParallelLine< PointT >::SampleConsensusModelParallelLine(), pcl::SampleConsensusModelParallelPlane< PointT >::SampleConsensusModelParallelPlane(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::SampleConsensusModelPerpendicularPlane(), pcl::SampleConsensusModelPlane< PointT >::SampleConsensusModelPlane(), pcl::SampleConsensusModelRegistration< PointT >::SampleConsensusModelRegistration(), pcl::SampleConsensusModelRegistration2D< PointT >::SampleConsensusModelRegistration2D(), pcl::SampleConsensusModelSphere< PointT >::SampleConsensusModelSphere(), and pcl::SampleConsensusModelStick< PointT >::SampleConsensusModelStick().

◆ samples_radius_

template<typename PointT >
double pcl::SampleConsensusModel< PointT >::samples_radius_
protected

◆ samples_radius_search_

template<typename PointT >
SearchPtr pcl::SampleConsensusModel< PointT >::samples_radius_search_
protected

The search object for picking subsequent samples using radius search.

Definition at line 571 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius(), and pcl::SampleConsensusModel< PointT >::setSamplesMaxDist().

◆ shuffled_indices_

template<typename PointT >
Indices pcl::SampleConsensusModel< PointT >::shuffled_indices_
protected

Data containing a shuffled version of the indices.

This is used and modified when drawing samples.

Definition at line 574 of file sac_model.h.

Referenced by pcl::SampleConsensusModel< PointT >::drawIndexSample(), pcl::SampleConsensusModel< PointT >::drawIndexSampleRadius(), pcl::SampleConsensusModel< PointT >::setIndices(), and pcl::SampleConsensusModel< PointT >::setInputCloud().


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