MeshLib Documentation
Loading...
Searching...
No Matches
MRMeshFixer.h File Reference
#include "MRId.h"
#include "MRProgressCallback.h"
#include <cfloat>
#include "MRExpected.h"
#include <string>

Go to the source code of this file.

Namespaces

namespace  MR
 

Typedefs

using MR::MultipleEdge = VertPair
 finds multiple edges in the mesh
 

Functions

MRMESH_API int MR::duplicateMultiHoleVertices (Mesh &mesh)
 Duplicates all vertices having more than two boundary edges (and returns the number of duplications);.
 
MRMESH_API Expected< std::vector< MultipleEdge > > MR::findMultipleEdges (const MeshTopology &topology, ProgressCallback cb={})
 
bool MR::hasMultipleEdges (const MeshTopology &topology)
 
MRMESH_API void MR::fixMultipleEdges (Mesh &mesh, const std::vector< MultipleEdge > &multipleEdges)
 resolves given multiple edges, but splitting all but one edge in each group
 
MRMESH_API void MR::fixMultipleEdges (Mesh &mesh)
 finds and resolves multiple edges
 
MRMESH_API Expected< FaceBitSet > MR::findDegenerateFaces (const MeshPart &mp, float criticalAspectRatio=FLT_MAX, ProgressCallback cb={})
 finds faces having aspect ratio >= criticalAspectRatio
 
MRMESH_API Expected< UndirectedEdgeBitSet > MR::findShortEdges (const MeshPart &mp, float criticalLength, ProgressCallback cb={})
 finds edges having length <= criticalLength
 
MRMESH_API VertBitSet MR::findNRingVerts (const MeshTopology &topology, int n, const VertBitSet *region=nullptr)
 finds vertices in region with complete ring of N edges
 
MRMESH_API bool MR::isEdgeBetweenDoubleTris (const MeshTopology &topology, EdgeId e)
 returns true if the edge e has both left and right triangular faces and the degree of dest( e ) is 2
 
MRMESH_API EdgeId MR::eliminateDoubleTris (MeshTopology &topology, EdgeId e, FaceBitSet *region=nullptr)
 
MRMESH_API void MR::eliminateDoubleTrisAround (MeshTopology &topology, VertId v, FaceBitSet *region=nullptr)
 
MRMESH_API bool MR::isDegree3Dest (const MeshTopology &topology, EdgeId e)
 returns true if the destination of given edge has degree 3 and 3 incident triangles
 
MRMESH_API EdgeId MR::eliminateDegree3Dest (MeshTopology &topology, EdgeId e, FaceBitSet *region=nullptr)
 
MRMESH_API int MR::eliminateDegree3Vertices (MeshTopology &topology, VertBitSet &region, FaceBitSet *fs=nullptr)
 
MRMESH_API EdgeId MR::isVertexRepeatedOnHoleBd (const MeshTopology &topology, VertId v)
 
MRMESH_API VertBitSet MR::findRepeatedVertsOnHoleBd (const MeshTopology &topology)
 returns set bits for all vertices present on the boundary of a hole several times;
 
MRMESH_API FaceBitSet MR::findHoleComplicatingFaces (const Mesh &mesh)