45#include <pcl/sample_consensus/sac_model.h>
46#include <pcl/sample_consensus/sac_model_plane.h>
47#include <pcl/sample_consensus/model_types.h>
75 template <
typename Po
intT,
typename Po
intNT>
94 using Ptr = shared_ptr<SampleConsensusModelNormalPlane<PointT, PointNT> >;
95 using ConstPtr = shared_ptr<const SampleConsensusModelNormalPlane<PointT, PointNT>>;
137 const double threshold,
148 const double threshold)
const override;
156 std::vector<double> &distances)
const override;
173 const double threshold,
174 std::size_t i = 0)
const;
176#if defined (__SSE__) && defined (__SSE2__) && defined (__SSE4_1__)
181 countWithinDistanceSSE (
const Eigen::VectorXf &model_coefficients,
182 const double threshold,
183 std::size_t i = 0)
const;
186#if defined (__AVX__) && defined (__AVX2__)
191 countWithinDistanceAVX (
const Eigen::VectorXf &model_coefficients,
192 const double threshold,
193 std::size_t i = 0)
const;
198#ifdef PCL_NO_PRECOMPILE
199#include <pcl/sample_consensus/impl/sac_model_normal_plane.hpp>
SampleConsensusModelFromNormals represents the base model class for models that require the use of su...
PointCloudNConstPtr normals_
A pointer to the input dataset that contains the point normals of the XYZ dataset.
typename pcl::PointCloud< PointNT >::ConstPtr PointCloudNConstPtr
typename pcl::PointCloud< PointNT >::Ptr PointCloudNPtr
double normal_distance_weight_
The relative weight (between 0 and 1) to give to the angular distance (0 to pi/2) between point norma...
SampleConsensusModel represents the base model class.
unsigned int sample_size_
The size of a sample from which the model is computed.
typename PointCloud::ConstPtr PointCloudConstPtr
IndicesPtr indices_
A pointer to the vector of point indices to use.
PointCloudConstPtr input_
A boost shared pointer to the point cloud data array.
virtual bool isModelValid(const Eigen::VectorXf &model_coefficients) const
Check whether a model is valid given the user constraints.
std::string model_name_
The model name.
unsigned int model_size_
The number of coefficients in the model.
typename PointCloud::Ptr PointCloudPtr
std::vector< double > error_sqr_dists_
A vector holding the distances to the computed model.
SampleConsensusModelNormalPlane defines a model for 3D plane segmentation using additional surface no...
typename SampleConsensusModel< PointT >::PointCloudConstPtr PointCloudConstPtr
shared_ptr< SampleConsensusModelNormalPlane< PointT, PointNT > > Ptr
std::size_t countWithinDistance(const Eigen::VectorXf &model_coefficients, const double threshold) const override
Count all the points which respect the given model coefficients as inliers.
typename SampleConsensusModel< PointT >::PointCloudPtr PointCloudPtr
~SampleConsensusModelNormalPlane()
Empty destructor.
shared_ptr< const SampleConsensusModelNormalPlane< PointT, PointNT > > ConstPtr
void selectWithinDistance(const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers) override
Select all the points which respect the given model coefficients as inliers.
SampleConsensusModelNormalPlane(const PointCloudConstPtr &cloud, bool random=false)
Constructor for base SampleConsensusModelNormalPlane.
typename SampleConsensusModel< PointT >::PointCloud PointCloud
SampleConsensusModelNormalPlane(const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Constructor for base SampleConsensusModelNormalPlane.
void getDistancesToModel(const Eigen::VectorXf &model_coefficients, std::vector< double > &distances) const override
Compute all distances from the cloud data to a given plane model.
std::size_t countWithinDistanceStandard(const Eigen::VectorXf &model_coefficients, const double threshold, std::size_t i=0) const
This implementation uses no SIMD instructions.
typename SampleConsensusModelFromNormals< PointT, PointNT >::PointCloudNPtr PointCloudNPtr
pcl::SacModel getModelType() const override
Return a unique id for this model (SACMODEL_NORMAL_PLANE).
typename SampleConsensusModelFromNormals< PointT, PointNT >::PointCloudNConstPtr PointCloudNConstPtr
SampleConsensusModelPlane defines a model for 3D plane segmentation.
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
Defines functions, macros and traits for allocating and using memory.
IndicesAllocator<> Indices
Type used for indices in PCL.
Defines all the PCL and non-PCL macros used.
A point structure representing Euclidean xyz coordinates, and the RGB color.