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