Smoother Tools

# Overview

The OpenMesh library provides tools for smoothing Triangle- and Polymeshes

1. Smoother:
   1. OpenMesh::Smoother::SmootherT
   2. OpenMesh::Smoother::LaplaceSmootherT
   3. OpenMesh::Smoother::JacobiLaplaceSmootherT

# Usage

The smoothers directly work on an OpenMesh. The following example shows how to use them:

#include <OpenMesh/Tools/Smoother/JacobiLaplaceSmootherT.hh>
// Initialize smoother with input mesh
OpenMesh::Smoother::JacobiLaplaceSmootherT<MyMesh> smoother(mesh);
smoother.initialize( Tangential_and_Normal, //Smooth direction
C0) //Continuity
// Execute 3 smooth steps
smoother.smooth(3);

# Options

## Continuity

- C0: shape is continuous, but not the tangent
- C1: shape and tangent are continuous
- C2: preserves curvature

## Component

- Tangential: Smooth in tangential direction
- Normal: Smooth in normal direction
- Tangential_and_Normal: Smooth in tangential and normal direction

## Local Error

By default, this option is disabled. You can set local max. local errors (absolute or relative) via following functions:

void OpenMesh::Smoother::SmootherT<Mesh>::set_relative_local_error(Scalar _err);
void OpenMesh::Smoother::SmootherT<Mesh>::set_absolute_local_error(Scalar _err);
void OpenMesh::Smoother::SmootherT<Mesh>::disable_local_error_check();