Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
Functions for hash tables management and tetrahedra packing. More...
Go to the source code of this file.
Macros | |
#define | MMG5_KC 13 |
Functions | |
int | MMG5_paktet (MMG5_pMesh mesh) |
MMG5_int | MMG5_hashGetFace (MMG5_Hash *hash, MMG5_int ia, MMG5_int ib, MMG5_int ic) |
int | MMG3D_hashTetra (MMG5_pMesh mesh, int pack) |
int | MMG3D_hashPrism (MMG5_pMesh mesh) |
static int | MMG5_setEdgeNmTag (MMG5_pMesh mesh, MMG5_Hash *hash) |
static int | MMG5_setVertexNmTag (MMG5_pMesh mesh) |
int | MMG5_setNmTag (MMG5_pMesh mesh, MMG5_Hash *hash) |
int | MMG3D_hashTria (MMG5_pMesh mesh, MMG5_Hash *hash) |
int | MMG5_hashPop (MMG5_Hash *hash, MMG5_int a, MMG5_int b) |
int | MMG5_hTag (MMG5_HGeom *hash, MMG5_int a, MMG5_int b, MMG5_int ref, int16_t tag) |
int | MMG5_hPop (MMG5_HGeom *hash, MMG5_int a, MMG5_int b, MMG5_int *ref, int16_t *tag) |
int | MMG5_hGet (MMG5_HGeom *hash, MMG5_int a, MMG5_int b, MMG5_int *ref, int16_t *tag) |
int | MMG5_hEdge (MMG5_pMesh mesh, MMG5_HGeom *hash, MMG5_int a, MMG5_int b, MMG5_int ref, int16_t tag) |
int | MMG5_hNew (MMG5_pMesh mesh, MMG5_HGeom *hash, MMG5_int hsiz, MMG5_int hmax) |
int | MMG5_hGeom (MMG5_pMesh mesh) |
static int | MMG5_bdryTria (MMG5_pMesh mesh, MMG5_int ntmesh) |
int | MMG5_chkBdryTria (MMG5_pMesh mesh) |
int | MMG5_bdrySet (MMG5_pMesh mesh) |
int | MMG5_bdryUpdate (MMG5_pMesh mesh) |
int | MMG5_bdryPerm (MMG5_pMesh mesh) |
Variables | |
int8_t | ddb |
Functions for hash tables management and tetrahedra packing.
Definition in file hash_3d.c.
int MMG3D_hashPrism | ( | MMG5_pMesh | mesh | ) |
mesh | pointer toward the mesh structure. |
Create partial table of adjacency for prisms (prism prism).
Definition at line 238 of file hash_3d.c.
int MMG3D_hashTetra | ( | MMG5_pMesh | mesh, |
int | pack | ||
) |
mesh | pointer toward the mesh structure. |
pack | we pack the mesh at function begining if . |
Create table of adjacency. Set pack variable to 0 for a compact mesh and to 1 for a mesh that need to be packed.
Definition at line 122 of file hash_3d.c.
int MMG3D_hashTria | ( | MMG5_pMesh | mesh, |
MMG5_Hash * | hash | ||
) |
mesh | pointer toward the mesh structure. |
hash | Edges hash table. |
Create surface adjacency table. Allocate the edge hash table hash but don't free it.
Definition at line 749 of file hash_3d.c.
int MMG5_bdryPerm | ( | MMG5_pMesh | mesh | ) |
mesh | pointer toward the mesh structure. |
Make orientation of triangles compatible with tetra faces for external tria and with domain of max ref for interface tria.
Definition at line 2135 of file hash_3d.c.
int MMG5_bdrySet | ( | MMG5_pMesh | mesh | ) |
|
inlinestatic |
mesh | pointer to the mesh structure. |
ntmesh | number of boundary tria found in the mesh. |
Fill tria array with missing triangles:
Definition at line 1177 of file hash_3d.c.
int MMG5_bdryUpdate | ( | MMG5_pMesh | mesh | ) |
mesh |
Update tag and refs of tetra edges. If tetra is required, set the faces/edges to required.
Definition at line 2044 of file hash_3d.c.
int MMG5_chkBdryTria | ( | MMG5_pMesh | mesh | ) |
mesh | pointer toward the mesh structure. |
Step 1: scan the mesh and count the boundaries
Step 2: detect the extra boundaries (that will be ignored) provided by the user
Step 3: add the missing boundary triangles or, if the mesh contains prisms, set to required the triangles at interface betwen prisms and tet
Definition at line 1439 of file hash_3d.c.
MMG5_int MMG5_hashGetFace | ( | MMG5_Hash * | hash, |
MMG5_int | ia, | ||
MMG5_int | ib, | ||
MMG5_int | ic | ||
) |
int MMG5_hashPop | ( | MMG5_Hash * | hash, |
MMG5_int | a, | ||
MMG5_int | b | ||
) |
int MMG5_hEdge | ( | MMG5_pMesh | mesh, |
MMG5_HGeom * | hash, | ||
MMG5_int | a, | ||
MMG5_int | b, | ||
MMG5_int | ref, | ||
int16_t | tag | ||
) |
int MMG5_hGeom | ( | MMG5_pMesh | mesh | ) |
int MMG5_hGet | ( | MMG5_HGeom * | hash, |
MMG5_int | a, | ||
MMG5_int | b, | ||
MMG5_int * | ref, | ||
int16_t * | tag | ||
) |
int MMG5_hNew | ( | MMG5_pMesh | mesh, |
MMG5_HGeom * | hash, | ||
MMG5_int | hsiz, | ||
MMG5_int | hmax | ||
) |
int MMG5_hPop | ( | MMG5_HGeom * | hash, |
MMG5_int | a, | ||
MMG5_int | b, | ||
MMG5_int * | ref, | ||
int16_t * | tag | ||
) |
int MMG5_hTag | ( | MMG5_HGeom * | hash, |
MMG5_int | a, | ||
MMG5_int | b, | ||
MMG5_int | ref, | ||
int16_t | tag | ||
) |
hash | pointer toward the hash table in which edges are stored |
a | first edge extremity |
b | second edge extremity |
ref | reference to assign to the edge |
tag | tag to assign |
set tag to edge on geometry
Definition at line 825 of file hash_3d.c.
int MMG5_paktet | ( | MMG5_pMesh | mesh | ) |
|
inlinestatic |
mesh | pointer towar the mesh structure. |
hash | edges hash table. |
Set non-manifold tag at extremities of a non-manifold edge. Check if a non-manifold edge is at the interface of several distinct domains (thus we can't travel from a domain through another one by adjacency) and in this case, mark the edge and its extremities as required. Free the edge hash table hash if success.
Definition at line 456 of file hash_3d.c.
int MMG5_setNmTag | ( | MMG5_pMesh | mesh, |
MMG5_Hash * | hash | ||
) |
mesh | pointer towar the mesh structure. |
hash | edges hash table. |
Set tags to non-manifold edges and vertices. Not done before because we need the MMG5_xTetra table.
Definition at line 727 of file hash_3d.c.
|
inlinestatic |
mesh | pointer toward the mesh structure. |
Definition at line 624 of file hash_3d.c.
|
extern |
Definition at line 42 of file mmg3d1_delone.c.