MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::UniteManyMeshesParams Struct Reference

Parameters structure for uniteManyMeshes function. More...

#include <MRUniteManyMeshes.h>

Public Attributes

bool useRandomShifts { false }
 Apply random shift to each mesh, to prevent degenerations on coincident surfaces.
 
bool fixDegenerations { false }
 
float maxAllowedError { 1e-5f }
 
unsigned int randomShiftsSeed { 0 }
 Seed that is used for random shifts.
 
FaceBitSet * newFaces { nullptr }
 If set, the bitset will store new faces created by boolean operations.
 
NestedComponenetsMode nestedComponentsMode { NestedComponenetsMode::Remove }
 
bool mergeOnFail { false }
 If set - merges meshes instead of booleaning it if boolean operation fails.
 
bool forceCut = false
 
ProgressCallback progressCb
 

Detailed Description

Parameters structure for uniteManyMeshes function.

Member Data Documentation

◆ fixDegenerations

bool MR::UniteManyMeshesParams::fixDegenerations { false }

Try fix degenerations after each boolean step, to prevent boolean failure due to high amount of degenerated faces useful on meshes with many coincident surfaces (useRandomShifts used for same issue)

◆ forceCut

bool MR::UniteManyMeshesParams::forceCut = false

If this option is enabled boolean will try to cut meshes even if there are self-intersections in intersecting area it might work in some cases, but in general it might prevent fast error report and lead to other errors along the way

Warning
not recommended in most cases

◆ maxAllowedError

float MR::UniteManyMeshesParams::maxAllowedError { 1e-5f }

Max allowed random shifts in each direction, and max allowed deviation after degeneration fixing not used if both flags (useRandomShifts,fixDegenerations) are false

◆ mergeOnFail

bool MR::UniteManyMeshesParams::mergeOnFail { false }

If set - merges meshes instead of booleaning it if boolean operation fails.

◆ nestedComponentsMode

NestedComponenetsMode MR::UniteManyMeshesParams::nestedComponentsMode { NestedComponenetsMode::Remove }

By default function separate nested meshes and remove them, just like union operation should do read comment of NestedComponenetsMode enum for more information

◆ newFaces

FaceBitSet* MR::UniteManyMeshesParams::newFaces { nullptr }

If set, the bitset will store new faces created by boolean operations.

◆ progressCb

ProgressCallback MR::UniteManyMeshesParams::progressCb

◆ randomShiftsSeed

unsigned int MR::UniteManyMeshesParams::randomShiftsSeed { 0 }

Seed that is used for random shifts.

◆ useRandomShifts

bool MR::UniteManyMeshesParams::useRandomShifts { false }

Apply random shift to each mesh, to prevent degenerations on coincident surfaces.


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