Point Cloud Library (PCL)
1.10.1
|
43 #include <pcl/pcl_config.h>
47 #include <pcl/surface/reconstruction.h>
48 #include <pcl/ModelCoefficients.h>
49 #include <pcl/PolygonMesh.h>
59 comparePoints2D (
const std::pair<int, Eigen::Vector4f> & p1,
const std::pair<int, Eigen::Vector4f> & p2)
61 double angle1 = std::atan2 (p1.second[1], p1.second[0]) + M_PI;
62 double angle2 = std::atan2 (p2.second[1], p2.second[0]) + M_PI;
63 return (angle1 > angle2);
71 template<
typename Po
intInT>
112 std::vector<pcl::Vertices> &polygons);
156 if ((dimension == 2) || (dimension == 3))
159 PCL_ERROR (
"[pcl::%s::setDimension] Invalid input dimension specified!\n",
getClassName ().c_str ());
187 std::vector<pcl::Vertices> &polygons,
188 bool fill_polygon_data =
false);
199 std::vector<pcl::Vertices> &polygons,
200 bool fill_polygon_data =
false);
211 std::vector<pcl::Vertices> &polygons,
212 bool fill_polygon_data =
false);
236 return (
"ConvexHull");
274 #ifdef PCL_NO_PRECOMPILE
275 #include <pcl/surface/impl/convex_hull.hpp>
Defines all the PCL and non-PCL macros used.
void setComputeAreaVolume(bool value)
If set to true, the qhull library is called to compute the total area and volume of the convex hull.
This file defines compatibility wrappers for low level I/O functions.
void getHullPointIndices(pcl::PointIndices &hull_point_indices) const
Retrieve the indices of the input point cloud that for the convex hull.
typename PointCloud::ConstPtr PointCloudConstPtr
int dimension_
The dimensionality of the concave hull (2D or 3D).
typename PointCloud::Ptr PointCloudPtr
bool comparePoints2D(const std::pair< int, Eigen::Vector4f > &p1, const std::pair< int, Eigen::Vector4f > &p2)
Sort 2D points in a vector structure.
void performReconstruction3D(PointCloud &points, std::vector< pcl::Vertices > &polygons, bool fill_polygon_data=false)
The reconstruction method for 3D data.
void performReconstruction2D(PointCloud &points, std::vector< pcl::Vertices > &polygons, bool fill_polygon_data=false)
The reconstruction method for 2D data.
pcl::PointIndices hull_indices_
int getDimension() const
Returns the dimensionality (2 or 3) of the calculated hull.
void reconstruct(PointCloud &points, std::vector< pcl::Vertices > &polygons)
Compute a convex hull for all points given.
double getTotalArea() const
Returns the total area of the convex hull.
const Eigen::Vector3d z_axis_
~ConvexHull()
Empty destructor.
std::string getClassName() const override
Class get name method.
std::string qhull_flags
Option flag string to be used calling qhull.
void setDimension(int dimension)
Sets the dimension on the input data, 2D or 3D.
shared_ptr< const ConvexHull< PointInT > > ConstPtr
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
const Eigen::Vector3d y_axis_
shared_ptr< ConvexHull< PointInT > > Ptr
double projection_angle_thresh_
How close can a 2D plane's normal be to an axis to make projection problematic.
ConvexHull()
Empty constructor.
void calculateInputDimension()
Automatically determines the dimension of input data - 2D or 3D.
shared_ptr< PointCloud< PointInT > > Ptr
shared_ptr< const PointCloud< PointInT > > ConstPtr
const Eigen::Vector3d x_axis_
ConvexHull using libqhull library.
void performReconstruction(PointCloud &points, std::vector< pcl::Vertices > &polygons, bool fill_polygon_data=false)
The actual reconstruction method.
MeshConstruction represents a base surface reconstruction class.
boost::shared_ptr< T > shared_ptr
Alias for boost::shared_ptr.
double getTotalVolume() const
Returns the total volume of the convex hull.