Go to the documentation of this file.00001 #ifndef SURFACE_H_
00002 #define SURFACE_H_
00003
00004 #include <pcl/kdtree/kdtree_flann.h>
00005 #include <pcl/surface/mls.h>
00006 #include <pcl/surface/convex_hull.h>
00007 #include <pcl/surface/concave_hull.h>
00008 #include <pcl/surface/gp3.h>
00009 #include <pcl/surface/marching_cubes_hoppe.h>
00010
00011 #include "typedefs.h"
00012
00013
00014 class Mesh
00015 {
00016 public:
00017 Mesh () : points (new PointCloud) {}
00018 PointCloudPtr points;
00019 std::vector<pcl::Vertices> faces;
00020 };
00021
00022 typedef boost::shared_ptr<Mesh> MeshPtr;
00023
00024 PointCloudPtr
00025 smoothPointCloud (const PointCloudPtr & input, float radius, int polynomial_order)
00026 {
00027 PointCloudPtr output (new PointCloud);
00028 return (output);
00029 }
00030
00031 SurfaceElementsPtr
00032 computeSurfaceElements (const PointCloudPtr & input, float radius, int polynomial_order)
00033 {
00034 SurfaceElementsPtr surfels (new SurfaceElements);
00035 return (surfels);
00036 }
00037
00038 MeshPtr
00039 computeConvexHull (const PointCloudPtr & input)
00040 {
00041 MeshPtr output (new Mesh);
00042 return (output);
00043 }
00044
00045
00046 MeshPtr
00047 computeConcaveHull (const PointCloudPtr & input, float alpha)
00048 {
00049 MeshPtr output (new Mesh);
00050 return (output);
00051 }
00052
00053 pcl::PolygonMesh::Ptr
00054 greedyTriangulation (const SurfaceElementsPtr & surfels, float radius, float mu, int max_nearest_neighbors,
00055 float max_surface_angle, float min_angle, float max_angle)
00056
00057 {
00058 pcl::PolygonMesh::Ptr output (new pcl::PolygonMesh);
00059 return (output);
00060 }
00061
00062
00063 pcl::PolygonMesh::Ptr
00064 marchingCubesTriangulation (const SurfaceElementsPtr & surfels, float leaf_size, float iso_level)
00065 {
00066 pcl::PolygonMesh::Ptr output (new pcl::PolygonMesh);
00067 return (output);
00068 }
00069
00070 #endif