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>
PointCloud represents the base class in PCL for storing collections of 3D points.
SampleConsensusModelFromNormals represents the base model class for models that require the use of su...
typename pcl::PointCloud< PointNT >::ConstPtr PointCloudNConstPtr
typename pcl::PointCloud< PointNT >::Ptr PointCloudNPtr
SampleConsensusModel represents the base model class.
shared_ptr< SampleConsensusModel< PointT > > Ptr
unsigned int sample_size_
The size of a sample from which the model is computed.
typename PointCloud::ConstPtr PointCloudConstPtr
std::string model_name_
The model name.
unsigned int model_size_
The number of coefficients in the model.
typename PointCloud::Ptr PointCloudPtr
shared_ptr< const SampleConsensusModel< PointT > > ConstPtr
SampleConsensusModelNormalPlane defines a model for 3D plane segmentation using additional surface no...
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.
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() override=default
Empty destructor.
SampleConsensusModelNormalPlane(const PointCloudConstPtr &cloud, bool random=false)
Constructor for base SampleConsensusModelNormalPlane.
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.
pcl::SacModel getModelType() const override
Return a unique id for this model (SACMODEL_NORMAL_PLANE).
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.