MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMeshFillHole.h File Reference
#include "MRMeshFwd.h"
#include "MRMeshMetrics.h"

Go to the source code of this file.

Classes

struct  MRFillHoleParams
 Parameters structure for mrFillHole
Structure has some options to control mrFillHole. More...
 
struct  MRStitchHolesParams
 Parameters structure for mrBuildCylinderBetweenTwoHoles
Structure has some options to control mrBuildCylinderBetweenTwoHoles. More...
 

Typedefs

typedef MR_EXTERN_C_BEGIN enum MRFillHoleMetricMultipleEdgesResolveMode MRFillHoleParamsMultipleEdgesResolveMode
 
typedef struct MRFillHoleParams MRFillHoleParams
 
typedef struct MRStitchHolesParams MRStitchHolesParams
 

Enumerations

enum  MRFillHoleMetricMultipleEdgesResolveMode { MRFillHoleMetricMultipleEdgesResolveModeNone = 0 , MRFillHoleMetricMultipleEdgesResolveModeSimple , MRFillHoleMetricMultipleEdgesResolveModeStrong }
 

Functions

MRMESHC_API MRFillHoleParams mrFillHoleParamsNew (void)
 
MRMESHC_API void mrFillHole (MRMesh *mesh, MREdgeId a, const MRFillHoleParams *params)
 Fills hole in mesh
.
 
MRMESHC_API void mrFillHoles (MRMesh *mesh, const MREdgeId *as, size_t asNum, const MRFillHoleParams *params)
 fill all holes given by their representative edges in
 
MRMESHC_API void mrBuildCylinderBetweenTwoHoles (MRMesh *mesh, MREdgeId a, MREdgeId b, const MRStitchHolesParams *params)
 Stitches two holes in Mesh
.
 

Typedef Documentation

◆ MRFillHoleParams

typedef struct MRFillHoleParams MRFillHoleParams

◆ MRFillHoleParamsMultipleEdgesResolveMode

◆ MRStitchHolesParams

typedef struct MRStitchHolesParams MRStitchHolesParams

Enumeration Type Documentation

◆ MRFillHoleMetricMultipleEdgesResolveMode

Enumerator
MRFillHoleMetricMultipleEdgesResolveModeNone 
MRFillHoleMetricMultipleEdgesResolveModeSimple 
MRFillHoleMetricMultipleEdgesResolveModeStrong 

Function Documentation

◆ mrBuildCylinderBetweenTwoHoles()

MRMESHC_API void mrBuildCylinderBetweenTwoHoles ( MRMesh * mesh,
MREdgeId a,
MREdgeId b,
const MRStitchHolesParams * params )

Stitches two holes in Mesh
.

Build cylindrical patch to fill space between two holes represented by one of their edges each,
default metric: ComplexStitchMetric

Parameters
meshmesh with hole
aEdgeId which represents 1st hole (should not have valid left FaceId)
bEdgeId which represents 2nd hole (should not have valid left FaceId)
paramsparameters of holes stitching
See also
mrFillHole
MRStitchHolesParams

◆ mrFillHole()

MRMESHC_API void mrFillHole ( MRMesh * mesh,
MREdgeId a,
const MRFillHoleParams * params )

Fills hole in mesh
.

Fills given hole represented by one of its edges (having no valid left face),
uses fillHoleTrivially if cannot fill hole without multiple edges,
default metric: CircumscribedFillMetric

Before
After

Next picture show, how newly generated faces can be smoothed MR::positionVertsSmoothly MR::subdivideMesh

Fill with smooth
Parameters
meshmesh with hole
aEdgeId which represents hole (should not have valid left FaceId)
paramsparameters of hole filling
See also
buildCylinderBetweenTwoHoles
fillHoleTrivially
FillHoleParams

◆ mrFillHoleParamsNew()

MRMESHC_API MRFillHoleParams mrFillHoleParamsNew ( void )

◆ mrFillHoles()

MRMESHC_API void mrFillHoles ( MRMesh * mesh,
const MREdgeId * as,
size_t asNum,
const MRFillHoleParams * params )

fill all holes given by their representative edges in

Parameters
as