MeshLib C++ Docs
Loading...
Searching...
No Matches
MRUniteManyMeshes.h
Go to the documentation of this file.
1#pragma once
2#include "MRMeshFwd.h"
3#include "MRMesh.h"
4#include "MRExpected.h"
5#include <string>
6
7namespace MR
8{
11
19
22{
24 bool useRandomShifts{ false };
25
29 bool fixDegenerations{ false };
30
33 float maxAllowedError{ 1e-5f };
34
36 unsigned int randomShiftsSeed{ 0 };
37
39 FaceBitSet* newFaces{ nullptr };
40
44
46 bool mergeOnFail{ false };
47
52 bool forceCut = false;
53
55};
56
60MRMESH_API Expected<Mesh> uniteManyMeshes( const std::vector<const Mesh*>& meshes,
61 const UniteManyMeshesParams& params = {} );
62
66{
68 float expansionRatio = 0.0f;
69
71 bool flipInverted = true;
72
76 bool trySelfBoolean = false;
77};
78
83MRMESH_API Expected<Mesh> uniteManyMeshesMutable( const std::vector<Mesh*>& meshes,
84 const UniteManyMeshesParams& params = {}, const UniteMeshNormalizationParams& normalizeParams = {} );
85
92 const UniteManyMeshesParams& params = {}, const UniteMeshNormalizationParams& normalizeParams = {} );
93
94}
#define MRMESH_API
Definition MRMeshFwd.h:82
std::function< bool(float)> ProgressCallback
Definition MRMeshFwd.h:751
@ Union
Definition MRBooleanOperation.h:35
float expansionRatio
If !=0 each mesh is expanded on 1+expRatio around its own centroid.
Definition MRUniteManyMeshes.h:68
Expected< Mesh > uniteManyMeshes(const std::vector< const Mesh * > &meshes, const UniteManyMeshesParams &params={})
bool fixDegenerations
Definition MRUniteManyMeshes.h:29
NestedComponenetsMode nestedComponentsMode
Definition MRUniteManyMeshes.h:43
bool mergeOnFail
If set - merges meshes instead of booleaning it if boolean operation fails.
Definition MRUniteManyMeshes.h:46
unsigned int randomShiftsSeed
Seed that is used for random shifts.
Definition MRUniteManyMeshes.h:36
NestedComponenetsMode
Mode of processing components.
Definition MRUniteManyMeshes.h:14
Expected< Mesh > uniteComponents(const Mesh &mesh, const UniteManyMeshesParams &params={}, const UniteMeshNormalizationParams &normalizeParams={})
bool trySelfBoolean
Definition MRUniteManyMeshes.h:76
tl::expected< T, E > Expected
Definition MRExpected.h:31
Expected< Mesh > uniteManyMeshesMutable(const std::vector< Mesh * > &meshes, const UniteManyMeshesParams &params={}, const UniteMeshNormalizationParams &normalizeParams={})
float maxAllowedError
Definition MRUniteManyMeshes.h:33
bool flipInverted
If enabled flips orientation of mesh with negative volume.
Definition MRUniteManyMeshes.h:71
ProgressCallback progressCb
Definition MRUniteManyMeshes.h:54
bool forceCut
Definition MRUniteManyMeshes.h:52
bool useRandomShifts
Apply random shift to each mesh, to prevent degenerations on coincident surfaces.
Definition MRUniteManyMeshes.h:24
FaceBitSet * newFaces
If set, the bitset will store new faces created by boolean operations.
Definition MRUniteManyMeshes.h:39
@ Remove
Default: separate nested meshes and remove them, just like union operation should do,...
Definition MRUniteManyMeshes.h:15
@ Merge
merge nested meshes, useful if input meshes are components of single object
Definition MRUniteManyMeshes.h:16
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRMesh.h:23
Parameters structure for uniteManyMeshes function.
Definition MRUniteManyMeshes.h:22
Definition MRUniteManyMeshes.h:66