Point Cloud Library (PCL)
1.11.1-dev
|
44 #include <pcl/pcl_config.h>
48 #include <pcl/surface/reconstruction.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>
81 using Ptr = shared_ptr<ConvexHull<PointInT> >;
82 using ConstPtr = shared_ptr<const ConvexHull<PointInT> >;
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.
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.
Defines functions, macros and traits for allocating and using memory.
MeshConstruction represents a base surface reconstruction class.
double getTotalVolume() const
Returns the total volume of the convex hull.