Loading...
Searching...
No Matches
pcl::MarchingCubesHoppe< PointNT > Class Template Reference
Module surface

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>`

Inheritance diagram for pcl::MarchingCubesHoppe< PointNT >:

## 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
using | ConstPtr
Public Types inherited from pcl::PCLSurfaceBase< PointNT >
using | Ptr
using | ConstPtr
using | KdTree
using | KdTreePtr
Public Types inherited from pcl::PCLBase< PointNT >
using | PointCloud
using | PointCloudPtr
using | PointCloudConstPtr
using | PointIndicesPtr
using | PointIndicesConstPtr

## Public Member Functions

| MarchingCubesHoppe (const float dist_ignore=-1.0f, const float percentage_extend_grid=0.0f, const float iso_level=0.0f)
| Constructor.
| ~MarchingCubesHoppe () override
| Destructor.
void | voxelizeData () override
| Convert the point cloud into voxel data.
void | setDistanceIgnore (const float dist_ignore)
| Method that sets the distance for ignoring voxels which are far from point cloud.
float | getDistanceIgnore () const
| get the distance for ignoring voxels which are far from point cloud.
Public Member Functions inherited from pcl::MarchingCubes< PointNT >
| MarchingCubes (const float percentage_extend_grid=0.0f, const float iso_level=0.0f)
| Constructor.
| ~MarchingCubes () override
| Destructor.
void | setIsoLevel (float iso_level)
| Method that sets the iso level of the surface to be extracted.
float | getIsoLevel ()
| Method that returns the iso level of the surface to be extracted.
void | setGridResolution (int res_x, int res_y, int res_z)
| Method that sets the marching cubes grid resolution.
void | getGridResolution (int &res_x, int &res_y, int &res_z)
| Method to get the marching cubes grid resolution.
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.
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.
Public Member Functions inherited from pcl::SurfaceReconstruction< PointNT >
| SurfaceReconstruction ()=default
| Constructor.
| ~SurfaceReconstruction () override=default
| Destructor.
void | reconstruct (pcl::PolygonMesh &output) override
| Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>.
Public Member Functions inherited from pcl::PCLSurfaceBase< PointNT >
| PCLSurfaceBase ()
| Empty constructor.
| ~PCLSurfaceBase () override=default
| Empty destructor.
void | setSearchMethod (const KdTreePtr &tree)
| Provide an optional pointer to a search object.
KdTreePtr | getSearchMethod ()
| Get a pointer to the search method used.
Public Member Functions inherited from pcl::PCLBase< PointNT >
| PCLBase ()
| Empty constructor.
virtual | ~PCLBase ()=default
| Destructor.
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset.
PointCloudConstPtr const | getInputCloud () const
| Get a pointer to the input point cloud dataset.
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used.
const PointNT & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code.

## Protected Attributes

float | dist_ignore_
| ignore the distance function if it is negative or distance between voxel centroid and point are larger that it.
Protected Attributes inherited from pcl::MarchingCubes< PointNT >
std::vector< float > | grid_
| The data structure storing the 3D grid.
int | res_x_ = 32
| The grid resolution.
int | res_y_ = 32
int | res_z_ = 32
Eigen::Array3f | upper_boundary_
| bounding box
Eigen::Array3f | lower_boundary_
Eigen::Array3f | size_voxel_
| size of voxels
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.
float | iso_level_
| The iso level to be extracted.
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.
Protected Attributes inherited from pcl::PCLSurfaceBase< PointNT >
KdTreePtr | tree_
| A pointer to the spatial search object.
Protected Attributes inherited from pcl::PCLBase< PointNT >
PointCloudConstPtr | input_
| The input point cloud dataset.
IndicesPtr | indices_
| A pointer to the vector of point indices to use.
bool | use_indices_
| Set to true if point indices are used.
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud.

## 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.
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.
void | getBoundingBox ()
| Get the bounding box for the input data points.
virtual float | getGridValue (Eigen::Vector3i pos)
| Method that returns the scalar value at the given grid position.
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.
std::string | getClassName () const override
| Class get name method.
void | performReconstruction (pcl::PolygonMesh &output) override
| Extract the surface.
void | performReconstruction (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) override
| Extract the surface.
Protected Member Functions inherited from pcl::PCLBase< PointNT >
bool | initCompute ()
| This method should get called before starting the actual computation.
bool | deinitCompute ()
| This method should get called after finishing the actual computation.

## Detailed Description

template<typename PointNT>
class pcl::MarchingCubesHoppe< PointNT >

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

Template Parameters

  PointNT | Use pcl::PointNormal or pcl::PointXYZRGBNormal or pcl::PointXYZINormal

Author
  Alexandru E. Ichim

Definition at line 53 of file marching_cubes_hoppe.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointNT>

using pcl::MarchingCubesHoppe< PointNT >::ConstPtr = shared_ptr<const MarchingCubesHoppe<PointNT> >

Definition at line 57 of file marching_cubes_hoppe.h.

## KdTree

template<typename PointNT>

using pcl::MarchingCubesHoppe< PointNT >::KdTree = pcl::KdTree<PointNT>

Definition at line 71 of file marching_cubes_hoppe.h.

## KdTreePtr

template<typename PointNT>

using pcl::MarchingCubesHoppe< PointNT >::KdTreePtr = typename KdTree::Ptr

Definition at line 72 of file marching_cubes_hoppe.h.

## PointCloudPtr

template<typename PointNT>

using pcl::MarchingCubesHoppe< PointNT >::PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr

Definition at line 69 of file marching_cubes_hoppe.h.

## Ptr

template<typename PointNT>

using pcl::MarchingCubesHoppe< PointNT >::Ptr = shared_ptr<MarchingCubesHoppe<PointNT> >

Definition at line 56 of file marching_cubes_hoppe.h.

## Constructor & Destructor Documentation

## MarchingCubesHoppe()

template<typename PointNT>

pcl::MarchingCubesHoppe< PointNT >::MarchingCubesHoppe | ( | const float | dist_ignore = -1.0f,
|  | const float | percentage_extend_grid = 0.0f,
|  | const float | iso_level = 0.0f )

inline

Constructor.

Definition at line 76 of file marching_cubes_hoppe.h.

References dist_ignore_, and pcl::MarchingCubes< PointNT >::MarchingCubes().

## ~MarchingCubesHoppe()

template<typename PointNT>

pcl::MarchingCubesHoppe< PointNT >::~MarchingCubesHoppe | ( |  | ) |

override default

Destructor.

## Member Function Documentation

## getDistanceIgnore()

template<typename PointNT>

float pcl::MarchingCubesHoppe< PointNT >::getDistanceIgnore | ( |  | ) | const

inline

get the distance for ignoring voxels which are far from point cloud.

Definition at line 105 of file marching_cubes_hoppe.h.

References dist_ignore_.

## setDistanceIgnore()

template<typename PointNT>

void pcl::MarchingCubesHoppe< PointNT >::setDistanceIgnore | ( | const float | 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.

Parameters

  [in] | dist_ignore | threshold of distance. Default value is -1.0. Set to negative if all voxels are to be involved.

Definition at line 99 of file marching_cubes_hoppe.h.

References dist_ignore_.

## voxelizeData()

template<typename PointNT>

void pcl::MarchingCubesHoppe< PointNT >::voxelizeData | ( |  | ) |

override virtual

Convert the point cloud into voxel data.

Implements pcl::MarchingCubes< PointNT >.

Definition at line 48 of file marching_cubes_hoppe.hpp.

References dist_ignore_, pcl::MarchingCubes< PointNT >::grid_, pcl::PCLBase< PointNT >::input_, pcl::MarchingCubes< PointNT >::lower_boundary_, pcl::MarchingCubes< PointNT >::res_x_, pcl::MarchingCubes< PointNT >::res_y_, pcl::MarchingCubes< PointNT >::res_z_, pcl::MarchingCubes< PointNT >::size_voxel_, and pcl::PCLSurfaceBase< PointNT >::tree_.

## Member Data Documentation

## dist_ignore_

template<typename PointNT>

float pcl::MarchingCubesHoppe< PointNT >::dist_ignore_

protected

ignore the distance function if it is negative or distance between voxel centroid and point are larger that it.

Definition at line 112 of file marching_cubes_hoppe.h.

Referenced by getDistanceIgnore(), MarchingCubesHoppe(), setDistanceIgnore(), and voxelizeData().

The documentation for this class was generated from the following files:

- pcl/surface/marching_cubes_hoppe.h
- pcl/surface/impl/marching_cubes_hoppe.hpp