Loading...
Searching...
No Matches
pcl::cuda::SampleConsensusModel< Storage > Class Template Referenceabstract

SampleConsensusModel represents the base model class. More...

`#include </build/pcl-KfHoN9/pcl-1.15.0+dfsg/cuda/sample_consensus/include/pcl/cuda/sample_consensus/sac_model.h>`

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

## Public Types

using | PointCloud = PointCloudAOS< Storage >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | Ptr = shared_ptr< SampleConsensusModel >
using | ConstPtr = shared_ptr< const SampleConsensusModel >
using | Indices = typename Storage< int >::type
using | IndicesPtr = shared_ptr< typename Storage< int >::type >
using | IndicesConstPtr = shared_ptr< const typename Storage< int >::type >
using | Coefficients = typename Storage< float >::type
using | CoefficientsPtr = shared_ptr< Coefficients >
using | CoefficientsConstPtr = shared_ptr< const Coefficients >
using | Hypotheses = typename Storage< float4 >::type
using | Samples = typename Storage< int >::type

## Public Member Functions

| SampleConsensusModel (const PointCloudConstPtr &cloud)
| Constructor for base SampleConsensusModel.
virtual | ~SampleConsensusModel ()=default
| Destructor for base SampleConsensusModel.
virtual void | getSamples (int &iterations, Indices &samples)=0
| Get a set of random data samples and return them as point indices.
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.
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.
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.
PointCloudConstPtr | getInputCloud () const
| Get a pointer to the input point cloud dataset.
IndicesPtr | getIndices () const
| Get a pointer to the vector of indices used.
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)
void | getRadiusLimits (float &min_radius, float &max_radius)
| Get the minimum and maximum allowable radius limits for the model as set by the user.
shared_ptr< typename Storage< float4 >::type > | getNormals ()
void | setNormals (shared_ptr< typename Storage< float4 >::type > normals)

## Protected Attributes

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

## 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

## Coefficients

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::Coefficients = typename Storage<float>::type

Definition at line 101 of file sac_model.h.

## CoefficientsConstPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::CoefficientsConstPtr = shared_ptr <const Coefficients>

Definition at line 103 of file sac_model.h.

## CoefficientsPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::CoefficientsPtr = shared_ptr <Coefficients>

Definition at line 102 of file sac_model.h.

## ConstPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::ConstPtr = shared_ptr<const SampleConsensusModel>

Definition at line 95 of file sac_model.h.

## Hypotheses

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::Hypotheses = typename Storage<float4>::type

Definition at line 105 of file sac_model.h.

## Indices

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::Indices = typename Storage<int>::type

Definition at line 97 of file sac_model.h.

## IndicesConstPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::IndicesConstPtr = shared_ptr<const typename Storage<int>::type>

Definition at line 99 of file sac_model.h.

## IndicesPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::IndicesPtr = shared_ptr<typename Storage<int>::type>

Definition at line 98 of file sac_model.h.

## PointCloud

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::PointCloud = PointCloudAOS<Storage>

Definition at line 90 of file sac_model.h.

## PointCloudConstPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 92 of file sac_model.h.

## PointCloudPtr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 91 of file sac_model.h.

## Ptr

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::Ptr = shared_ptr<SampleConsensusModel>

Definition at line 94 of file sac_model.h.

## Samples

template<template< typename > class Storage>

using pcl::cuda::SampleConsensusModel< Storage >::Samples = typename Storage<int>::type

Definition at line 107 of file sac_model.h.

## Constructor & Destructor Documentation

## SampleConsensusModel()

template<template< typename > class Storage>

pcl::cuda::SampleConsensusModel< Storage >::SampleConsensusModel | ( | const PointCloudConstPtr & | cloud | ) |

inline

Constructor for base SampleConsensusModel.

Parameters

  cloud | the input point cloud dataset

Definition at line 120 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::setInputCloud().

## ~SampleConsensusModel()

template<template< typename > class Storage>

virtual pcl::cuda::SampleConsensusModel< Storage >::~SampleConsensusModel | ( |  | ) |

virtual default

Destructor for base SampleConsensusModel.

## Member Function Documentation

## computeModelCoefficients()

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

  samples | the point indices found as possible good candidates for creating a valid model, stored on the device
  model_coefficients | the computed model coefficients

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

## countWithinDistance() [1/2]

template<template< typename > class Storage>

virtual int pcl::cuda::SampleConsensusModel< Storage >::countWithinDistance | ( | const Coefficients & | model_coefficients,
|  | float | threshold
| ) |  |

pure virtual

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

## countWithinDistance() [2/2]

template<template< typename > class Storage>

virtual int pcl::cuda::SampleConsensusModel< Storage >::countWithinDistance | ( | const Hypotheses & | h,
|  | int | idx,
|  | float | threshold
| ) |  |

