Parameters structure for MR::fillHole
Structure has some options to control MR::fillHole.
More...
#include <MRMeshFillHole.h>
Public Types | |
enum class | MultipleEdgesResolveMode { None , Simple , Strong } |
Public Attributes | |
FillHoleMetric | metric |
bool | smoothBd { true } |
FaceBitSet * | outNewFaces { nullptr } |
If not nullptr accumulate new faces. | |
enum MR::FillHoleParams::MultipleEdgesResolveMode | Simple |
bool | makeDegenerateBand { false } |
int | maxPolygonSubdivisions { 20 } |
bool * | stopBeforeBadTriangulation { nullptr } |
Parameters structure for MR::fillHole
Structure has some options to control MR::fillHole.
|
strong |
If Strong makes additional efforts to avoid creating multiple edges, in some rare cases it is not possible (cases with extremely bad topology), if you faced one try to use MR::duplicateMultiHoleVertices before MR::fillHole
If Simple avoid creating edges that already exist in topology (default)
If None do not avoid multiple edges
Enumerator | |
---|---|
None | |
Simple | |
Strong |
bool MR::FillHoleParams::makeDegenerateBand { false } |
If true creates degenerate faces band around hole to have sharp angle visualization
int MR::FillHoleParams::maxPolygonSubdivisions { 20 } |
The maximum number of polygon subdivisions on a triangle and two smaller polygons, must be 2 or larger
FillHoleMetric MR::FillHoleParams::metric |
Specifies triangulation metric
default for MR::fillHole: getCircumscribedFillMetric
FaceBitSet* MR::FillHoleParams::outNewFaces { nullptr } |
If not nullptr accumulate new faces.
enum MR::FillHoleParams::MultipleEdgesResolveMode MR::FillHoleParams::Simple |
bool MR::FillHoleParams::smoothBd { true } |
If true, hole filling will minimize the sum of metrics including boundary edges, where one triangle was present before hole filling, and another is added during hole filling. This makes boundary edges same smooth as inner edges of the patch. If false, edge metric will not be applied to boundary edges, and the patch tends to make a sharper turn there.
bool* MR::FillHoleParams::stopBeforeBadTriangulation { nullptr } |
Input/output value, if it is present: returns true if triangulation was bad and do not actually fill hole, if triangulation is ok returns false; if it is not present fill hole trivially in case of bad triangulation, (or leaves bad triangulation, depending on metric)