43 #include <pcl/sample_consensus/sac_model_plane.h>
44 #include <pcl/common/common.h>
65 template <
typename Po
intT>
75 using Ptr = shared_ptr<SampleConsensusModelParallelPlane<PointT> >;
76 using ConstPtr = shared_ptr<const SampleConsensusModelParallelPlane<PointT>>;
100 const Indices &indices,
122 inline Eigen::Vector3f
143 const double threshold,
144 Indices &inliers)
override;
154 const double threshold)
const override;
162 std::vector<double> &distances)
const override;
176 isModelValid (
const Eigen::VectorXf &model_coefficients)
const override;
189 #ifdef PCL_NO_PRECOMPILE
190 #include <pcl/sample_consensus/impl/sac_model_parallel_plane.hpp>
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.
SampleConsensusModelParallelPlane defines a model for 3D plane segmentation using additional angular ...
unsigned int model_size_
The number of coefficients in the model.
Eigen::Vector3f axis_
The axis along which we need to search for a plane perpendicular to.
void setEpsAngle(const double ea)
Set the angle epsilon (delta) threshold.
Eigen::Vector3f getAxis() const
Get the axis along which we need to search for a plane perpendicular to.
typename PointCloud::Ptr PointCloudPtr
SampleConsensusModelParallelPlane(const PointCloudConstPtr &cloud, const Indices &indices, bool random=false)
Constructor for base SampleConsensusModelParallelPlane.
bool isModelValid(const Eigen::VectorXf &model_coefficients) const override
Check whether a model is valid given the user constraints.
void setAxis(const Eigen::Vector3f &ax)
Set the axis along which we need to search for a plane perpendicular to.
SampleConsensusModel represents the base model class.
std::string model_name_
The model name.
typename SampleConsensusModel< PointT >::PointCloudConstPtr PointCloudConstPtr
double eps_angle_
The maximum allowed difference between the plane and the given axis.
pcl::SacModel getModelType() const override
Return a unique id for this model (SACMODEL_PARALLEL_PLANE).
typename PointCloud::ConstPtr PointCloudConstPtr
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.
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.
PointCloud represents the base class in PCL for storing collections of 3D points. ...
double getEpsAngle() const
Get the angle epsilon (delta) threshold.
shared_ptr< const SampleConsensusModel< PointT > > ConstPtr
typename SampleConsensusModel< PointT >::PointCloudPtr PointCloudPtr
typename SampleConsensusModel< PointT >::PointCloud PointCloud
~SampleConsensusModelParallelPlane()
Empty destructor.
SampleConsensusModelParallelPlane(const PointCloudConstPtr &cloud, bool random=false)
Constructor for base SampleConsensusModelParallelPlane.
A point structure representing Euclidean xyz coordinates, and the RGB color.
shared_ptr< SampleConsensusModel< PointT > > Ptr
double sin_angle_
The sine of the angle.
SampleConsensusModelPlane defines a model for 3D plane segmentation.
unsigned int sample_size_
The size of a sample from which the model is computed.