pure virtual

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

## deleteIndices() [1/2]

template<template< typename > class Storage>

int pcl::cuda::SampleConsensusModel< Storage >::deleteIndices | ( | const Hypotheses & | h,
|  | int | idx,
|  | IndicesPtr & | inliers,
|  | const IndicesPtr & | inliers_delete
| ) |  |

## deleteIndices() [2/2]

template<template< typename > class Storage>

int pcl::cuda::SampleConsensusModel< Storage >::deleteIndices | ( | const IndicesPtr & | indices_stencil | ) |

## generateModelHypotheses() [1/2]

template<template< typename > class Storage>

virtual bool pcl::cuda::SampleConsensusModel< Storage >::generateModelHypotheses | ( | Hypotheses & | h,
|  | int | max_iterations
| ) |  |

pure virtual

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

## generateModelHypotheses() [2/2]

template<template< typename > class Storage>

virtual bool pcl::cuda::SampleConsensusModel< Storage >::generateModelHypotheses | ( | Hypotheses & | h,
|  | Samples & | s,
|  | int | max_iterations
| ) |  |

pure virtual

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

## getIndices()

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 291 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::indices_, pcl::cuda::SampleConsensusModel< Storage >::indices_stencil_, and pcl::cuda::SampleConsensusModel< Storage >::nr_indices_in_stencil_.

## getInputCloud()

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 272 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::input_.

## getNormals()

template<template< typename > class Storage>

shared_ptr< typename Storage< float4 >::type > pcl::cuda::SampleConsensusModel< Storage >::getNormals | ( |  | ) |

inline

Definition at line 339 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::normals_.

## getRadiusLimits()

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_radius | the resultant minimum radius model
  max_radius | the resultant maximum radius model

Definition at line 330 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::radius_max_, and pcl::cuda::SampleConsensusModel< Storage >::radius_min_.

## getSamples()

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

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

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

## isSampleInlier()

template<template< typename > class Storage>

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

inline virtual

Definition at line 174 of file sac_model.h.

## selectWithinDistance() [1/3]

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_coefficients | the coefficients of a model that we need to compute distances to
  threshold | a maximum admissible distance threshold for determining the inliers from the outliers
  inliers | the resultant model inliers
  inliers_stencil |

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

## selectWithinDistance() [2/3]

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

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

## selectWithinDistance() [3/3]

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

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

## setInputCloud()

template<template< typename > class Storage>

virtual void pcl::cuda::SampleConsensusModel< Storage >::setInputCloud | ( | const PointCloudConstPtr & | cloud | ) |

virtual

Provide a pointer to the input dataset.

Parameters

  cloud | the const boost shared pointer to a PointCloud message

Referenced by pcl::cuda::SampleConsensusModel< Storage >::SampleConsensusModel().

## setNormals()

template<template< typename > class Storage>

void pcl::cuda::SampleConsensusModel< Storage >::setNormals | ( | shared_ptr< typename Storage< float4 >::type > | normals | ) |

inline

Definition at line 342 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::normals_.

## setRadiusLimits()

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_radius | the minimum radius model
  max_radius | the maximum radius model

Todo:
  change this to set limits on the entire model

Definition at line 317 of file sac_model.h.

References pcl::cuda::SampleConsensusModel< Storage >::radius_max_, and pcl::cuda::SampleConsensusModel< Storage >::radius_min_.

## Member Data Documentation

## indices_

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 357 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getIndices().

## indices_stencil_

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 359 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getIndices().

## input_

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 353 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getInputCloud().

## normals_

template<template< typename > class Storage>

shared_ptr<typename Storage<float4>::type> pcl::cuda::SampleConsensusModel< Storage >::normals_

protected

Definition at line 354 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getNormals(), and pcl::cuda::SampleConsensusModel< Storage >::setNormals().

## nr_indices_in_stencil_

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 361 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getIndices().

## radius_max_

template<template< typename > class Storage>

float pcl::cuda::SampleConsensusModel< Storage >::radius_max_

protected

Definition at line 366 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getRadiusLimits(), and pcl::cuda::SampleConsensusModel< Storage >::setRadiusLimits().

## radius_min_

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 366 of file sac_model.h.

Referenced by pcl::cuda::SampleConsensusModel< Storage >::getRadiusLimits(), and pcl::cuda::SampleConsensusModel< Storage >::setRadiusLimits().

## rngl_

template<template< typename > class Storage>

thrust::minstd_rand pcl::cuda::SampleConsensusModel< Storage >::rngl_

protected

Linear-Congruent random number generator engine.

Definition at line 369 of file sac_model.h.

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

- /build/pcl-KfHoN9/pcl-1.15.0+dfsg/cuda/sample_consensus/include/pcl/cuda/sample_consensus/sac_model.h