mmgs
mmgs2.c File Reference

Create implicit surface in mesh. More...

#include "mmgs.h"
Include dependency graph for mmgs2.c:

Functions

static int _MMGS_ismaniball (MMG5_pMesh mesh, MMG5_pSol sol, int start, char istart)
 
static int _MMGS_snpval_ls (MMG5_pMesh mesh, MMG5_pSol sol)
 
int _MMGS_chkmaniball (MMG5_pMesh mesh, int start, char istart)
 
static int _MMGS_chkmanimesh (MMG5_pMesh mesh)
 
static int _MMGS_cuttri_ls (MMG5_pMesh mesh, MMG5_pSol sol)
 
static int _MMGS_setref_ls (MMG5_pMesh mesh, MMG5_pSol sol)
 
int _MMGS_mmgs2 (MMG5_pMesh mesh, MMG5_pSol sol)
 

Detailed Description

Create implicit surface in mesh.

Author
Charles Dapogny (UPMC)
Cécile Dobrzynski (Bx INP/Inria/UBordeaux)
Pascal Frey (UPMC)
Algiane Froehly (Inria/UBordeaux)
Version
5
Todo:
Doxygen documentation

Function Documentation

◆ _MMGS_chkmaniball()

int _MMGS_chkmaniball ( MMG5_pMesh  mesh,
int  start,
char  istart 
)
Parameters
meshpointer toward the mesh structure.
startindex of starting tria.
istartlocal index of point that we check (in tria start)
Returns
1 if the ball is manifold, 0 otherwise.

Check whether the ball of vertex i in tria start is manifold;

Warning
i inxt[i] is one edge of the implicit boundary.
Here is the caller graph for this function:

◆ _MMGS_chkmanimesh()

static int _MMGS_chkmanimesh ( MMG5_pMesh  mesh)
static
Parameters
meshpointer toward the mesh.
Returns
1 if the mesh is manifold, 0 otherwise.

Check whether the resulting two subdomains occupying mesh are manifold.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _MMGS_cuttri_ls()

static int _MMGS_cuttri_ls ( MMG5_pMesh  mesh,
MMG5_pSol  sol 
)
static
Parameters
meshpointer toward the mesh structure.
solpointer toward the level-set values.
Returns
1 if success, 0 otherwise.

Proceed to discretization of the implicit function carried by sol into mesh, once values of sol have been snapped/checked

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _MMGS_ismaniball()

static int _MMGS_ismaniball ( MMG5_pMesh  mesh,
MMG5_pSol  sol,
int  start,
char  istart 
)
static
Parameters
meshpointer toward the mesh structure.
solpointer toward the level-set values.
startindex of the starting tria
istartlocal index (inside the tria start) of the vertex that we check.
Returns
1 if success, 0 if fail

Check whether snapping the value of vertex istart of start to 0 exactly leads to a non manifold situation.

Warning
: we assume that the triangle start has vertex istart with value 0 and the other two with changing values.
Here is the caller graph for this function:

◆ _MMGS_mmgs2()

int _MMGS_mmgs2 ( MMG5_pMesh  mesh,
MMG5_pSol  sol 
)
Parameters
meshpointer toward the mesh structure.
solpointer toward the solution structure
Returns
0 if fail, 1 otherwise.

Create implicit surface in mesh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _MMGS_setref_ls()

static int _MMGS_setref_ls ( MMG5_pMesh  mesh,
MMG5_pSol  sol 
)
static
Parameters
meshpointer toward the mesh structure.
solpointer toward the level-set values.
Returns
1.

Set references to tris according to the sign of the level set function.

Here is the caller graph for this function:

◆ _MMGS_snpval_ls()

static int _MMGS_snpval_ls ( MMG5_pMesh  mesh,
MMG5_pSol  sol 
)
static
Parameters
meshpointer toward the mesh structure.
solpointer toward the level-set function.
Returns
1 if success, 0 if fail.

Snap values of the level set function very close to 0 to exactly 0, and prevent nonmanifold patterns from being generated.

Here is the call graph for this function:
Here is the caller graph for this function: