42 #include <pcl/surface/reconstruction.h>
48 class CoredVectorMeshData;
49 template <
class Real>
struct Point3D;
60 template<
typename Po
intNT>
64 using Ptr = shared_ptr<Poisson<PointNT> >;
65 using ConstPtr = shared_ptr<const Poisson<PointNT> >;
93 std::vector<pcl::Vertices> &polygons)
override;
241 float point_weight_{4};
243 int solver_divide_{8};
245 float samples_per_node_{1.0};
246 bool confidence_{
false};
247 bool output_polygons_{
false};
249 bool no_reset_samples_{
false};
250 bool no_clip_tree_{
false};
251 bool manifold_{
true};
254 int kernel_depth_{8};
256 bool non_adaptive_weights_{
false};
257 bool show_residual_{
false};
258 int min_iterations_{8};
259 float solver_accuracy_{1e-3f};
262 template<
int Degree>
void
263 execute (poisson::CoredVectorMeshData &mesh,
264 poisson::Point3D<float> &translate,
272 #ifdef PCL_NO_PRECOMPILE
273 #include <pcl/surface/impl/poisson.hpp>
KdTree represents the base spatial locator class for kd-tree implementations.
shared_ptr< KdTree< PointT > > Ptr
shared_ptr< PointCloud< PointT > > Ptr
The Poisson surface reconstruction algorithm.
void setThreads(int threads)
Set the number of threads to use.
std::string getClassName() const override
Class get name method.
int getThreads()
Get the number of threads.
void setSamplesPerNode(float samples_per_node)
Set the minimum number of sample points that should fall within an octree node as the octree construc...
void setDegree(int degree)
Set the degree parameter.
Poisson()
Constructor that sets all the parameters to working default values.
typename pcl::PointCloud< PointNT >::Ptr PointCloudPtr
int getDepth()
Get the depth parameter.
void performReconstruction(pcl::PolygonMesh &output) override
Create the surface.
void setIsoDivide(int iso_divide)
Set the depth at which a block iso-surface extractor should be used to extract the iso-surface.
float getSamplesPerNode()
Get the minimum number of sample points that should fall within an octree node as the octree construc...
void setConfidence(bool confidence)
Set the confidence flag.
bool getConfidence()
Get the confidence flag.
void setPointWeight(float point_weight)
int getSolverDivide()
Get the depth at which a block Gauss-Seidel solver is used to solve the Laplacian equation.
int getDegree()
Get the degree parameter.
void setOutputPolygons(bool output_polygons)
Enabling this flag tells the reconstructor to output a polygon mesh (rather than triangulating the re...
void setDepth(int depth)
Set the maximum depth of the tree that will be used for surface reconstruction.
bool getOutputPolygons()
Get whether the algorithm outputs a polygon mesh or a triangle mesh.
float getScale()
Get the ratio between the diameter of the cube used for reconstruction and the diameter of the sample...
bool getManifold()
Get the manifold flag.
void setScale(float scale)
Set the ratio between the diameter of the cube used for reconstruction and the diameter of the sample...
typename KdTree::Ptr KdTreePtr
void setMinDepth(int min_depth)
int getIsoDivide()
Get the depth at which a block iso-surface extractor should be used to extract the iso-surface.
shared_ptr< const Poisson< PointNT > > ConstPtr
~Poisson() override
Destructor.
shared_ptr< Poisson< PointNT > > Ptr
void setSolverDivide(int solver_divide)
Set the the depth at which a block Gauss-Seidel solver is used to solve the Laplacian equation.
void setManifold(bool manifold)
Set the manifold flag.
SurfaceReconstruction represents a base surface reconstruction class.
#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.
Defines all the PCL and non-PCL macros used.