Developer Documentation
OpenMesh::Smoother::LaplaceSmootherT< Mesh > Class Template Reference

Laplacian Smoothing.
More...

#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Smoother/LaplaceSmootherT.hh>

Inheritance diagram for OpenMesh::Smoother::LaplaceSmootherT< Mesh >:
OpenMesh::Smoother::SmootherT< Mesh > OpenMesh::Utils::Noncopyable OpenMesh::Smoother::JacobiLaplaceSmootherT< Mesh >

Public Types

typedef SmootherT< Mesh >::Component Component
 
typedef SmootherT< Mesh >::Continuity Continuity
 
typedef SmootherT< Mesh >::Scalar Scalar
 
typedef SmootherT< Mesh >::VertexHandle VertexHandle
 
typedef SmootherT< Mesh >::EdgeHandle EdgeHandle
 
- Public Types inherited from OpenMesh::Smoother::SmootherT< Mesh >
enum  Component { Tangential , Normal , Tangential_and_Normal }
 
enum  Continuity { C0 , C1 , C2 }
 
typedef Mesh::Scalar Scalar
 
typedef Mesh::Point Point
 
typedef Mesh::Normal NormalType
 
typedef Mesh::VertexHandle VertexHandle
 
typedef Mesh::EdgeHandle EdgeHandle
 

Public Member Functions

 LaplaceSmootherT (Mesh &_mesh)
 
void initialize (Component _comp, Continuity _cont)
 
- Public Member Functions inherited from OpenMesh::Smoother::SmootherT< Mesh >
 SmootherT (Mesh &_mesh)
 constructor & destructor More...
 
void initialize (Component _comp, Continuity _cont)
 
virtual void smooth (unsigned int _n)
 Do _n smoothing iterations. More...
 
void set_relative_local_error (Scalar _err)
 Set local error relative to bounding box. More...
 
void set_absolute_local_error (Scalar _err)
 Set local error as an absolute value. More...
 
void disable_local_error_check ()
 Disable error control of the smoother. More...
 
void skip_features (bool _state)
 enable or disable feature handling More...
 

Protected Member Functions

Scalar weight (VertexHandle _vh) const
 
Scalar weight (EdgeHandle _eh) const
 
- Protected Member Functions inherited from OpenMesh::Smoother::SmootherT< Mesh >
virtual void compute_new_positions_C0 ()=0
 
virtual void compute_new_positions_C1 ()=0
 
const Point & orig_position (VertexHandle _vh) const
 
const NormalType & orig_normal (VertexHandle _vh) const
 
const Point & new_position (VertexHandle _vh) const
 
void set_new_position (VertexHandle _vh, const Point &_p)
 
bool is_active (VertexHandle _vh) const
 
Component component () const
 
Continuity continuity () const
 

Private Types

enum  LaplaceWeighting { UniformWeighting , CotWeighting }
 
typedef SmootherT< MeshBase
 

Private Member Functions

void compute_weights (LaplaceWeighting _mode)
 

Private Attributes

OpenMesh::VPropHandleT< Scalar > vertex_weights_
 
OpenMesh::EPropHandleT< Scalar > edge_weights_
 

Additional Inherited Members

- Protected Attributes inherited from OpenMesh::Smoother::SmootherT< Mesh >
Meshmesh_
 
bool skip_features_
 

Detailed Description

template<class Mesh>
class OpenMesh::Smoother::LaplaceSmootherT< Mesh >

Laplacian Smoothing.

Definition at line 73 of file LaplaceSmootherT.hh.

Member Typedef Documentation

◆ Base

template<class Mesh >
typedef SmootherT<Mesh> OpenMesh::Smoother::LaplaceSmootherT< Mesh >::Base
private

Definition at line 76 of file LaplaceSmootherT.hh.

◆ Component

template<class Mesh >
typedef SmootherT<Mesh>::Component OpenMesh::Smoother::LaplaceSmootherT< Mesh >::Component

Definition at line 79 of file LaplaceSmootherT.hh.

◆ Continuity

template<class Mesh >
typedef SmootherT<Mesh>::Continuity OpenMesh::Smoother::LaplaceSmootherT< Mesh >::Continuity

Definition at line 80 of file LaplaceSmootherT.hh.

◆ EdgeHandle

template<class Mesh >
typedef SmootherT<Mesh>::EdgeHandle OpenMesh::Smoother::LaplaceSmootherT< Mesh >::EdgeHandle

Definition at line 83 of file LaplaceSmootherT.hh.

◆ Scalar

template<class Mesh >
typedef SmootherT<Mesh>::Scalar OpenMesh::Smoother::LaplaceSmootherT< Mesh >::Scalar

Definition at line 81 of file LaplaceSmootherT.hh.

◆ VertexHandle

template<class Mesh >
typedef SmootherT<Mesh>::VertexHandle OpenMesh::Smoother::LaplaceSmootherT< Mesh >::VertexHandle

Definition at line 82 of file LaplaceSmootherT.hh.

Member Enumeration Documentation

◆ LaplaceWeighting

template<class Mesh >
enum OpenMesh::Smoother::LaplaceSmootherT::LaplaceWeighting
private

Definition at line 106 of file LaplaceSmootherT.hh.

Constructor & Destructor Documentation

◆ LaplaceSmootherT()

template<class Mesh >
OpenMesh::Smoother::LaplaceSmootherT< Mesh >::LaplaceSmootherT ( Mesh _mesh)
explicit

Definition at line 72 of file LaplaceSmootherT_impl.hh.

◆ ~LaplaceSmootherT()

Definition at line 86 of file LaplaceSmootherT_impl.hh.

Member Function Documentation

◆ compute_weights()

template<class Mesh >
void OpenMesh::Smoother::LaplaceSmootherT< Mesh >::compute_weights ( LaplaceWeighting  _mode)
private

Definition at line 130 of file LaplaceSmootherT_impl.hh.

◆ initialize()

template<class Mesh >
void OpenMesh::Smoother::LaplaceSmootherT< Mesh >::initialize ( Component  _comp,
Continuity  _cont 
)

Definition at line 100 of file LaplaceSmootherT_impl.hh.

◆ weight() [1/2]

template<class Mesh >
Scalar OpenMesh::Smoother::LaplaceSmootherT< Mesh >::weight ( EdgeHandle  _eh) const
inlineprotected

Definition at line 100 of file LaplaceSmootherT.hh.

◆ weight() [2/2]

template<class Mesh >
Scalar OpenMesh::Smoother::LaplaceSmootherT< Mesh >::weight ( VertexHandle  _vh) const
inlineprotected

Definition at line 97 of file LaplaceSmootherT.hh.

Member Data Documentation

◆ edge_weights_

template<class Mesh >
OpenMesh::EPropHandleT<Scalar> OpenMesh::Smoother::LaplaceSmootherT< Mesh >::edge_weights_
private

Definition at line 111 of file LaplaceSmootherT.hh.

◆ vertex_weights_

template<class Mesh >
OpenMesh::VPropHandleT<Scalar> OpenMesh::Smoother::LaplaceSmootherT< Mesh >::vertex_weights_
private

Definition at line 110 of file LaplaceSmootherT.hh.


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