mmg3d
|
Functions for ball of points computation. More...
#include "mmg3d.h"
Functions | |
int | _MMG5_boulevolp (MMG5_pMesh mesh, int start, int ip, int *list) |
int | _MMG5_boulenm (MMG5_pMesh mesh, int start, int ip, int iface, double n[3], double t[3]) |
int | _MMG5_boulernm (MMG5_pMesh mesh, int start, int ip, int *ng, int *nr) |
int | _MMG5_boulesurfvolp (MMG5_pMesh mesh, int start, int ip, int iface, int *listv, int *ilistv, int *lists, int *ilists, int isnm) |
int | _MMG5_bouletrid (MMG5_pMesh mesh, int start, int iface, int ip, int *il1, int *l1, int *il2, int *l2, int *ip0, int *ip1) |
static int | _MMG5_gettag (MMG5_pMesh mesh, int start, int ia, int16_t *tag, int *edg) |
int | _MMG5_settag (MMG5_pMesh mesh, int start, int ia, int16_t tag, int edg) |
int | _MMG5_deltag (MMG5_pMesh mesh, int start, int ia, int16_t tag) |
int | _MMG5_coquil (MMG5_pMesh mesh, int start, int ia, int *list) |
int | _MMG5_srcbdy (MMG5_pMesh mesh, int start, int ia) |
void | _MMG5_coquilFaceErrorMessage (MMG5_pMesh mesh, int k1, int k2) |
int | _MMG3D_coquilFaceFirstLoop (MMG5_pMesh mesh, int start, int na, int nb, char iface, char ia, int *list, int *ilist, int *it1, int *it2, int *piv, int *adj, char *hasadja, int *nbdy, int silent) |
void | _MMG3D_coquilFaceSecondLoopInit (MMG5_pMesh mesh, int piv, char *iface, int *i, int *list, int *ilist, int *it1, int *pradj, int *adj) |
int | _MMG5_coquilface (MMG5_pMesh mesh, int start, char iface, int ia, int *list, int *it1, int *it2, int silent) |
int16_t | _MMG5_coquilTravel (MMG5_pMesh mesh, int na, int nb, int *adj, int *piv, char *iface, int *i) |
void | _MMG5_openCoquilTravel (MMG5_pMesh mesh, int na, int nb, int *adj, int *piv, char *iface, int *i) |
Variables | |
MMG5_Info | info |
Functions for ball of points computation.
int _MMG3D_coquilFaceFirstLoop | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | na, | ||
int | nb, | ||
char | iface, | ||
char | ia, | ||
int * | list, | ||
int * | ilist, | ||
int * | it1, | ||
int * | it2, | ||
int * | piv, | ||
int * | adj, | ||
char * | hasadja, | ||
int * | nbdy, | ||
int | silent | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedron. |
na | global index of the 1st extremity of the edge whose shell is computed |
nb | global index of the 2d extremity of the edge whose shell is computed |
iface | index of the face from which we come. |
ia | index of edge whose shell is computed (in tetra). |
list | pointer toward the list of tetra in the shell (to fill). |
ilist | pointer toward the number of tetra in the shell (to fill). |
it1 | pointer toward the index of the 1st boundary face sharing ia |
it2 | pointer toward the index of the 2d boundary face sharing ia (to fill). |
adj | pointer toward the adjacent to treat in the shell (to update) |
hasadja | pointer toward 0 if we don't have adja through iface, 0 otherwise (to fill) |
nbdy | pointer toward the number of boundaries found minus 1 (to update) |
silent | if 1, print error message for more than 2 boundary triangles in the shell |
Travel in the shell of the edge until meeting the first tetra or reaching a tetra without adjacent. Fill it2 and list.
void _MMG3D_coquilFaceSecondLoopInit | ( | MMG5_pMesh | mesh, |
int | piv, | ||
char * | iface, | ||
int * | i, | ||
int * | list, | ||
int * | ilist, | ||
int * | it1, | ||
int * | pradj, | ||
int * | adj | ||
) |
mesh | pointer toward the mesh structure. |
piv | global index of the pivot. |
iface | index of the face from which we come. |
i | index of edge whose shell is computed (in tetra). |
list | pointer toward the list of tetra in the shell (to fill). |
ilist | pointer toward the number of tetra in the shell (to fill). |
it1 | pointer toward the index of the 1st boundary face sharing ia |
pradj | pointer toward the first tetra of the shell (to fill). |
adj | pointer toward the adjacent to treat in the shell (to update) |
Initialize the travel in the shell of the edge in reverse direction than in the coquilFaceFirstLoop function.
int _MMG5_boulenm | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | ip, | ||
int | iface, | ||
double | n[3], | ||
double | t[3] | ||
) |
mesh | pointer toward the mesh structure. |
start | tetra index. |
ip | point index. |
iface | face index. |
n | computed normal vector. |
t | computed tangent vector. |
Define normal and tangent vectors at a non manifold point (ip in start, supported by face iface), enumerating its (outer)surfacic ball.
int _MMG5_boulernm | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | ip, | ||
int * | ng, | ||
int * | nr | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedra. |
ip | local index of the point in the tetrahedra start. |
ng | pointer toward the number of ridges. |
nr | pointer toward the number of reference edges. |
Count the numer of ridges and reference edges incident to the vertex ip when ip is non-manifold.
int _MMG5_boulesurfvolp | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | ip, | ||
int | iface, | ||
int * | listv, | ||
int * | ilistv, | ||
int * | lists, | ||
int * | ilists, | ||
int | isnm | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetra. |
ip | index in start of the looked point. |
iface | index in start of the starting face. |
listv | pointer toward the computed volumic ball. |
ilistv | pointer toward the computed volumic ball size. |
lists | pointer toward the computed surfacic ball. |
ilists | pointer toward the computed surfacic ball size. |
isnm | is the looked point ip non-manifold? |
Compute the volumic ball of a SURFACE point p, as well as its surfacic ball, starting from tetra start, with point ip, and face if in tetra volumic ball. listv[k] = 4*number of tet + index of point surfacic ball. lists[k] = 4*number of tet + index of face.
int _MMG5_bouletrid | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | iface, | ||
int | ip, | ||
int * | il1, | ||
int * | l1, | ||
int * | il2, | ||
int * | l2, | ||
int * | ip0, | ||
int * | ip1 | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedron. |
ip | index of the looked ridge point. |
iface | index in start of the starting face. |
il1 | pointer toward the first ball size. |
l1 | pointer toward the first computed ball (associated to n_1's side). |
il2 | pointer toward the second ball size. |
l2 | pointer toward the second computed ball (associated to n_2's side). |
ip0 | index of the first extremity of the ridge. |
ip1 | index of the second extremity of the ridge. |
Computation of the two surface balls of a ridge point: the list l1 is associated to the normal of face iface. ip0 and ip1 are the indices of the 2 ending point of the ridge. Both lists are returned enumerated in direct order.
int _MMG5_boulevolp | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | ip, | ||
int * | list | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedra. |
ip | local index of the point in the tetrahedra start. |
list | pointer toward the list of the tetra in the volumic ball of ip. |
Fill the volumic ball (i.e. filled with tetrahedra) of point ip in tetra start. Results are stored under the form , kel = number of the tetra, jel = local index of p within kel.
int _MMG5_coquil | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | ia, | ||
int * | list | ||
) |
mesh | pointer toward the mesh structure |
start | index of the starting tetra |
ia | index of the edge |
list | list of tetra sharing the edge ia |
Find all tets sharing edge ia of tetra start.
int _MMG5_coquilface | ( | MMG5_pMesh | mesh, |
int | start, | ||
char | iface, | ||
int | ia, | ||
int * | list, | ||
int * | it1, | ||
int * | it2, | ||
int | silent | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedron. |
iface | index of the boundary face from which we come. |
ia | index of edge whose shell is computed (in tetra). |
list | pointer toward the list of tetra in the shell (to fill). |
it1 | pointer toward the index of the first boundary face sharing ia (to fill). |
it2 | pointer toward the index of the second boundary face sharing ia (to fill). |
silent | if 1, print error message for more than 2 boundary triangles in the shell |
Find all tets sharing edge ia of tetra start, and stores boundary faces when met. and
, iel = index of tetra, iface = index of face in tetra.
void _MMG5_coquilFaceErrorMessage | ( | MMG5_pMesh | mesh, |
int | k1, | ||
int | k2 | ||
) |
mesh | pointer toward the mesh structure. |
k1 | should contain a tetra index. |
k2 | should contain a tetra index different from k2. |
Print an error message if _MMG5_coquilFace detect a boundary topology problem.
int16_t _MMG5_coquilTravel | ( | MMG5_pMesh | mesh, |
int | na, | ||
int | nb, | ||
int * | adj, | ||
int * | piv, | ||
char * | iface, | ||
int * | i | ||
) |
mesh | pointer toward the mesh structure. |
na | global index of edge extremity. |
nb | global index of edge extremity. |
adj | starting tetrahedron at the begining and finish tet at the end. |
piv | global index of the vertex opposite to the travelling face (updated for the finish tet at the end). |
iface | previous traveling face of the tet (suspected to be boundary), updated. |
i | local index of the edge ![]() |
Travel around the edge from tetra adj and through the face piv.
|
inline |
mesh | pointer toward the mesh structure |
start | index of the starting tetra |
ia | index of the edge in tetra start that we want to modify |
tag | tag to remove |
Remove the tag tag of edge ia in tetra start by travelling its shell.
|
inlinestatic |
Get tag of edge ia in tetra start by travelling its shell until meeting a boundary face
void _MMG5_openCoquilTravel | ( | MMG5_pMesh | mesh, |
int | na, | ||
int | nb, | ||
int * | adj, | ||
int * | piv, | ||
char * | iface, | ||
int * | i | ||
) |
mesh | pointer toward the mesh structure. |
na | global index of edge extremity. |
nb | global index of edge extremity. |
adj | starting tetrahedron at the begining and finish tet at the end. |
piv | global index of the vertex opposite to the travelling face (updated for the finish tet at the end). |
iface | traveling face of the tet (suspected to be boundary), updated. |
i | local index of the edge ![]() |
Travel around the edge from tetra adj and through the face piv. The shell of the edge is open and the tetra adj has no neighbour through the face iface.
|
inline |
Set tag and edg of edge ia (if need be) in tetra start by travelling its shell
int _MMG5_srcbdy | ( | MMG5_pMesh | mesh, |
int | start, | ||
int | ia | ||
) |
Identify whether edge ia in start is a boundary edge by unfolding its shell