201int bouletrid(
MMG5_pMesh mesh,MMG5_int start,MMG5_int ip,
int *il1,MMG5_int *l1,
int *il2,MMG5_int *l2,MMG5_int *ip0,MMG5_int *ip1) {
204 MMG5_int idp,k,kold,*adja,iel,*list1,*list2,aux;
206 uint8_t i,iold,i1,i2,ipn;
207 double *n1,*n2,nt[3],ps1,ps2;
209 pt = &
mesh->tria[start];
210 if ( !
MG_EOK(pt) )
return 0;
213 ppt = &
mesh->point[idp];
219 n1 = &(
mesh->xpoint[ppt->
xp].n1[0]);
220 n2 = &(
mesh->xpoint[ppt->
xp].n2[0]);
221 ps1 = n1[0]*nt[0] + n1[1]*nt[1] + n1[2]*nt[2];
222 ps2 = n2[0]*nt[0] + n2[1]*nt[1] + n2[2]*nt[2];
224 if ( fabs(ps1) < fabs(ps2) ) {
243 adja = &
mesh->adja[3*(k-1)+1];
255 while ( k && !(pt->
tag[i1] &
MG_GEO) && k != start );
266 adja = &
mesh->adja[3*(k-1)+1];
268 list1[(*ilist1)] = 3*k+i;
280 for (k=0; k<(*ilist1) / 2;k++) {
282 list1[k] = list1[*ilist1-1-k];
283 list1[*ilist1-1-k] = aux;
287 if ( !iel )
return 1;
294 adja = &
mesh->adja[3*(k-1)+1];
296 list2[*ilist2] = 3*k+i;
int bouletrid(MMG5_pMesh mesh, MMG5_int start, MMG5_int ip, int *il1, MMG5_int *l1, int *il2, MMG5_int *l2, MMG5_int *ip0, MMG5_int *ip1)