Point Cloud Library (PCL)  1.14.1-dev
List of all members | Public Types | Public Member Functions | Static Public Attributes
pcl::cuda::SampleConsensusModel1PointPlane< Storage > Class Template Reference

SampleConsensusModel1PointPlane defines a model for 3D plane segmentation. More...

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

+ Inheritance diagram for pcl::cuda::SampleConsensusModel1PointPlane< Storage >:
+ Collaboration diagram for pcl::cuda::SampleConsensusModel1PointPlane< Storage >:

Public Types

using PointCloud = typename SampleConsensusModel< Storage >::PointCloud
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using Indices = typename SampleConsensusModel< Storage >::Indices
 
using IndicesPtr = typename SampleConsensusModel< Storage >::IndicesPtr
 
using IndicesConstPtr = typename SampleConsensusModel< Storage >::IndicesConstPtr
 
using Coefficients = typename SampleConsensusModel< Storage >::Coefficients
 
using Hypotheses = typename SampleConsensusModel< Storage >::Hypotheses
 
using Samples = typename SampleConsensusModel< Storage >::Samples
 
using Ptr = shared_ptr< SampleConsensusModel1PointPlane >
 
using ConstPtr = shared_ptr< const SampleConsensusModel1PointPlane >
 
- Public Types inherited from pcl::cuda::SampleConsensusModel< Storage >
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

 SampleConsensusModel1PointPlane (const PointCloudConstPtr &cloud)
 Constructor for base SampleConsensusModel1PointPlane. More...
 
void getSamples (int &iterations, Indices &samples)
 Get 3 random non-collinear points as data samples and return them as point indices. More...
 
bool computeModelCoefficients (const Indices &samples, Coefficients &model_coefficients)
 Check whether the given index samples can form a valid plane model, compute the model coefficients from these samples and store them in model_coefficients. More...
 
bool generateModelHypotheses (Hypotheses &h, int max_iterations)
 
bool generateModelHypotheses (Hypotheses &h, Samples &s, int max_iterations)
 
int selectWithinDistance (const Coefficients &model_coefficients, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)
 Select all the points which respect the given model coefficients as inliers. More...
 
int selectWithinDistance (const Hypotheses &h, int idx, float threshold, IndicesPtr &inliers, IndicesPtr &inliers_stencil)
 
int selectWithinDistance (Hypotheses &h, int idx, float threshold, IndicesPtr &inliers_stencil, float3 &centroid)
 
int countWithinDistance (const Coefficients &model_coefficients, float threshold)
 
int countWithinDistance (const Hypotheses &h, int idx, float threshold)
 
- Public Member Functions inherited from pcl::cuda::SampleConsensusModel< Storage >
 SampleConsensusModel (const PointCloudConstPtr &cloud)
 Constructor for base SampleConsensusModel. More...
 
virtual ~SampleConsensusModel ()=default
 Destructor for base SampleConsensusModel. More...
 
virtual bool isSampleInlier (IndicesPtr &inliers_stencil, Samples &samples, unsigned int &i)
 
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...
 
shared_ptr< typename Storage< float4 >::type > getNormals ()
 
void setNormals (shared_ptr< typename Storage< float4 >::type > normals)
 

Static Public Attributes

static const int MAX_ITERATIONS_COLLINEAR = 1000
 

Additional Inherited Members

- Protected Attributes inherited from pcl::cuda::SampleConsensusModel< Storage >
PointCloudConstPtr input_
 A boost shared pointer to the point cloud data array. More...
 
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::SampleConsensusModel1PointPlane< Storage >

SampleConsensusModel1PointPlane defines a model for 3D plane segmentation.

Definition at line 157 of file sac_model_1point_plane.h.

Member Typedef Documentation

◆ Coefficients

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::Coefficients = typename SampleConsensusModel<Storage>::Coefficients

Definition at line 174 of file sac_model_1point_plane.h.

◆ ConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::ConstPtr = shared_ptr<const SampleConsensusModel1PointPlane>

Definition at line 180 of file sac_model_1point_plane.h.

◆ Hypotheses

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::Hypotheses = typename SampleConsensusModel<Storage>::Hypotheses

Definition at line 175 of file sac_model_1point_plane.h.

◆ Indices

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::Indices = typename SampleConsensusModel<Storage>::Indices

Definition at line 170 of file sac_model_1point_plane.h.

◆ IndicesConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::IndicesConstPtr = typename SampleConsensusModel<Storage>::IndicesConstPtr

Definition at line 172 of file sac_model_1point_plane.h.

◆ IndicesPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::IndicesPtr = typename SampleConsensusModel<Storage>::IndicesPtr

Definition at line 171 of file sac_model_1point_plane.h.

◆ PointCloud

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::PointCloud = typename SampleConsensusModel<Storage>::PointCloud

Definition at line 166 of file sac_model_1point_plane.h.

◆ PointCloudConstPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 168 of file sac_model_1point_plane.h.

◆ PointCloudPtr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 167 of file sac_model_1point_plane.h.

◆ Ptr

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::Ptr = shared_ptr<SampleConsensusModel1PointPlane>

Definition at line 179 of file sac_model_1point_plane.h.

◆ Samples

template<template< typename > class Storage>
using pcl::cuda::SampleConsensusModel1PointPlane< Storage >::Samples = typename SampleConsensusModel<Storage>::Samples

Definition at line 176 of file sac_model_1point_plane.h.

Constructor & Destructor Documentation

◆ SampleConsensusModel1PointPlane()

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

Constructor for base SampleConsensusModel1PointPlane.

Parameters
cloudthe input point cloud dataset

Member Function Documentation

◆ computeModelCoefficients()

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

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

The plane coefficients are: a, b, c, d (ax+by+cz+d=0)

Parameters
samplesthe point indices found as possible good candidates for creating a valid model
model_coefficientsthe resultant model coefficients

Implements pcl::cuda::SampleConsensusModel< Storage >.

◆ countWithinDistance() [1/2]

template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel1PointPlane< Storage >::countWithinDistance ( const Coefficients model_coefficients,
float  threshold 
)
virtual

◆ countWithinDistance() [2/2]

template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel1PointPlane< Storage >::countWithinDistance ( const Hypotheses h,
int  idx,
float  threshold 
)
virtual

◆ generateModelHypotheses() [1/2]

template<template< typename > class Storage>
bool pcl::cuda::SampleConsensusModel1PointPlane< Storage >::generateModelHypotheses ( Hypotheses h,
int  max_iterations 
)
virtual

◆ generateModelHypotheses() [2/2]

template<template< typename > class Storage>
bool pcl::cuda::SampleConsensusModel1PointPlane< Storage >::generateModelHypotheses ( Hypotheses h,
Samples s,
int  max_iterations 
)
virtual

◆ getSamples()

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

Get 3 random non-collinear points as data samples and return them as point indices.

Parameters
iterationsthe internal number of iterations used by SAC methods
samplesthe resultant model samples
Note
assumes unique points!

Implements pcl::cuda::SampleConsensusModel< Storage >.

◆ selectWithinDistance() [1/3]

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

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

Parameters
model_coefficientsthe coefficients of a plane 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

Implements pcl::cuda::SampleConsensusModel< Storage >.

◆ selectWithinDistance() [2/3]

template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel1PointPlane< Storage >::selectWithinDistance ( const Hypotheses h,
int  idx,
float  threshold,
IndicesPtr inliers,
IndicesPtr inliers_stencil 
)
virtual

◆ selectWithinDistance() [3/3]

template<template< typename > class Storage>
int pcl::cuda::SampleConsensusModel1PointPlane< Storage >::selectWithinDistance ( Hypotheses h,
int  idx,
float  threshold,
IndicesPtr inliers_stencil,
float3 &  centroid 
)
virtual

Member Data Documentation

◆ MAX_ITERATIONS_COLLINEAR

template<template< typename > class Storage>
const int pcl::cuda::SampleConsensusModel1PointPlane< Storage >::MAX_ITERATIONS_COLLINEAR = 1000
static

Definition at line 238 of file sac_model_1point_plane.h.


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