ImFusion SDK 4.3
ImFusion::MeshProcessing::Remeshing Namespace Reference

Mesh processing algorithms related to mesh remeshing (smoothing, decimation, subdivision) More...

Detailed Description

Mesh processing algorithms related to mesh remeshing (smoothing, decimation, subdivision)

Classes

struct  SimplificationSettings
 

Enumerations

enum class  SmoothMode { Laplacian = 0 , Taubin }
 Smoothing method.
 

Functions

void subdivide (Mesh &mesh, unsigned int level)
 Method to refine and smooth a mesh using Charles Loop method (it divides each triangle into 4 smaller ones)
 
void smooth (Mesh &mesh, unsigned int iter, SmoothMode mode=SmoothMode::Laplacian)
 Mesh smoothing algorithm.
 
void simplify (Mesh &mesh, const SimplificationSettings &settings, const std::vector< int > &blockedVertices={})
 Mesh simplification algorithm.
 

Function Documentation

◆ subdivide()

void subdivide ( Mesh & mesh,
unsigned int level )

Method to refine and smooth a mesh using Charles Loop method (it divides each triangle into 4 smaller ones)

Parameters
[in,out]meshMesh
[in]levelNumber of refinement steps
Note
Consider removing duplicated vertices by calling Cleaning::mergeCloseVertices before this
Warning
Mesh properties will be outdated after this call

◆ smooth()

void smooth ( Mesh & mesh,
unsigned int iter,
SmoothMode mode = SmoothMode::Laplacian )

Mesh smoothing algorithm.

Parameters
[in,out]meshMesh
[in]iterNumber of smoothing iterations
[in]modeSmoothing method
Note
Consider removing duplicated vertices by calling Cleaning::mergeCloseVertices before this

◆ simplify()

void simplify ( Mesh & mesh,
const SimplificationSettings & settings,
const std::vector< int > & blockedVertices = {} )

Mesh simplification algorithm.

Simplification stops after running out of valid edge collapse choices. Based mostly on triangle edge lengths, with optional preservation of mesh curvature, vertex colors and normals.

Parameters
[in,out]meshMesh
[in]settingsAlgorithm settings
[in]blockedVerticesVertices that should remain untouched during simplification
Note
Consider removing duplicated vertices by calling Cleaning::mergeCloseVertices before this
Search Tab / S to search, Esc to close