PCL mesh smoothing based on the vtkSmoothPolyDataFilter algorithm from the VTK library. Please check out the original documentation for more details on the inner workings of the algorithm Warning: This wrapper does two fairly computationally expensive conversions from the PCL PolygonMesh data structure to the vtkPolyData data structure and back. More...
#include <vtk_mesh_smoothing_laplacian.h>
Public Member Functions | |
bool | getBoundarySmoothing () |
Get the status of the boundary smoothing. | |
float | getConvergence () |
Get the convergence criterion. | |
float | getEdgeAngle () |
Get the edge angle to control smoothing along edges. | |
float | getFeatureAngle () |
Get the angle threshold for considering an edge to be sharp. | |
bool | getFeatureEdgeSmoothing () |
Get the status of the feature edge smoothing. | |
int | getNumIter () |
Get the number of iterations. | |
float | getRelaxationFactor () |
Get the relaxation factor of the Laplacian smoothing. | |
MeshSmoothingLaplacianVTK () | |
Empty constructor that sets the values of the algorithm parameters to the VTK defaults. | |
void | setBoundarySmoothing (bool boundary_smoothing) |
Turn on/off the smoothing of vertices on the boundary of the mesh. | |
void | setConvergence (float convergence) |
Specify a convergence criterion for the iteration process. Smaller numbers result in more smoothing iterations. | |
void | setEdgeAngle (float edge_angle) |
Specify the edge angle to control smoothing along edges (either interior or boundary). | |
void | setFeatureAngle (float feature_angle) |
Specify the feature angle for sharp edge identification. | |
void | setFeatureEdgeSmoothing (bool feature_edge_smoothing) |
Turn on/off smoothing along sharp interior edges. | |
void | setNumIter (int num_iter) |
Set the number of iterations for the smoothing filter. | |
void | setRelaxationFactor (float relaxation_factor) |
Specify the relaxation factor for Laplacian smoothing. As in all iterative methods, the stability of the process is sensitive to this parameter. In general, small relaxation factors and large numbers of iterations are more stable than larger relaxation factors and smaller numbers of iterations. | |
Protected Member Functions | |
void | performProcessing (pcl::PolygonMesh &output) |
Abstract surface processing method. | |
Private Attributes | |
bool | boundary_smoothing_ |
float | convergence_ |
float | edge_angle_ |
float | feature_angle_ |
bool | feature_edge_smoothing_ |
int | num_iter_ |
Parameters. | |
float | relaxation_factor_ |
vtkSmartPointer< vtkPolyData > | vtk_polygons_ |
PCL mesh smoothing based on the vtkSmoothPolyDataFilter algorithm from the VTK library. Please check out the original documentation for more details on the inner workings of the algorithm Warning: This wrapper does two fairly computationally expensive conversions from the PCL PolygonMesh data structure to the vtkPolyData data structure and back.
Definition at line 52 of file vtk_mesh_smoothing_laplacian.h.
Empty constructor that sets the values of the algorithm parameters to the VTK defaults.
Definition at line 56 of file vtk_mesh_smoothing_laplacian.h.
bool pcl::MeshSmoothingLaplacianVTK::getBoundarySmoothing | ( | ) | [inline] |
Get the status of the boundary smoothing.
Definition at line 178 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::getConvergence | ( | ) | [inline] |
Get the convergence criterion.
Definition at line 95 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::getEdgeAngle | ( | ) | [inline] |
Get the edge angle to control smoothing along edges.
Definition at line 162 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::getFeatureAngle | ( | ) | [inline] |
Get the angle threshold for considering an edge to be sharp.
Definition at line 146 of file vtk_mesh_smoothing_laplacian.h.
bool pcl::MeshSmoothingLaplacianVTK::getFeatureEdgeSmoothing | ( | ) | [inline] |
Get the status of the feature edge smoothing.
Definition at line 130 of file vtk_mesh_smoothing_laplacian.h.
int pcl::MeshSmoothingLaplacianVTK::getNumIter | ( | ) | [inline] |
Get the number of iterations.
Definition at line 79 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::getRelaxationFactor | ( | ) | [inline] |
Get the relaxation factor of the Laplacian smoothing.
Definition at line 114 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::performProcessing | ( | pcl::PolygonMesh & | output | ) | [protected, virtual] |
Abstract surface processing method.
Implements pcl::MeshProcessing.
Definition at line 47 of file vtk_mesh_smoothing_laplacian.cpp.
void pcl::MeshSmoothingLaplacianVTK::setBoundarySmoothing | ( | bool | boundary_smoothing | ) | [inline] |
Turn on/off the smoothing of vertices on the boundary of the mesh.
[in] | boundary_smoothing | decision whether boundary smoothing is on or off |
Definition at line 171 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::setConvergence | ( | float | convergence | ) | [inline] |
Specify a convergence criterion for the iteration process. Smaller numbers result in more smoothing iterations.
[in] | convergence | convergence criterion for the Laplacian smoothing |
Definition at line 88 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::setEdgeAngle | ( | float | edge_angle | ) | [inline] |
Specify the edge angle to control smoothing along edges (either interior or boundary).
[in] | edge_angle | the angle to control smoothing along edges |
Definition at line 155 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::setFeatureAngle | ( | float | feature_angle | ) | [inline] |
Specify the feature angle for sharp edge identification.
[in] | feature_angle | the angle threshold for considering an edge to be sharp |
Definition at line 139 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::setFeatureEdgeSmoothing | ( | bool | feature_edge_smoothing | ) | [inline] |
Turn on/off smoothing along sharp interior edges.
[in] | status | decision whether to enable/disable smoothing along sharp interior edges |
Definition at line 123 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::setNumIter | ( | int | num_iter | ) | [inline] |
Set the number of iterations for the smoothing filter.
[in] | num_iter | the number of iterations |
Definition at line 72 of file vtk_mesh_smoothing_laplacian.h.
void pcl::MeshSmoothingLaplacianVTK::setRelaxationFactor | ( | float | relaxation_factor | ) | [inline] |
Specify the relaxation factor for Laplacian smoothing. As in all iterative methods, the stability of the process is sensitive to this parameter. In general, small relaxation factors and large numbers of iterations are more stable than larger relaxation factors and smaller numbers of iterations.
[in] | relaxation_factor | the relaxation factor of the Laplacian smoothing algorithm |
Definition at line 107 of file vtk_mesh_smoothing_laplacian.h.
bool pcl::MeshSmoothingLaplacianVTK::boundary_smoothing_ [private] |
Definition at line 197 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::convergence_ [private] |
Definition at line 192 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::edge_angle_ [private] |
Definition at line 196 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::feature_angle_ [private] |
Definition at line 195 of file vtk_mesh_smoothing_laplacian.h.
bool pcl::MeshSmoothingLaplacianVTK::feature_edge_smoothing_ [private] |
Definition at line 194 of file vtk_mesh_smoothing_laplacian.h.
int pcl::MeshSmoothingLaplacianVTK::num_iter_ [private] |
Parameters.
Definition at line 191 of file vtk_mesh_smoothing_laplacian.h.
float pcl::MeshSmoothingLaplacianVTK::relaxation_factor_ [private] |
Definition at line 193 of file vtk_mesh_smoothing_laplacian.h.
vtkSmartPointer<vtkPolyData> pcl::MeshSmoothingLaplacianVTK::vtk_polygons_ [private] |
Definition at line 188 of file vtk_mesh_smoothing_laplacian.h.