MeshLib Documentation
Loading...
Searching...
No Matches
MRRemeshSettings Struct Reference

parameters for mrRemesh More...

#include <MRMeshDecimate.h>

Public Attributes

float targetEdgeLen
 
int maxEdgeSplits
 Maximum number of edge splits allowed during subdivision.
 
float maxAngleChangeAfterFlip
 Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value.
 
float maxBdShift
 Maximal shift of a boundary during one edge collapse.
 
bool useCurvature
 
int finalRelaxIters
 
bool finalRelaxNoShrinkage
 if true prevents the surface from shrinkage after many iterations
 
MRFaceBitSetregion
 Region on mesh to be changed, it is updated during the operation.
 
bool packMesh
 whether to pack mesh at the end
 
bool projectOnOriginalMesh
 
MRProgressCallback progressCallback
 callback to report algorithm progress and cancel it by user request
 

Detailed Description

parameters for mrRemesh

Member Data Documentation

◆ finalRelaxIters

int MRRemeshSettings::finalRelaxIters

the number of iterations of final relaxation of mesh vertices; few iterations can give almost perfect uniformity of the vertices and edge lengths but deviate from the original surface

◆ finalRelaxNoShrinkage

bool MRRemeshSettings::finalRelaxNoShrinkage

if true prevents the surface from shrinkage after many iterations

◆ maxAngleChangeAfterFlip

float MRRemeshSettings::maxAngleChangeAfterFlip

Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value.

◆ maxBdShift

float MRRemeshSettings::maxBdShift

Maximal shift of a boundary during one edge collapse.

◆ maxEdgeSplits

int MRRemeshSettings::maxEdgeSplits

Maximum number of edge splits allowed during subdivision.

◆ packMesh

bool MRRemeshSettings::packMesh

whether to pack mesh at the end

◆ progressCallback

MRProgressCallback MRRemeshSettings::progressCallback

callback to report algorithm progress and cancel it by user request

◆ projectOnOriginalMesh

bool MRRemeshSettings::projectOnOriginalMesh

if true, then every new vertex after subdivision will be projected on the original mesh (before smoothing); this does not affect the vertices moved on other stages of the processing

◆ region

MRFaceBitSet* MRRemeshSettings::region

Region on mesh to be changed, it is updated during the operation.

◆ targetEdgeLen

float MRRemeshSettings::targetEdgeLen

the algorithm will try to keep the length of all edges close to this value, splitting the edges longer than targetEdgeLen, and then eliminating the edges shorter than targetEdgeLen

◆ useCurvature

bool MRRemeshSettings::useCurvature

This option in subdivision works best for natural surfaces, where all triangles are close to equilateral and have similar area, and no sharp edges in between


The documentation for this struct was generated from the following file: