Developer Documentation

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
OpenMesh::Smoother::SmootherT< Mesh > Class Template Referenceabstract

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

Inheritance 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)
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_

## Private Member Functions
void | set_active_vertices ()
| Find active vertices. Resets tagged status ! More...
void | compute_new_positions ()
void | project_to_tangent_plane ()
void | local_error_check ()
void | move_points ()

## Private Attributes
Scalar | tolerance_
Scalar | normal_deviation_
Component | component_
Continuity | continuity_
OpenMesh::VPropHandleT< Point > | original_positions_
OpenMesh::VPropHandleT< NormalType > | original_normals_
OpenMesh::VPropHandleT< Point > | new_positions_
OpenMesh::VPropHandleT< bool > | is_active_

## Detailed Description

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

Base class for smoothing algorithms.

Definition at line 76 of file SmootherT.hh.

## Member Enumeration Documentation

## ◆ Component

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.

Definition at line 87 of file SmootherT.hh.

## Constructor & Destructor Documentation

## ◆ SmootherT()

template<class Mesh>

OpenMesh::Smoother::SmootherT< Mesh >::SmootherT | ( | Mesh & | _mesh | ) |

constructor & destructor

Parameters

  _mesh | Reference a triangle or poly mesh

Definition at line 73 of file SmootherT_impl.hh.

## Member Function Documentation

## ◆ disable_local_error_check()

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.

Definition at line 290 of file SmootherT_impl.hh.

## ◆ initialize()

template<class Mesh >

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

Initialize smoother

Parameters

  _comp | Determine component to smooth
  _cont | Determine Continuity

Definition at line 122 of file SmootherT_impl.hh.

## ◆ set_absolute_local_error()

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

  _err | Maximal error

Definition at line 278 of file SmootherT_impl.hh.

## ◆ set_active_vertices()

template<class Mesh >

void OpenMesh::Smoother::SmootherT< Mesh >::set_active_vertices | ( |  | ) |
| private

Find active vertices. Resets tagged status !

This function recomputes the set of active vertices, which will be touched by the smoother. If nothing on the mesh is selected, all vertices which are not locked, feature or boundary will be marked as active and moved by the smoother. If vertices are selected, than only the selected ones, excluding the locked, feature and boundary vertices will be moved.

The function is called first when running the smoother.

Definition at line 152 of file SmootherT_impl.hh.

## ◆ set_relative_local_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

  _err | Factor scaling the bounding box diagonal

Definition at line 248 of file SmootherT_impl.hh.

## ◆ skip_features()

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

  _state | true : If features are selected on the mesh, they will be left unmodified false : Features will be ignored

Definition at line 167 of file SmootherT.hh.

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

- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Smoother/SmootherT.hh
- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Smoother/SmootherT_impl.hh