The marching cubes surface reconstruction algorithm, using a signed distance function based on the distance from tangent planes, proposed by Hoppe et. More...
#include <pcl/surface/marching_cubes_hoppe.h>
Public Types | |
using | Ptr = shared_ptr< MarchingCubesHoppe< PointNT > > |
using | ConstPtr = shared_ptr< const MarchingCubesHoppe< PointNT > > |
using | PointCloudPtr = typename pcl::PointCloud< PointNT >::Ptr |
using | KdTree = pcl::KdTree< PointNT > |
using | KdTreePtr = typename KdTree::Ptr |
Public Types inherited from pcl::MarchingCubes< PointNT > | |
using | Ptr = shared_ptr< MarchingCubes< PointNT > > |
using | ConstPtr = shared_ptr< const MarchingCubes< PointNT > > |
using | PointCloudPtr = typename pcl::PointCloud< PointNT >::Ptr |
using | KdTree = pcl::KdTree< PointNT > |
using | KdTreePtr = typename KdTree::Ptr |
Public Types inherited from pcl::SurfaceReconstruction< PointNT > | |
using | Ptr = shared_ptr< SurfaceReconstruction< PointNT > > |
using | ConstPtr = shared_ptr< const SurfaceReconstruction< PointNT > > |
Public Types inherited from pcl::PCLSurfaceBase< PointNT > | |
using | Ptr = shared_ptr< PCLSurfaceBase< PointNT > > |
using | ConstPtr = shared_ptr< const PCLSurfaceBase< PointNT > > |
using | KdTree = pcl::search::Search< PointNT > |
using | KdTreePtr = typename KdTree::Ptr |
Public Types inherited from pcl::PCLBase< PointNT > | |
using | PointCloud = pcl::PointCloud< PointNT > |
using | PointCloudPtr = typename PointCloud::Ptr |
using | PointCloudConstPtr = typename PointCloud::ConstPtr |
using | PointIndicesPtr = PointIndices::Ptr |
using | PointIndicesConstPtr = PointIndices::ConstPtr |
Public Member Functions | |
MarchingCubesHoppe (const float dist_ignore=-1.0f, const float percentage_extend_grid=0.0f, const float iso_level=0.0f) | |
Constructor. More... |
|
~MarchingCubesHoppe () | |
Destructor. More... |
|
void | voxelizeData () override |
Convert the point cloud into voxel data. More... |
|
void | setDistanceIgnore (const float dist_ignore) |
Method that sets the distance for ignoring voxels which are far from point cloud. More... |
|
float | getDistanceIgnore () const |
get the distance for ignoring voxels which are far from point cloud. More... |
|
Public Member Functions inherited from pcl::MarchingCubes< PointNT > | |
MarchingCubes (const float percentage_extend_grid=0.0f, const float iso_level=0.0f) | |
Constructor. More... |
|
~MarchingCubes () | |
Destructor. More... |
|
void | setIsoLevel (float iso_level) |
Method that sets the iso level of the surface to be extracted. More... |
|
float | getIsoLevel () |
Method that returns the iso level of the surface to be extracted. More... |
|
void | setGridResolution (int res_x, int res_y, int res_z) |
Method that sets the marching cubes grid resolution. More... |
|
void | getGridResolution (int &res_x, int &res_y, int &res_z) |
Method to get the marching cubes grid resolution. More... |
|
void | setPercentageExtendGrid (float percentage) |
Method that sets the parameter that defines how much free space should be left inside the grid between the bounding box of the point cloud and the grid limits. More... |
|
float | getPercentageExtendGrid () |
Method that gets the parameter that defines how much free space should be left inside the grid between the bounding box of the point cloud and the grid limits, as a percentage of the bounding box. More... |
|
Public Member Functions inherited from pcl::SurfaceReconstruction< PointNT > | |
SurfaceReconstruction () | |
Constructor. More... |
|
~SurfaceReconstruction () | |
Destructor. More... |
|
void | reconstruct (pcl::PolygonMesh &output) override |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> More... |
|
virtual void | reconstruct (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> More... |
|
Public Member Functions inherited from pcl::PCLSurfaceBase< PointNT > | |
PCLSurfaceBase () | |
Empty constructor. More... |
|
~PCLSurfaceBase () | |
Empty destructor. More... |
|
void | setSearchMethod (const KdTreePtr &tree) |
Provide an optional pointer to a search object. More... |
|
KdTreePtr | getSearchMethod () |
Get a pointer to the search method used. More... |
|
Public Member Functions inherited from pcl::PCLBase< PointNT > | |
PCLBase () | |
Empty constructor. More... |
|
PCLBase (const PCLBase &base) | |
Copy constructor. More... |
|
virtual | ~PCLBase ()=default |
Destructor. More... |
|
virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
Provide a pointer to the input dataset. More... |
|
const PointCloudConstPtr | getInputCloud () const |
Get a pointer to the input point cloud dataset. More... |
|
virtual void | setIndices (const IndicesPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... |
|
virtual void | setIndices (const IndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... |
|
virtual void | setIndices (const PointIndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... |
|
virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols) |
Set the indices for the points laying within an interest region of the point cloud. More... |
|
IndicesPtr | getIndices () |
Get a pointer to the vector of indices used. More... |
|
const IndicesConstPtr | getIndices () const |
Get a pointer to the vector of indices used. More... |
|
const PointNT & | operator[] (std::size_t pos) const |
Override PointCloud operator[] to shorten code. More... |
|
Protected Attributes | |
float | dist_ignore_ |
ignore the distance function if it is negative or distance between voxel centroid and point are larger that it. More... |
|
Protected Attributes inherited from pcl::MarchingCubes< PointNT > | |
std::vector< float > | grid_ |
The data structure storing the 3D grid. More... |
|
int | res_x_ = 32 |
The grid resolution. More... |
|
int | res_y_ = 32 |
int | res_z_ = 32 |
Eigen::Array3f | upper_boundary_ |
bounding box More... |
|
Eigen::Array3f | lower_boundary_ |
Eigen::Array3f | size_voxel_ |
size of voxels More... |
|
float | percentage_extend_grid_ |
Parameter that defines how much free space should be left inside the grid between the bounding box of the point cloud and the grid limits, as a percentage of the bounding box. More... |
|
float | iso_level_ |
The iso level to be extracted. More... |
|
Protected Attributes inherited from pcl::SurfaceReconstruction< PointNT > | |
bool | check_tree_ |
A flag specifying whether or not the derived reconstruction algorithm needs the search object tree. More... |
|
Protected Attributes inherited from pcl::PCLSurfaceBase< PointNT > | |
KdTreePtr | tree_ |
A pointer to the spatial search object. More... |
|
Protected Attributes inherited from pcl::PCLBase< PointNT > | |
PointCloudConstPtr | input_ |
The input point cloud dataset. More... |
|
IndicesPtr | indices_ |
A pointer to the vector of point indices to use. More... |
|
bool | use_indices_ |
Set to true if point indices are used. More... |
|
bool | fake_indices_ |
If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More... |
|
Additional Inherited Members | |
Protected Member Functions inherited from pcl::MarchingCubes< PointNT > | |
void | interpolateEdge (Eigen::Vector3f &p1, Eigen::Vector3f &p2, float val_p1, float val_p2, Eigen::Vector3f &output) |
Interpolate along the voxel edge. More... |
|
void | createSurface (const std::vector< float > &leaf_node, const Eigen::Vector3i &index_3d, pcl::PointCloud< PointNT > &cloud) |
Calculate out the corresponding polygons in the leaf node. More... |
|
void | getBoundingBox () |
Get the bounding box for the input data points. More... |
|
virtual float | getGridValue (Eigen::Vector3i pos) |
Method that returns the scalar value at the given grid position. More... |
|
void | getNeighborList1D (std::vector< float > &leaf, Eigen::Vector3i &index3d) |
Method that returns the scalar values of the neighbors of a given 3D position in the grid. More... |
|
std::string | getClassName () const override |
Class get name method. More... |
|
void | performReconstruction (pcl::PolygonMesh &output) override |
Extract the surface. More... |
|
void | performReconstruction (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) override |
Extract the surface. More... |
|
Protected Member Functions inherited from pcl::PCLSurfaceBase< PointNT > | |
virtual std::string | getClassName () const |
Abstract class get name method. More... |
|
Protected Member Functions inherited from pcl::PCLBase< PointNT > | |
bool | initCompute () |
This method should get called before starting the actual computation. More... |
|
bool | deinitCompute () |
This method should get called after finishing the actual computation. More... |
|
The marching cubes surface reconstruction algorithm, using a signed distance function based on the distance from tangent planes, proposed by Hoppe et.
al. in: Hoppe H., DeRose T., Duchamp T., MC-Donald J., Stuetzle W., "Surface reconstruction from unorganized points", SIGGRAPH '92
Definition at line 52 of file marching_cubes_hoppe.h.
using pcl::MarchingCubesHoppe< PointNT >::ConstPtr = shared_ptr<const MarchingCubesHoppe<PointNT> > |
Definition at line 56 of file marching_cubes_hoppe.h.
using pcl::MarchingCubesHoppe< PointNT >::KdTree = pcl::KdTree<PointNT> |
Definition at line 70 of file marching_cubes_hoppe.h.
using pcl::MarchingCubesHoppe< PointNT >::KdTreePtr = typename KdTree::Ptr |
Definition at line 71 of file marching_cubes_hoppe.h.
using pcl::MarchingCubesHoppe< PointNT >::PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr |
Definition at line 68 of file marching_cubes_hoppe.h.
using pcl::MarchingCubesHoppe< PointNT >::Ptr = shared_ptr<MarchingCubesHoppe<PointNT> > |
Definition at line 55 of file marching_cubes_hoppe.h.
| inline |
Constructor.
Definition at line 75 of file marching_cubes_hoppe.h.
pcl::MarchingCubesHoppe< PointNT >::~MarchingCubesHoppe |
Destructor.
Definition at line 43 of file marching_cubes_hoppe.hpp.
| inline |
get the distance for ignoring voxels which are far from point cloud.
Definition at line 104 of file marching_cubes_hoppe.h.
References pcl::MarchingCubesHoppe< PointNT >::dist_ignore_.
| inline |
Method that sets the distance for ignoring voxels which are far from point cloud.
If the distance is negative, then the distance functions would be calculated in all voxels; otherwise, only voxels with distance lower than dist_ignore would be involved in marching cube.
[in] | dist_ignore | threshold of distance. Default value is -1.0. Set to negative if all voxels are to be involved. |
Definition at line 98 of file marching_cubes_hoppe.h.
References pcl::MarchingCubesHoppe< PointNT >::dist_ignore_.
| overridevirtual |
Convert the point cloud into voxel data.
Implements pcl::MarchingCubes< PointNT >.
Definition at line 50 of file marching_cubes_hoppe.hpp.
| protected |
ignore the distance function if it is negative or distance between voxel centroid and point are larger that it.
Definition at line 111 of file marching_cubes_hoppe.h.
Referenced by pcl::MarchingCubesHoppe< PointNT >::getDistanceIgnore(), and pcl::MarchingCubesHoppe< PointNT >::setDistanceIgnore().
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_marching_cubes_hoppe.html