Overview

The surfaceLambdaMuSmooth utility smooths a given surface by moving point positions based on the procedure described by Taubin [76].

Usage

Synopsis

surfaceLambdaMuSmooth [OPTIONS] <input> <lambda> <mu> <iterations> <output>

Examples

surfaceLambdaMuSmooth surface.stl 0.5 0.5 1 output.stl

Input

Arguments

<input>           The input surface file
  <lambda>          On the interval [0,1]
  <mu>              On the interval [0,1]
  <iterations>      The number of iterations to perform
  <output>          The output surface file

Options

  -case <dir>       Case directory (instead of current directory)
  -density <scalar>
                    Specify density, kg/m3 for solid properties, kg/m2 for
                    shell properties
  -referencePoint <vector>
                    Inertia relative to this point, not the centre of mass
  -shellProperties  Inertia of a thin shell
  -doc              Display documentation in browser
  -help             Display short help and exit
  -help-full        Display full help and exit

Files

No file needed.

Fields

No field needed.

Output

Logs

Property Description Type
Faces Number of faces on the surface label
Vertices Number of vertices on the surface label
Bounding Box Bounding box of the surface min/max vector

Files

Property Description Path Type
featureFile New surface file <case>/ input type

Fields

No field output.

Method

The discrete Laplacian is given by

\[\Delta x_i = \sum_{j \in i^{*}} w_{ij}(x_j - x_i)\]

The weight \(w_{ij}\) is set to the inverse of the number of points surrounding the point \(i\), i.e.

\[w_{ij} = \frac{1}{i^{*}}\]

Gaussian filtering is performed iteratively as

\[x_i^{'} = x_i + \lambda \Delta x_i\] \[x_i^{'} = (1 - \lambda) x_i + \lambda \Delta x_i\] \[x_i^{'} = x_i + \mu \Delta x_i\] \[x_i^{'} = (1 + \mu) x_i - \mu \Delta x_i\]

For Laplacian smoothing, the \(\mu\) coefficient should be set to zero.

The procedure will move all points by default, and therefore will degrade features points and lines. To preserve features, the set of points to fix can be supplied.

Provide an edgeMesh file containing points that are not to be moved during smoothing in order to preserve features.

Further information

Tutorial:

  • None

Source code:

History:

  • Introduced in version 2.2.1