OpenMesh
OpenMesh::Smoother::SmootherT< Mesh > Class Template Referenceabstract

Base class for smoothing algorithms. More...

#include <OpenMesh/Tools/Smoother/SmootherT.hh>

Inheritance diagram for OpenMesh::Smoother::SmootherT< Mesh >:
Collaboration diagram for OpenMesh::Smoother::SmootherT< Mesh >:

Public Types

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

 SmootherT (Mesh &_mesh)
 constructor & destructor More...
 
Initialization and algorithm execution
void initialize (Component _comp, Continuity _cont)
 Initialize smoother. More...
 
virtual void smooth (unsigned int _n)
 Do _n smoothing iterations.
 
Error control functions
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

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
 

Protected Attributes

Mesh & mesh_
 
bool skip_features_
 

Detailed Description

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

Base class for smoothing algorithms.

Member Enumeration Documentation

template<class Mesh>
enum OpenMesh::Smoother::SmootherT::Component
Enumerator
Tangential 

Smooth tangential direction.

Normal 

Smooth normal direction.

Tangential_and_Normal 

Smooth tangential and normal direction.

Constructor & Destructor Documentation

template<class Mesh>
OpenMesh::Smoother::SmootherT< Mesh >::SmootherT ( Mesh &  _mesh)

constructor & destructor

Parameters
_meshReference a triangle or poly mesh

Member Function Documentation

template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::disable_local_error_check ( )

Disable error control of the smoother.

This function disables the error control of the smoother.

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

Initialize smoother.

Parameters
_compDetermine component to smooth
_contDetermine Continuity
template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::set_absolute_local_error ( Scalar  _err)

Set local error as an absolute value.

Set the maximal error tolerance of the smoother to the given value.

Parameters
_errMaximal error
template<class Mesh >
void OpenMesh::Smoother::SmootherT< Mesh >::set_relative_local_error ( Scalar  _err)

Set local error relative to bounding box.

This function sets a maximal error tolerance for the smoother as a fraction of the bounding box of the mesh. First the bounding box diagonal is computed. Then the error is set as the length of the diagonal multiplied with the given factor.

Parameters
_errFactor scaling the bounding box diagonal
template<class Mesh>
void OpenMesh::Smoother::SmootherT< Mesh >::skip_features ( bool  _state)
inline

enable or disable feature handling

This function can be used to control if features on the mesh should be preserved. If enabled, the smoother will keep features and does not modify them. Features can be set via OpenMesh status flags (request status and set primitives as features). Feature flag can be set for vertices edges and faces.

Parameters
_statetrue : If features are selected on the mesh, they will be left unmodified
false : Features will be ignored

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

Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .