#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:79
std::function< bool(float)> ProgressCallback
Definition MRMesh/MRMeshFwd.h:626
MRMESH_API Expected< Mesh > copySubdividePackMesh(const MeshPart &mp, float voxelSize, const ProgressCallback &cb={})
MRMESH_API int subdivideMesh(Mesh &mesh, const SubdivideSettings &settings={})
tl::expected< T, E > Expected
Definition MRExpected.h:59
Definition MRMesh/MRMesh.h:23
Definition MRMesh/MRMeshSubdivide.h:18
float maxTriAspectRatio
The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to th...
Definition MRMesh/MRMeshSubdivide.h:50
float maxEdgeLen
Subdivision is stopped when all edges inside or on the boundary of the region are not longer than thi...
Definition MRMesh/MRMeshSubdivide.h:20
std::function< bool(EdgeId e)> beforeEdgeSplit
this function is called each time edge (e) is going to split, if it returns false then this split wil...
Definition MRMesh/MRMeshSubdivide.h:69
bool projectOnOriginalMesh
if true, then every new vertex will be projected on the original mesh (before smoothing)
Definition MRMesh/MRMeshSubdivide.h:66
float minSharpDihedralAngle
Definition MRMesh/MRMeshSubdivide.h:63
FaceBitSet * region
Region on mesh to be subdivided, it is updated during the operation.
Definition MRMesh/MRMeshSubdivide.h:37
bool smoothMode
Definition MRMesh/MRMeshSubdivide.h:59
float criticalAspectRatioFlip
Definition MRMesh/MRMeshSubdivide.h:34
bool subdivideBorder
Definition MRMesh/MRMeshSubdivide.h:47
std::function< void(VertId)> onVertCreated
this function is called each time a new vertex has been created, but before the ring is made Delone
Definition MRMesh/MRMeshSubdivide.h:72
float maxAngleChangeAfterFlip
Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than ...
Definition MRMesh/MRMeshSubdivide.h:29
UndirectedEdgeBitSet * notFlippable
Edges specified by this bit-set will never be flipped, but they can be split so it is updated during ...
Definition MRMesh/MRMeshSubdivide.h:40
ProgressCallback progressCallback
callback to report algorithm progress and cancel it by user request
Definition MRMesh/MRMeshSubdivide.h:78
float maxSplittableTriAspectRatio
Definition MRMesh/MRMeshSubdivide.h:55
float maxDeviationAfterFlip
Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation.
Definition MRMesh/MRMeshSubdivide.h:26
VertBitSet * newVerts
New vertices appeared during subdivision will be added here.
Definition MRMesh/MRMeshSubdivide.h:43
std::function< void(EdgeId e1, EdgeId e)> onEdgeSplit
this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone
Definition MRMesh/MRMeshSubdivide.h:75
int maxEdgeSplits
Maximum number of edge splits allowed.
Definition MRMesh/MRMeshSubdivide.h:23