MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMeshFixer.h File Reference
#include "MRMeshFwd.h"
#include "MRMeshPart.h"
#include "MRId.h"

Go to the source code of this file.

Classes

struct  MRMultipleEdge
 
struct  MRFixMeshDegeneraciesParams
 

Typedefs

typedef MR_EXTERN_C_BEGIN struct MRMultipleEdge MRMultipleEdge
 
typedef enum MRFixMeshDegeneraciesParamsMode MRFixMeshDegeneraciesParamsMode
 
typedef struct MRFixMeshDegeneraciesParams MRFixMeshDegeneraciesParams
 

Enumerations

enum  MRFixMeshDegeneraciesParamsMode { MRFixMeshDegeneraciesParamsModeDecimate , MRFixMeshDegeneraciesParamsModeRemesh , MRFixMeshDegeneraciesParamsModeRemeshPatch }
 

Functions

MRMESHC_API MRFaceBitSetmrFindHoleComplicatingFaces (MRMesh *mesh)
 
MRMESHC_API MRFaceBitSetmrFindDegenerateFaces (const MRMeshPart *mp, float criticalAspectRatio, MRProgressCallback cb, MRString **errorString)
 finds faces having aspect ratio >= criticalAspectRatio
 
MRMESHC_API MRUndirectedEdgeBitSetmrFindShortEdges (const MRMeshPart *mp, float criticalLength, MRProgressCallback cb, MRString **errorString)
 finds edges having length <= criticalLength
 
MRMESHC_API void fixMultipleEdges (MRMesh *mesh, const MRMultipleEdge *multipleEdges, size_t multipleEdgesNum)
 resolves given multiple edges, but splitting all but one edge in each group
 
MRMESHC_API void findAndFixMultipleEdges (MRMesh *mesh)
 finds and resolves multiple edges
 
MRMESHC_API MRFixMeshDegeneraciesParams mrFixMeshDegeneraciesParamsNew (void)
 
MRMESHC_API void mrFixMeshDegeneracies (MRMesh *mesh, const MRFixMeshDegeneraciesParams *params, MRString **errorString)
 Fixes degenerate faces and short edges in mesh (changes topology)
 

Typedef Documentation

◆ MRFixMeshDegeneraciesParams

typedef struct MRFixMeshDegeneraciesParams MRFixMeshDegeneraciesParams

◆ MRFixMeshDegeneraciesParamsMode

◆ MRMultipleEdge

typedef MR_EXTERN_C_BEGIN struct MRMultipleEdge MRMultipleEdge

Enumeration Type Documentation

◆ MRFixMeshDegeneraciesParamsMode

Enumerator
MRFixMeshDegeneraciesParamsModeDecimate 

use decimation only to fix degeneracies

MRFixMeshDegeneraciesParamsModeRemesh 

if decimation does not succeed, perform subdivision too

MRFixMeshDegeneraciesParamsModeRemeshPatch 

if both decimation and subdivision does not succeed, removes degenerate areas and fills occurred holes

Function Documentation

◆ findAndFixMultipleEdges()

MRMESHC_API void findAndFixMultipleEdges ( MRMesh * mesh)

finds and resolves multiple edges

◆ fixMultipleEdges()

MRMESHC_API void fixMultipleEdges ( MRMesh * mesh,
const MRMultipleEdge * multipleEdges,
size_t multipleEdgesNum )

resolves given multiple edges, but splitting all but one edge in each group

◆ mrFindDegenerateFaces()

MRMESHC_API MRFaceBitSet * mrFindDegenerateFaces ( const MRMeshPart * mp,
float criticalAspectRatio,
MRProgressCallback cb,
MRString ** errorString )

finds faces having aspect ratio >= criticalAspectRatio

◆ mrFindHoleComplicatingFaces()

MRMESHC_API MRFaceBitSet * mrFindHoleComplicatingFaces ( MRMesh * mesh)

returns all faces that complicate one of mesh holes; hole is complicated if it passes via one vertex more than once; deleting such faces simplifies the holes and makes them easier to fill

◆ mrFindShortEdges()

MRMESHC_API MRUndirectedEdgeBitSet * mrFindShortEdges ( const MRMeshPart * mp,
float criticalLength,
MRProgressCallback cb,
MRString ** errorString )

finds edges having length <= criticalLength

◆ mrFixMeshDegeneracies()

MRMESHC_API void mrFixMeshDegeneracies ( MRMesh * mesh,
const MRFixMeshDegeneraciesParams * params,
MRString ** errorString )

Fixes degenerate faces and short edges in mesh (changes topology)

◆ mrFixMeshDegeneraciesParamsNew()

MRMESHC_API MRFixMeshDegeneraciesParams mrFixMeshDegeneraciesParamsNew ( void )