41 #ifndef PCL_SAMPLE_CONSENSUS_MODEL_PERPENDICULARPLANE_H_
42 #define PCL_SAMPLE_CONSENSUS_MODEL_PERPENDICULARPLANE_H_
44 #include <pcl/sample_consensus/sac_model_plane.h>
45 #include <pcl/common/common.h>
70 template <
typename Po
intT>
78 typedef boost::shared_ptr<SampleConsensusModelPerpendicularPlane>
Ptr;
87 ,
axis_ (Eigen::Vector3f::Zero ())
98 const std::vector<int> &indices,
101 ,
axis_ (Eigen::Vector3f::Zero ())
116 inline Eigen::Vector3f
137 const double threshold,
138 std::vector<int> &inliers);
148 const double threshold);
156 std::vector<double> &distances);
167 isModelValid (
const Eigen::VectorXf &model_coefficients);
177 #ifdef PCL_NO_PRECOMPILE
178 #include <pcl/sample_consensus/impl/sac_model_perpendicular_plane.hpp>
181 #endif //#ifndef PCL_SAMPLE_CONSENSUS_MODEL_PERPENDICULARPLANE_H_
SampleConsensusModelPerpendicularPlane(const PointCloudConstPtr &cloud, const std::vector< int > &indices, bool random=false)
Constructor for base SampleConsensusModelPerpendicularPlane.
pcl::SacModel getModelType() const
Return an unique id for this model (SACMODEL_PERPENDICULAR_PLANE).
boost::shared_ptr< SampleConsensusModelPerpendicularPlane > Ptr
virtual int countWithinDistance(const Eigen::VectorXf &model_coefficients, const double threshold)
Count all the points which respect the given model coefficients as inliers.
bool isModelValid(const Eigen::VectorXf &model_coefficients)
Check whether a model is valid given the user constraints.
void getDistancesToModel(const Eigen::VectorXf &model_coefficients, std::vector< double > &distances)
Compute all distances from the cloud data to a given plane model.
void selectWithinDistance(const Eigen::VectorXf &model_coefficients, const double threshold, std::vector< int > &inliers)
Select all the points which respect the given model coefficients as inliers.
SampleConsensusModelPerpendicularPlane(const PointCloudConstPtr &cloud, bool random=false)
Constructor for base SampleConsensusModelPerpendicularPlane.
void setEpsAngle(const double ea)
Set the angle epsilon (delta) threshold.
SampleConsensusModelPlane defines a model for 3D plane segmentation.
Eigen::Vector3f getAxis()
Get the axis along which we need to search for a plane perpendicular to.
double eps_angle_
The maximum allowed difference between the plane normal and the given axis.
SampleConsensusModelPlane< PointT >::PointCloudPtr PointCloudPtr
Eigen::Vector3f axis_
The axis along which we need to search for a plane perpendicular to.
SampleConsensusModelPlane< PointT >::PointCloud PointCloud
SampleConsensusModel< PointT >::PointCloudConstPtr PointCloudConstPtr
void setAxis(const Eigen::Vector3f &ax)
Set the axis along which we need to search for a plane perpendicular to.
SampleConsensusModelPlane< PointT >::PointCloudConstPtr PointCloudConstPtr
pcl::PointCloud< PointT >::ConstPtr PointCloudConstPtr
virtual ~SampleConsensusModelPerpendicularPlane()
Empty destructor.
double getEpsAngle()
Get the angle epsilon (delta) threshold.
SampleConsensusModel< PointT >::PointCloudPtr PointCloudPtr
SampleConsensusModelPerpendicularPlane defines a model for 3D plane segmentation using additional ang...
A point structure representing Euclidean xyz coordinates, and the RGB color.