57  double         *n1,*n2,nt[3],ps,ps2,dd,ux,uy,uz,ll;
 
   72    memcpy(&pb->
b[i],p[i]->
c,3*
sizeof(
double));
 
   78    else if ( 
MG_EDG(p[i]->tag) ) {
 
   84      ps  = n1[0]*nt[0] + n1[1]*nt[1] + n1[2]*nt[2];
 
   85      ps2 = n2[0]*nt[0] + n2[1]*nt[1] + n2[2]*nt[2];
 
   86      if ( fabs(ps) > fabs(ps2) )
 
   87        memcpy(&pb->
n[i],n1,3*
sizeof(
double));
 
   89        memcpy(&pb->
n[i],n2,3*
sizeof(
double));
 
   90      memcpy(&pb->
t[i],p[i]->
n,3*
sizeof(
double));
 
   93      memcpy(&pb->
n[i],p[i]->
n,3*
sizeof(
double));
 
  101    ux = p[i2]->
c[0] - p[i1]->
c[0];
 
  102    uy = p[i2]->
c[1] - p[i1]->
c[1];
 
  103    uz = p[i2]->
c[2] - p[i1]->
c[2];
 
  105    ll = ux*ux + uy*uy + uz*uz;   
 
  113      if ( 
MS_SIN(p[i1]->tag) ) {
 
  115        pb->
b[2*i+3][0] = p[i1]->
c[0] + dd * ux;
 
  116        pb->
b[2*i+3][1] = p[i1]->
c[1] + dd * uy;
 
  117        pb->
b[2*i+3][2] = p[i1]->
c[2] + dd * uz;
 
  120        dd = (ux*pb->
t[i1][0] + uy*pb->
t[i1][1] + uz*pb->
t[i1][2]) / 3.0;
 
  121        pb->
b[2*i+3][0] = p[i1]->
c[0] + dd * pb->
t[i1][0];
 
  122        pb->
b[2*i+3][1] = p[i1]->
c[1] + dd * pb->
t[i1][1];
 
  123        pb->
b[2*i+3][2] = p[i1]->
c[2] + dd * pb->
t[i1][2];
 
  125      if ( 
MS_SIN(p[i2]->tag) ) {
 
  127        pb->
b[2*i+4][0] = p[i2]->
c[0] - dd * ux;
 
  128        pb->
b[2*i+4][1] = p[i2]->
c[1] - dd * uy;
 
  129        pb->
b[2*i+4][2] = p[i2]->
c[2] - dd * uz;
 
  132        dd = -(ux*pb->
t[i2][0] + uy*pb->
t[i2][1] + uz*pb->
t[i2][2]) / 3.0;
 
  133        pb->
b[2*i+4][0] = p[i2]->
c[0] + dd * pb->
t[i2][0];
 
  134        pb->
b[2*i+4][1] = p[i2]->
c[1] + dd * pb->
t[i2][1];
 
  135        pb->
b[2*i+4][2] = p[i2]->
c[2] + dd * pb->
t[i2][2];
 
  139      ps = ux*(pb->
t[i1][0]+pb->
t[i2][0]) + uy*(pb->
t[i1][1]+pb->
t[i2][1]) + uz*(pb->
t[i1][2]+pb->
t[i2][2]);
 
  141      pb->
t[i+3][0] = pb->
t[i1][0] + pb->
t[i2][0] - ps*ux;
 
  142      pb->
t[i+3][1] = pb->
t[i1][1] + pb->
t[i2][1] - ps*uy;
 
  143      pb->
t[i+3][2] = pb->
t[i1][2] + pb->
t[i2][2] - ps*uz;
 
  144      dd = pb->
t[i+3][0]*pb->
t[i+3][0] + pb->
t[i+3][1]*pb->
t[i+3][1] + pb->
t[i+3][2]*pb->
t[i+3][2];
 
  154      ps = ux*n1[0] + uy*n1[1] + uz*n1[2];
 
  155      pb->
b[2*i+3][0] = (2.0*p[i1]->
c[0] + p[i2]->
c[0] - ps*n1[0]) / 3.0;
 
  156      pb->
b[2*i+3][1] = (2.0*p[i1]->
c[1] + p[i2]->
c[1] - ps*n1[1]) / 3.0;
 
  157      pb->
b[2*i+3][2] = (2.0*p[i1]->
c[2] + p[i2]->
c[2] - ps*n1[2]) / 3.0;
 
  159      ps = -(ux*n2[0] + uy*n2[1] + uz*n2[2]);
 
  160      pb->
b[2*i+4][0] = (2.0*p[i2]->
c[0] + p[i1]->
c[0] - ps*n2[0]) / 3.0;
 
  161      pb->
b[2*i+4][1] = (2.0*p[i2]->
c[1] + p[i1]->
c[1] - ps*n2[1]) / 3.0;
 
  162      pb->
b[2*i+4][2] = (2.0*p[i2]->
c[2] + p[i1]->
c[2] - ps*n2[2]) / 3.0;
 
  166    ps = ux*(n1[0]+n2[0]) + uy*(n1[1]+n2[1]) + uz*(n1[2]+n2[2]);
 
  168    pb->
n[i+3][0] = n1[0] + n2[0] - ps*ux;
 
  169    pb->
n[i+3][1] = n1[1] + n2[1] - ps*uy;
 
  170    pb->
n[i+3][2] = n1[2] + n2[2] - ps*uz;
 
  171    dd = pb->
n[i+3][0]*pb->
n[i+3][0] + pb->
n[i+3][1]*pb->
n[i+3][1] + pb->
n[i+3][2]*pb->
n[i+3][2];
 
  181  for (i=0; i<3; i++) {
 
  183    pb->
b[9][0] -= dd * pb->
b[i][0];
 
  184    pb->
b[9][1] -= dd * pb->
b[i][1];
 
  185    pb->
b[9][2] -= dd * pb->
b[i][2];
 
  187  for (i=0; i<3; i++) {
 
  188    pb->
b[9][0] += 0.25 * (pb->
b[2*i+3][0] + pb->
b[2*i+4][0]);
 
  189    pb->
b[9][1] += 0.25 * (pb->
b[2*i+3][1] + pb->
b[2*i+4][1]);
 
  190    pb->
b[9][2] += 0.25 * (pb->
b[2*i+3][2] + pb->
b[2*i+4][2]);
 
  208  double    dd,u,v,w,ps,ux,uy,uz;
 
  211  memset(to,0,3*
sizeof(
double));
 
  217  for (i=0; i<3; i++) {
 
  218    o[i]  = pb->
b[0][i]*w*w*w + pb->
b[1][i]*u*u*u + pb->
b[2][i]*v*v*v \
 
  219      + 3.0 * (pb->
b[3][i]*u*u*v + pb->
b[4][i]*u*v*v + pb->
b[5][i]*w*v*v \
 
  220               + pb->
b[6][i]*w*w*v + pb->
b[7][i]*w*w*u + pb->
b[8][i]*w*u*u)\
 
  221      + 6.0 * pb->
b[9][i]*u*v*w;
 
  224    no[i] =        pb->
n[0][i]*w*w + pb->
n[1][i]*u*u + pb->
n[2][i]*v*v \
 
  225      + 2.0 * (pb->
n[3][i]*u*v + pb->
n[4][i]*v*w + pb->
n[5][i]*u*w);
 
  233    ux = pb->
b[2][0] - pb->
b[1][0];
 
  234    uy = pb->
b[2][1] - pb->
b[1][1];
 
  235    uz = pb->
b[2][2] - pb->
b[1][2];
 
  236    dd = ux*ux + uy*uy + uz*uz;
 
  256    ps = pb->
t[1][0]* pb->
t[2][0] + pb->
t[1][1]* pb->
t[2][1] + pb->
t[1][2]* pb->
t[2][2];
 
  258      to[0] = pb->
t[1][0]*u + pb->
t[2][0]*v;
 
  259      to[1] = pb->
t[1][1]*u + pb->
t[2][1]*v;
 
  260      to[2] = pb->
t[1][2]*u + pb->
t[2][2]*v;
 
  263      to[0] = -pb->
t[1][0]*u + pb->
t[2][0]*v;
 
  264      to[1] = -pb->
t[1][1]*u + pb->
t[2][1]*v;
 
  265      to[2] = -pb->
t[1][2]*u + pb->
t[2][2]*v;
 
  270    ux = pb->
b[2][0] - pb->
b[0][0];
 
  271    uy = pb->
b[2][1] - pb->
b[0][1];
 
  272    uz = pb->
b[2][2] - pb->
b[0][2];
 
  273    dd = ux*ux + uy*uy + uz*uz;
 
  293    ps = pb->
t[0][0]* pb->
t[2][0] + pb->
t[0][1]* pb->
t[2][1] + pb->
t[0][2]* pb->
t[2][2];
 
  295      to[0] = pb->
t[0][0]*w + pb->
t[2][0]*v;
 
  296      to[1] = pb->
t[0][1]*w + pb->
t[2][1]*v;
 
  297      to[2] = pb->
t[0][2]*w + pb->
t[2][2]*v;
 
  300      to[0] = -pb->
t[0][0]*w + pb->
t[2][0]*v;
 
  301      to[1] = -pb->
t[0][1]*w + pb->
t[2][1]*v;
 
  302      to[2] = -pb->
t[0][2]*w + pb->
t[2][2]*v;
 
  307    ux = pb->
b[1][0] - pb->
b[0][0];
 
  308    uy = pb->
b[1][1] - pb->
b[0][1];
 
  309    uz = pb->
b[1][2] - pb->
b[0][2];
 
  310    dd = ux*ux + uy*uy + uz*uz;
 
  330    ps = pb->
t[0][0]* pb->
t[1][0] + pb->
t[0][1]* pb->
t[1][1] + pb->
t[0][2]* pb->
t[1][2];
 
  332      to[0] = pb->
t[0][0]*w + pb->
t[1][0]*u;
 
  333      to[1] = pb->
t[0][1]*w + pb->
t[1][1]*u;
 
  334      to[2] = pb->
t[0][2]*w + pb->
t[1][2]*u;
 
  337      to[0] = -pb->
t[0][0]*w + pb->
t[1][0]*u;
 
  338      to[1] = -pb->
t[0][1]*w + pb->
t[1][1]*u;
 
  339      to[2] = -pb->
t[0][2]*w + pb->
t[1][2]*u;
 
  343  dd = no[0]*no[0] + no[1]*no[1] + no[2]*no[2];
 
  351  dd = to[0]*to[0] + to[1]*to[1] + to[2]*to[2];
 
int MMG5_mmgsBezierCP(MMG5_pMesh mesh, MMG5_Tria *pt, MMG5_pBezier pb, int8_t ori)
 
int MMGS_bezierInt(MMG5_pBezier pb, double uv[2], double o[3], double no[3], double to[3])
 
static const uint8_t MMG5_iprv2[3]
 
static const uint8_t MMG5_inxt2[6]
 
int MMG5_nortri(MMG5_pMesh mesh, MMG5_pTria pt, double *n)
 
Structure to store vertices of an MMG mesh.
 
Structure to store triangles of a MMG mesh.