Chaste Commit::8b5d759ac2eb95e67ae57699734101efccb0a0a9
triangle.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <sys/time.h>
+ Include dependency graph for triangle.cpp:

Go to the source code of this file.

Classes

struct  otri
 
struct  osub
 
struct  badsubseg
 
struct  badtriang
 
struct  flipstacker
 
struct  event
 
struct  splaynode
 
struct  memorypool
 
struct  mesh
 
struct  behavior
 

Macros

#define REAL   double
 
#define INEXACT   /* Nothing */
 
#define FILENAMESIZE   2048
 
#define INPUTLINESIZE   1024
 
#define TRIPERBLOCK   4092 /* Number of triangles allocated at once. */
 
#define SUBSEGPERBLOCK   508 /* Number of subsegments allocated at once. */
 
#define VERTEXPERBLOCK   4092 /* Number of vertices allocated at once. */
 
#define VIRUSPERBLOCK   1020 /* Number of virus triangles allocated at once. */
 
#define BADSUBSEGPERBLOCK   252
 
#define BADTRIPERBLOCK   4092
 
#define FLIPSTACKERPERBLOCK   252
 
#define SPLAYNODEPERBLOCK   508
 
#define INPUTVERTEX   0
 
#define SEGMENTVERTEX   1
 
#define FREEVERTEX   2
 
#define DEADVERTEX   -32768
 
#define UNDEADVERTEX   -32767
 
#define VOID   int
 
#define SAMPLEFACTOR   11
 
#define SAMPLERATE   10
 
#define PI   3.141592653589793238462643383279502884197169399375105820974944592308
 
#define SQUAREROOTTWO   1.4142135623730950488016887242096980785696718753769480732
 
#define ONETHIRD   0.333333333333333333333333333333333333333333333333333333333333
 
#define decode(ptr, otri)
 
#define encode(otri)    (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient)
 
#define sym(otri1, otri2)
 
#define symself(otri)
 
#define lnext(otri1, otri2)
 
#define lnextself(otri)    (otri).orient = plus1mod3[(otri).orient]
 
#define lprev(otri1, otri2)
 
#define lprevself(otri)    (otri).orient = minus1mod3[(otri).orient]
 
#define onext(otri1, otri2)
 
#define onextself(otri)
 
#define oprev(otri1, otri2)
 
#define oprevself(otri)
 
#define dnext(otri1, otri2)
 
#define dnextself(otri)
 
#define dprev(otri1, otri2)
 
#define dprevself(otri)
 
#define rnext(otri1, otri2)
 
#define rnextself(otri)
 
#define rprev(otri1, otri2)
 
#define rprevself(otri)
 
#define org(otri, vertexptr)    vertexptr = (vertex) (otri).tri[plus1mod3[(otri).orient] + 3]
 
#define dest(otri, vertexptr)    vertexptr = (vertex) (otri).tri[minus1mod3[(otri).orient] + 3]
 
#define apex(otri, vertexptr)    vertexptr = (vertex) (otri).tri[(otri).orient + 3]
 
#define setorg(otri, vertexptr)    (otri).tri[plus1mod3[(otri).orient] + 3] = (triangle) vertexptr
 
#define setdest(otri, vertexptr)    (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr
 
#define setapex(otri, vertexptr)    (otri).tri[(otri).orient + 3] = (triangle) vertexptr
 
#define bond(otri1, otri2)
 
#define dissolve(otri)    (otri).tri[(otri).orient] = (triangle) m->dummytri
 
#define otricopy(otri1, otri2)
 
#define otriequal(otri1, otri2)
 
#define infect(otri)
 
#define uninfect(otri)
 
#define infected(otri)    (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l)
 
#define elemattribute(otri, attnum)    ((REAL *) (otri).tri)[m->elemattribindex + (attnum)]
 
#define setelemattribute(otri, attnum, value)    ((REAL *) (otri).tri)[m->elemattribindex + (attnum)] = value
 
#define areabound(otri)   ((REAL *) (otri).tri)[m->areaboundindex]
 
#define setareabound(otri, value)    ((REAL *) (otri).tri)[m->areaboundindex] = value
 
#define deadtri(tria)   ((tria)[1] == (triangle) NULL)
 
#define killtri(tria)
 
#define sdecode(sptr, osub)
 
#define sencode(osub)    (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient)
 
#define ssym(osub1, osub2)
 
#define ssymself(osub)    (osub).ssorient = 1 - (osub).ssorient
 
#define spivot(osub1, osub2)
 
#define spivotself(osub)
 
#define snext(osub1, osub2)
 
#define snextself(osub)
 
#define sorg(osub, vertexptr)    vertexptr = (vertex) (osub).ss[2 + (osub).ssorient]
 
#define sdest(osub, vertexptr)    vertexptr = (vertex) (osub).ss[3 - (osub).ssorient]
 
#define setsorg(osub, vertexptr)    (osub).ss[2 + (osub).ssorient] = (subseg) vertexptr
 
#define setsdest(osub, vertexptr)    (osub).ss[3 - (osub).ssorient] = (subseg) vertexptr
 
#define segorg(osub, vertexptr)    vertexptr = (vertex) (osub).ss[4 + (osub).ssorient]
 
#define segdest(osub, vertexptr)    vertexptr = (vertex) (osub).ss[5 - (osub).ssorient]
 
#define setsegorg(osub, vertexptr)    (osub).ss[4 + (osub).ssorient] = (subseg) vertexptr
 
#define setsegdest(osub, vertexptr)    (osub).ss[5 - (osub).ssorient] = (subseg) vertexptr
 
#define mark(osub)   (* (int *) ((osub).ss + 8))
 
#define setmark(osub, value)    * (int *) ((osub).ss + 8) = value
 
#define sbond(osub1, osub2)
 
#define sdissolve(osub)    (osub).ss[(osub).ssorient] = (subseg) m->dummysub
 
#define subsegcopy(osub1, osub2)
 
#define subsegequal(osub1, osub2)
 
#define deadsubseg(sub)   ((sub)[1] == (subseg) NULL)
 
#define killsubseg(sub)
 
#define tspivot(otri, osub)
 
#define stpivot(osub, otri)
 
#define tsbond(otri, osub)
 
#define tsdissolve(otri)    (otri).tri[6 + (otri).orient] = (triangle) m->dummysub
 
#define stdissolve(osub)    (osub).ss[6 + (osub).ssorient] = (subseg) m->dummytri
 
#define vertexmark(vx)   ((int *) (vx))[m->vertexmarkindex]
 
#define setvertexmark(vx, value)    ((int *) (vx))[m->vertexmarkindex] = value
 
#define vertextype(vx)   ((int *) (vx))[m->vertexmarkindex + 1]
 
#define setvertextype(vx, value)    ((int *) (vx))[m->vertexmarkindex + 1] = value
 
#define vertex2tri(vx)   ((triangle *) (vx))[m->vertex2triindex]
 
#define setvertex2tri(vx, value)    ((triangle *) (vx))[m->vertex2triindex] = value
 
#define STARTINDEX   1
 
#define Absolute(a)   ((a) >= 0.0 ? (a) : -(a))
 
#define Fast_Two_Sum_Tail(a, b, x, y)
 
#define Fast_Two_Sum(a, b, x, y)
 
#define Two_Sum_Tail(a, b, x, y)
 
#define Two_Sum(a, b, x, y)
 
#define Two_Diff_Tail(a, b, x, y)
 
#define Two_Diff(a, b, x, y)
 
#define Split(a, ahi, alo)
 
#define Two_Product_Tail(a, b, x, y)
 
#define Two_Product(a, b, x, y)
 
#define Two_Product_Presplit(a, b, bhi, blo, x, y)
 
#define Square_Tail(a, x, y)
 
#define Square(a, x, y)
 
#define Two_One_Sum(a1, a0, b, x2, x1, x0)
 
#define Two_One_Diff(a1, a0, b, x2, x1, x0)
 
#define Two_Two_Sum(a1, a0, b1, b0, x3, x2, x1, x0)
 
#define Two_Two_Diff(a1, a0, b1, b0, x3, x2, x1, x0)
 
#define Two_One_Product(a1, a0, b, x3, x2, x1, x0)
 

Typedefs

typedef REAL ** triangle
 
typedef REAL ** subseg
 
typedef REAL * vertex
 

Enumerations

enum  locateresult { INTRIANGLE , ONEDGE , ONVERTEX , OUTSIDE }
 
enum  insertvertexresult { SUCCESSFULVERTEX , ENCROACHINGVERTEX , VIOLATINGVERTEX , DUPLICATEVERTEX }
 
enum  finddirectionresult { WITHIN , LEFTCOLLINEAR , RIGHTCOLLINEAR }
 

Functions

char * readline ()
 
char * findfield ()
 
int triunsuitable (triorg, tridest, triapex, area) vertex triorg
 
 if (maxlen > 0.05 *(triorg[0] *triorg[0]+triorg[1] *triorg[1])+0.02)
 
void triexit (status) int status
 
VOID * trimalloc (size) int size
 
 if (memptr==(VOID *) NULL)
 
 return (memptr)
 
void trifree (memptr) VOID *memptr
 
void syntax ()
 
void info ()
 
void internalerror ()
 
void parsecommandline (argc, argv, b) int argc
 
 for (i=STARTINDEX;i< argc;i++)
 
 if (b->innodefilename[0]=='\0')
 
 if (!strcmp(&b->innodefilename[strlen(b->innodefilename) - 5], ".node"))
 
 if (!strcmp(&b->innodefilename[strlen(b->innodefilename) - 5], ".poly"))
 
 if (!strcmp(&b->innodefilename[strlen(b->innodefilename) - 4], ".ele"))
 
 if (!strcmp(&b->innodefilename[strlen(b->innodefilename) - 5], ".area"))
 
 if (b->goodangle==1.0)
 
b goodangle * if (b->refine &&b->noiterationnum)
 
 if (!b->refine &&!b->poly)
 
 if (b->refine||!b->poly)
 
 if (b->weighted &&(b->poly||b->quality))
 
 if (b->jettison &&b->nonodewritten &&!b->quiet)
 
 strcpy (b->inpolyfilename, b->innodefilename)
 
 strcpy (workstring, b->innodefilename)
 
 while (workstring[j] !='\0')
 
 if (increment > 0)
 
else if (increment==0)
 
 sprintf (b->outnodefilename, workstring, meshnumber+1)
 
 strcat (b->outnodefilename, ".node")
 
 strcat (b->outpolyfilename, ".poly")
 
 strcat (b->outelefilename, ".ele")
 
 strcat (b->edgefilename, ".edge")
 
 strcat (b->vnodefilename, ".v.node")
 
 strcat (b->vedgefilename, ".v.edge")
 
 strcat (b->neighborfilename, ".neigh")
 
 strcat (b->offfilename, ".off")
 
 strcat (b->areafilename, ".area")
 
void printtriangle (m, b, t) struct mesh *m
 
 printf ("triangle x%lx with orientation %d:\n",(unsigned long) t->tri, t->orient)
 
 decode (t->tri[0], printtri)
 
 if (printtri.tri==m->dummytri)
 
 decode (t->tri[1], printtri)
 
 decode (t->tri[2], printtri)
 
 if (printvertex==(vertex) NULL) printf(" Origin[%d]
 
called is pointed to *void dummyinit (m, b, trianglebytes, subsegbytes) struct mesh *m
 
void initializevertexpool (m, b) struct mesh *m
 
poolinit & m (REAL)
 
void initializetrisubpools (m, b) struct mesh *m
 
else if (m->eextras+b->regionattrib > 0)
 
 if ((b->voronoi||b->neighbors) &&(trisize< 6 *sizeof(triangle)+sizeof(int)))
 
poolinit & m (2 *m->invertices - 2) > TRIPERBLOCK ?(2 *m->invertices - 2) :TRIPERBLOCK, 4
 
void triangledealloc (m, dyingtriangle) struct mesh *m
 
pooldealloc & m (VOID *) dyingtriangle
 
triangle * triangletraverse (m) struct mesh *m
 
 if (newtriangle==(triangle *) NULL)
 
 while (deadtri(newtriangle))
 
void subsegdealloc (m, dyingsubseg) struct mesh *m
 
subseg * subsegtraverse (m) struct mesh *m
 
 if (newsubseg==(subseg *) NULL)
 
 while (deadsubseg(newsubseg))
 
void vertexdealloc (m, dyingvertex) struct mesh *m
 
vertex vertextraverse (m) struct mesh *m
 
 if (newvertex==(vertex) NULL)
 
 while (vertextype(newvertex)==DEADVERTEX)
 
void badsubsegdealloc (m, dyingseg) struct mesh *m
 
struct badsubsegbadsubsegtraverse (m) struct mesh *m
 
 if (newseg==(struct badsubseg *) NULL)
 
 while (newseg->subsegorg==(vertex) NULL)
 
vertex getvertex (m, b, number) struct mesh *m
 
 if (current+m->vertices.itemsfirstblock<=number)
 
return() vertex (foundvertex+m->vertices.itembytes *(number - current))
 
void triangledeinit (m, b) struct mesh *m
 
 trifree ((VOID *) m->dummytribase)
 
void maketriangle (m, b, newotri) struct mesh *m
 
 for (i=0;i< m->eextras;i++)
 
void makesubseg (m, newsubseg) struct mesh *m
 
void exactinit ()
 
int fast_expansion_sum_zeroelim (elen, e, flen, f, h) int elen
 
 if ((fnow > enow)==(fnow > -enow))
 
 if ((eindex< elen) &&(findex< flen))
 
 while (eindex< elen)
 
 if ((Q !=0.0)||(hindex==0))
 
int scale_expansion_zeroelim (elen, e, b, h) int elen
 
 Split (b, bhi, blo)
 
 Two_Product_Presplit (e[0], b, bhi, blo, Q, hh)
 
 if (hh !=0)
 
REAL estimate (elen, e) int elen
 
REAL counterclockwiseadapt (pa, pb, pc, detsum) vertex pa
 
 Two_Product (acx, bcy, detleft, detlefttail)
 
 Two_Product (acy, bcx, detright, detrighttail)
 
 Two_Two_Diff (detleft, detlefttail, detright, detrighttail, B3, B[2], B[1], B[0])
 
 if ((det >=errbound)||(-det >=errbound))
 
 Two_Diff_Tail (pa[0], pc[0], acx, acxtail)
 
 Two_Diff_Tail (pb[0], pc[0], bcx, bcxtail)
 
 Two_Diff_Tail (pa[1], pc[1], acy, acytail)
 
 Two_Diff_Tail (pb[1], pc[1], bcy, bcytail)
 
 if ((acxtail==0.0) &&(acytail==0.0) &&(bcxtail==0.0) &&(bcytail==0.0))
 
 Two_Product (acxtail, bcy, s1, s0)
 
 Two_Product (acytail, bcx, t1, t0)
 
 Two_Two_Diff (s1, s0, t1, t0, u3, u[2], u[1], u[0])
 
 Two_Product (acx, bcytail, s1, s0)
 
 Two_Product (acy, bcxtail, t1, t0)
 
 Two_Product (acxtail, bcytail, s1, s0)
 
 Two_Product (acytail, bcxtail, t1, t0)
 
 return (D[Dlength - 1])
 
REAL counterclockwise (m, b, pa, pb, pc) struct mesh *m
 
 if (detleft > 0.0)
 
else if (detleft< 0.0)
 
REAL incircleadapt (pa, pb, pc, pd, permanent) vertex pa
 
 Two_Product (bdx, cdy, bdxcdy1, bdxcdy0)
 
 Two_Product (cdx, bdy, cdxbdy1, cdxbdy0)
 
 Two_Two_Diff (bdxcdy1, bdxcdy0, cdxbdy1, cdxbdy0, bc3, bc[2], bc[1], bc[0])
 
 Two_Product (cdx, ady, cdxady1, cdxady0)
 
 Two_Product (adx, cdy, adxcdy1, adxcdy0)
 
 Two_Two_Diff (cdxady1, cdxady0, adxcdy1, adxcdy0, ca3, ca[2], ca[1], ca[0])
 
 Two_Product (adx, bdy, adxbdy1, adxbdy0)
 
 Two_Product (bdx, ady, bdxady1, bdxady0)
 
 Two_Two_Diff (adxbdy1, adxbdy0, bdxady1, bdxady0, ab3, ab[2], ab[1], ab[0])
 
 Two_Diff_Tail (pa[0], pd[0], adx, adxtail)
 
 Two_Diff_Tail (pa[1], pd[1], ady, adytail)
 
 Two_Diff_Tail (pb[0], pd[0], bdx, bdxtail)
 
 Two_Diff_Tail (pb[1], pd[1], bdy, bdytail)
 
 Two_Diff_Tail (pc[0], pd[0], cdx, cdxtail)
 
 Two_Diff_Tail (pc[1], pd[1], cdy, cdytail)
 
 if ((adxtail==0.0) &&(bdxtail==0.0) &&(cdxtail==0.0) &&(adytail==0.0) &&(bdytail==0.0) &&(cdytail==0.0))
 
 if ((bdxtail !=0.0)||(bdytail !=0.0)||(cdxtail !=0.0)||(cdytail !=0.0))
 
 if ((cdxtail !=0.0)||(cdytail !=0.0)||(adxtail !=0.0)||(adytail !=0.0))
 
 if ((adxtail !=0.0)||(adytail !=0.0)||(bdxtail !=0.0)||(bdytail !=0.0))
 
 if (adxtail !=0.0)
 
 if (adytail !=0.0)
 
 if (bdxtail !=0.0)
 
 if (bdytail !=0.0)
 
 if (cdxtail !=0.0)
 
 if (cdytail !=0.0)
 
 if ((adxtail !=0.0)||(adytail !=0.0))
 
 if ((bdxtail !=0.0)||(bdytail !=0.0))
 
 if ((cdxtail !=0.0)||(cdytail !=0.0))
 
REAL incircle (m, b, pa, pb, pc, pd) struct mesh *m
 
 if ((det > errbound)||(-det > errbound))
 
REAL orient3dadapt (pa, pb, pc, pd, aheight, bheight, cheight, dheight, permanent) vertex pa
 
 Two_Diff_Tail (aheight, dheight, adheight, adheighttail)
 
 Two_Diff_Tail (bheight, dheight, bdheight, bdheighttail)
 
 Two_Diff_Tail (cheight, dheight, cdheight, cdheighttail)
 
 if ((adxtail==0.0) &&(bdxtail==0.0) &&(cdxtail==0.0) &&(adytail==0.0) &&(bdytail==0.0) &&(cdytail==0.0) &&(adheighttail==0.0) &&(bdheighttail==0.0) &&(cdheighttail==0.0))
 
 if (adxtail==0.0)
 
 if (adheighttail !=0.0)
 
 if (bdheighttail !=0.0)
 
 if (cdheighttail !=0.0)
 
REAL orient3d (m, b, pa, pb, pc, pd, aheight, bheight, cheight, dheight) struct mesh *m
 
REAL nonregular (m, b, pa, pb, pc, pd) struct mesh *m
 
 if ((dodist< aodist) &&(dodist< dadist))
 
void triangleinit (m) struct mesh *m
 
unsigned long randomnation (choices) unsigned int choices
 
return randomseed (714025l/choices+1)
 
void checkmesh (m, b) struct mesh *m
 
 if (!b->quiet)
 
 while (triangleloop.tri !=(triangle *) NULL)
 
 if (horrors==0)
 
void checkdelaunay (m, b) struct mesh *m
 
void enqueuebadtriang (m, b, badtri) struct mesh *m
 
 if (b->verbose > 2)
 
 if (badtri->key >=1.0)
 
 while (length > 2.0)
 
 if (posexponent)
 
 if (m->queuefront[queuenumber]==(struct badtriang *) NULL)
 
void enqueuebadtri (m, b, enqtri, minedge, enqapex, enqorg, enqdest) struct mesh *m
 
 enqueuebadtriang (m, b, newbad)
 
struct badtriangdequeuebadtriang (m) struct mesh *m
 
 if (result==m->queuetail[m->firstnonemptyq])
 
int checkseg4encroach (m, b, testsubseg) struct mesh *m
 
 if (neighbortri.tri !=m->dummytri)
 
 stpivot (testsym, neighbortri)
 
 if (encroached &&(!b->nobisect||((b->nobisect==1) &&(sides==2))))
 
void testtriangle (m, b, testtri) struct mesh *m
 
 if ((apexlen< orglen) &&(apexlen< destlen))
 
 if (b->vararea||b->fixedarea||b->usertest)
 
 if (angle > b->goodangle)
 
void makevertexmap (m, b) struct mesh *m
 
enum locateresult preciselocate (m, b, searchpoint, searchtri, stopatsubsegment) struct mesh *m
 
 while (1)
 
enum locateresult locate (m, b, searchpoint, searchtri) struct mesh *m
 
 if (m->recenttri.tri !=(triangle *) NULL)
 
 while (SAMPLEFACTOR *m->samples *m->samples *m->samples< m->triangles.items)
 
 while (totalsamplesleft > 0)
 
 if ((torg[0]==searchpoint[0]) &&(torg[1]==searchpoint[1]))
 
 if ((tdest[0]==searchpoint[0]) &&(tdest[1]==searchpoint[1]))
 
else if (ahead==0.0)
 
return preciselocate (m, b, searchpoint, searchtri, 0)
 
void insertsubseg (m, b, tri, subsegmark) struct mesh *m
 
 if (vertexmark(triorg)==0)
 
 if (vertexmark(tridest)==0)
 
 if (newsubseg.ss==m->dummysub)
 
 apex (top, farvertex)
 
 lprev (top, topleft)
 
 sym (topleft, toplcasing)
 
 lnext (top, topright)
 
 sym (topright, toprcasing)
 
 sym (botleft, botlcasing)
 
 sym (botright, botrcasing)
 
 bond (topleft, botlcasing)
 
 bond (botleft, botrcasing)
 
 bond (botright, toprcasing)
 
 bond (topright, toplcasing)
 
 if (m->checksegments)
 
 setorg (top, botvertex)
 
 setdest (top, farvertex)
 
 setapex (top, leftvertex)
 
void unflip (m, b, flipedge) struct mesh *m
 
 bond (topleft, toprcasing)
 
 bond (botleft, toplcasing)
 
 bond (botright, botlcasing)
 
 bond (topright, botrcasing)
 
 setorg (top, farvertex)
 
 setdest (top, botvertex)
 
 setapex (top, rightvertex)
 
enum insertvertexresult insertvertex (m, b, newvertex, searchtri, splitseg, segmentflaws, triflaws) struct mesh *m
 
 if (b->verbose > 1)
 
 if (splitseg==(struct osub *) NULL)
 
 if (intersect==ONVERTEX)
 
 if ((intersect==ONEDGE)||(intersect==OUTSIDE))
 
 lprev (horiz, botright)
 
 maketriangle (m, b, &newbotleft)
 
 org (horiz, rightvertex)
 
 dest (horiz, leftvertex)
 
 apex (horiz, botvertex)
 
 setorg (newbotleft, leftvertex)
 
 setdest (newbotleft, botvertex)
 
 setapex (newbotleft, newvertex)
 
 setorg (newbotright, botvertex)
 
 setdest (newbotright, rightvertex)
 
 setapex (newbotright, newvertex)
 
 setapex (horiz, newvertex)
 
 bond (newbotleft, botlcasing)
 
 bond (newbotright, botrcasing)
 
 lnextself (newbotleft)
 
 lprevself (newbotright)
 
 bond (newbotleft, newbotright)
 
 bond (botleft, newbotleft)
 
 bond (botright, newbotright)
 
 org (horiz, first)
 
void triangulatepolygon (m, b, firstedge, lastedge, edgecount, doflip, triflaws) struct mesh *m
 
 dest (besttri, bestvertex)
 
 otricopy (besttri, testtri)
 
 if (bestnumber > 1)
 
 if (doflip)
 
 otricopy (besttri, *lastedge)
 
void deletevertex (m, b, deltri) struct mesh *m
 
 vertexdealloc (m, delvertex)
 
 while (!otriequal(*deltri, countingtri))
 
 if (edgecount > 3)
 
 sym (lefttri, leftcasing)
 
 oprev (deltriright, righttri)
 
 sym (righttri, rightcasing)
 
 bond (deltriright, rightcasing)
 
 tspivot (lefttri, leftsubseg)
 
 if (leftsubseg.ss !=m->dummysub)
 
 tspivot (righttri, rightsubseg)
 
 if (rightsubseg.ss !=m->dummysub)
 
 org (lefttri, neworg)
 
 triangledealloc (m, lefttri.tri)
 
 triangledealloc (m, righttri.tri)
 
void undovertex (m, b) struct mesh *m
 
 while (m->lastflip !=(struct flipstacker *) NULL)
 
void vertexsort (sortarray, arraysize) vertex *sortarray
 
 if (arraysize==2)
 
 if (left > 1)
 
void vertexmedian (sortarray, arraysize, median, axis) vertex *sortarray
 
 if (left > median)
 
void alternateaxes (sortarray, arraysize, axis) vertex *sortarray
 
 if (arraysize<=3)
 
 vertexmedian (sortarray, arraysize, divider, axis)
 
 if (arraysize - divider >=2)
 
void mergehulls (m, b, farleft, innerleft, innerright, farright, axis) struct mesh *m
 
 if (b->dwyer &&(axis==1))
 
 if (counterclockwise(m, b, innerleftdest, innerleftapex, innerrightorg) > 0.0)
 
 if (counterclockwise(m, b, innerrightapex, innerrightorg, innerleftdest) > 0.0)
 
 while (changemade)
 
 bond (baseedge, *innerleft)
 
 lnextself (baseedge)
 
 setorg (baseedge, innerrightorg)
 
 setdest (baseedge, innerleftdest)
 
 if (innerleftdest==farleftpt)
 
 if (innerrightorg==farrightpt)
 
 apex (leftcand, upperleft)
 
 apex (rightcand, upperright)
 
void divconqrecurse (m, b, sortarray, vertices, axis, farleft, farright) struct mesh *m
 
 if (vertices==2)
 
 divconqrecurse (m, b, sortarray, divider, 1 - axis, farleft, &innerleft)
 
 divconqrecurse (m, b, &sortarray[divider], vertices - divider, 1 - axis, &innerright, farright)
 
 mergehulls (m, b, farleft, &innerleft, &innerright, farright, axis)
 
long removeghosts (m, b, startghost) struct mesh *m
 
 symself (searchedge)
 
 lnext (dissolveedge, deadtriangle)
 
 lprevself (dissolveedge)
 
 symself (dissolveedge)
 
 dissolve (dissolveedge)
 
 sym (deadtriangle, dissolveedge)
 
 triangledealloc (m, deadtriangle.tri)
 
 while (!otriequal(dissolveedge, *startghost))
 
long divconqdelaunay (m, b) struct mesh *m
 
 vertexsort (sortarray, m->invertices)
 
 for (j=1;j< m->invertices;j++)
 
 divconqrecurse (m, b, sortarray, i, 0, &hullleft, &hullright)
 
 trifree ((VOID *) sortarray)
 
return removeghosts (m, b, &hullleft)
 
void boundingbox (m, b) struct mesh *m
 
 if (m->ymax - m->ymin > width)
 
 if (width==0.0)
 
 setorg (inftri, m->infvertex1)
 
 setdest (inftri, m->infvertex2)
 
 setapex (inftri, m->infvertex3)
 
long removebox (m, b) struct mesh *m
 
 symself (nextedge)
 
 lprev (nextedge, finaledge)
 
 lnextself (nextedge)
 
 lprev (nextedge, searchedge)
 
 lnext (nextedge, checkedge)
 
 symself (checkedge)
 
 if (checkedge.tri==m->dummytri)
 
 while (!otriequal(nextedge, finaledge))
 
 triangledealloc (m, finaledge.tri)
 
long incrementaldelaunay (m, b) struct mesh *m
 
 while (vertexloop !=(vertex) NULL)
 
void eventheapinsert (heap, heapsize, newevent) struct event **heap
 
 while (notdone)
 
void eventheapify (heap, heapsize, eventnum) struct event **heap
 
void eventheapdelete (heap, heapsize, eventnum) struct event **heap
 
 if (eventnum > 0)
 
 eventheapify (heap, heapsize - 1, eventnum)
 
void createeventheap (m, eventheap, events, freeevents) struct mesh *m
 
int rightofhyperbola (m, fronttri, newsite) struct mesh *m
 
 if ((leftvertex[1]< rightvertex[1])||((leftvertex[1]==rightvertex[1]) &&(leftvertex[0]< rightvertex[0])))
 
REAL circletop (m, pa, pb, pc, ccwabc) struct mesh *m
 
return pc (xac *bclen2 - xbc *aclen2+sqrt(aclen2 *bclen2 *ablen2))/(2.0 *ccwabc)
 
void check4deadevent (checktri, freeevents, eventheap, heapsize) struct otri *checktri
 
 if (eventvertex !=(vertex) NULL)
 
struct splaynodesplay (m, splaytree, searchpoint, searchtri) struct mesh *m
 
 if (splaytree==(struct splaynode *) NULL)
 
 dest (splaytree->keyedge, checkvertex)
 
 if (checkvertex==splaytree->keydest)
 
 if (lefttree==(struct splaynode *) NULL)
 
else if (righttree==(struct splaynode *) NULL)
 
else if (lefttree->rchild==(struct splaynode *) NULL)
 
else if (righttree->lchild==(struct splaynode *) NULL)
 
 while (leftright->rchild !=(struct splaynode *) NULL)
 
struct splaynodesplayinsert (m, splayroot, newkey, searchpoint) struct mesh *m
 
 if (splayroot==(struct splaynode *) NULL)
 
else if (rightofhyperbola(m, &splayroot->keyedge, searchpoint))
 
struct splaynodecircletopinsert (m, b, splayroot, newkey, pa, pb, pc, topy) struct mesh *m
 
return splayinsert (m, splay(m, splayroot,(vertex) searchpoint, &dummytri), newkey,(vertex) searchpoint)
 
struct splaynodefrontlocate (m, splayroot, bottommost, searchvertex, searchtri, farright) struct mesh *m
 
 while (!farrightflag &&rightofhyperbola(m, searchtri, searchvertex))
 
long sweeplinedelaunay (m, b) struct mesh *m
 
poolinit & m (struct splaynode), SPLAYNODEPERBLOCK, SPLAYNODEPERBLOCK, 0
 
 createeventheap (m, &eventheap, &events, &freeevents)
 
 bond (lefttri, righttri)
 
 lnextself (lefttri)
 
 lprevself (righttri)
 
 eventheapdelete (eventheap, heapsize, 0)
 
 if ((firstvertex[0]==secondvertex[0]) &&(firstvertex[1]==secondvertex[1]))
 
 while ((firstvertex[0]==secondvertex[0]) &&(firstvertex[1]==secondvertex[1]))
 
 setorg (lefttri, firstvertex)
 
 setdest (lefttri, secondvertex)
 
 setorg (righttri, secondvertex)
 
 setdest (righttri, firstvertex)
 
 lprev (lefttri, bottommost)
 
 while (heapsize > 0)
 
 lprevself (bottommost)
 
long delaunay (m, b) struct mesh *m
 
 if (m->triangles.items==0)
 
long reconstruct (m, b, elefilename, areafilename, polyfilename, polyfile) struct mesh *m
 
 if (elefile==(FILE *) NULL)
 
 for (elementnumber=1;elementnumber<=m->inelements;elementnumber++)
 
 fclose (elefile)
 
enum finddirectionresult finddirection (m, b, searchtri, searchpoint) struct mesh *m
 
 if (leftflag &&rightflag)
 
 while (leftflag)
 
 while (rightflag)
 
 if (leftccw==0.0)
 
else if (rightccw==0.0)
 
void segmentintersection (m, b, splittri, splitsubseg, endpoint2) struct mesh *m
 
 if (denom==0.0)
 
 setvertexmark (newvertex, mark(*splitsubseg))
 
 setvertextype (newvertex, INPUTVERTEX)
 
 if (success !=SUCCESSFULVERTEX)
 
 setvertex2tri (newvertex, encode(*splittri))
 
 if (m->steinerleft > 0)
 
 sdissolve (opposubseg)
 
 while (splitsubseg->ss !=m->dummysub)
 
 snextself (opposubseg)
 
 while (opposubseg.ss !=m->dummysub)
 
 finddirection (m, b, splittri, endpoint1)
 
 if ((leftvertex[0]==endpoint1[0]) &&(leftvertex[1]==endpoint1[1]))
 
else if ((rightvertex[0] !=endpoint1[0])||(rightvertex[1] !=endpoint1[1]))
 
int scoutsegment (m, b, searchtri, endpoint2, newmark) struct mesh *m
 
 if (((leftvertex[0]==endpoint2[0]) &&(leftvertex[1]==endpoint2[1]))||((rightvertex[0]==endpoint2[0]) &&(rightvertex[1]==endpoint2[1])))
 
else if (collinear==LEFTCOLLINEAR)
 
 tspivot (crosstri, crosssubseg)
 
 if (crosssubseg.ss==m->dummysub)
 
 otricopy (crosstri, *searchtri)
 
 insertsubseg (m, b, searchtri, newmark)
 
void conformingedge (m, b, endpoint1, endpoint2, newmark) struct mesh *m
 
 setvertexmark (newvertex, newmark)
 
 setvertextype (newvertex, SEGMENTVERTEX)
 
 if (success==DUPLICATEVERTEX)
 
 finddirection (m, b, &searchtri2, endpoint2)
 
 if (!scoutsegment(m, b, &searchtri1, endpoint1, newmark))
 
 if (!scoutsegment(m, b, &searchtri2, endpoint2, newmark))
 
void delaunayfixup (m, b, fixuptri, leftside) struct mesh *m
 
 sym (neartri, fartri)
 
 if (fartri.tri==m->dummytri)
 
 tspivot (neartri, faredge)
 
 if (faredge.ss !=m->dummysub)
 
 apex (neartri, nearvertex)
 
 org (neartri, leftvertex)
 
 dest (neartri, rightvertex)
 
 apex (fartri, farvertex)
 
 if (leftside)
 
 delaunayfixup (m, b, &fartri, leftside)
 
void constrainededge (m, b, starttri, endpoint2, newmark) struct mesh *m
 
 flip (m, b, &fixuptri)
 
 if ((farvertex[0]==endpoint2[0]) &&(farvertex[1]==endpoint2[1]))
 
 if (area==0.0)
 
 segmentintersection (m, b, &fixuptri, &crosssubseg, endpoint2)
 
 while (!done)
 
 insertsubseg (m, b, &fixuptri, newmark)
 
 if (collision)
 
void insertsegment (m, b, endpoint1, endpoint2, newmark) struct mesh *m
 
 if (encodedtri !=(triangle) NULL)
 
 if (checkvertex !=endpoint1)
 
 otricopy (searchtri1, m->recenttri)
 
 if (scoutsegment(m, b, &searchtri1, endpoint2, newmark))
 
 org (searchtri1, endpoint1)
 
 otricopy (searchtri2, m->recenttri)
 
 if (scoutsegment(m, b, &searchtri2, endpoint1, newmark))
 
 org (searchtri2, endpoint2)
 
void markhull (m, b) struct mesh *m
 
 symself (hulltri)
 
 otricopy (hulltri, starttri)
 
 lnextself (hulltri)
 
 oprev (hulltri, nexttri)
 
 while (nexttri.tri !=m->dummytri)
 
 while (!otriequal(hulltri, starttri))
 
void formskeleton (m, b, polyfile, polyfilename) struct mesh *m
 
 if (b->convex||!b->poly)
 
void infecthull (m, b) struct mesh *m
 
void plague (m, b) struct mesh *m
 
 while (virusloop !=(triangle **) NULL)
 
void regionplague (m, b, attribute, area) struct mesh *m
 
void carveholes (m, b, holelist, holes, regionlist, regions) struct mesh *m
 
 if (!(b->quiet||(b->noholes &&b->convex)))
 
 if (regions > 0)
 
 if (((holes > 0) &&!b->noholes)||!b->convex||(regions > 0))
 
 if ((holes > 0) &&!b->noholes)
 
 if (m->viri.items > 0)
 
void tallyencs (m, b) struct mesh *m
 
 while (subsegloop.ss !=(subseg *) NULL)
 
void precisionerror ()
 
void splitencsegs (m, b, triflaws) struct mesh *m
 
 while ((m->badsubsegs.items > 0) &&(m->steinerleft !=0))
 
void tallyfaces (m, b) struct mesh *m
 
void splittriangle (m, b, badtri) struct mesh *m
 
 decode (badtri->poortri, badotri)
 
 org (badotri, borg)
 
 dest (badotri, bdest)
 
 apex (badotri, bapex)
 
 if (!deadtri(badotri.tri) &&(borg==badtri->triangorg) &&(bdest==badtri->triangdest) &&(bapex==badtri->triangapex))
 
void enforcequality (m, b) struct mesh *m
 
poolinit & m (struct badsubseg), BADSUBSEGPERBLOCK, BADSUBSEGPERBLOCK, 0
 
 if (b->verbose &&(m->badsubsegs.items > 0))
 
 splitencsegs (m, b, 0)
 
 if ((b->minangle > 0.0)||b->vararea||b->fixedarea||b->usertest)
 
 if (!b->quiet &&b->conformdel &&(m->badsubsegs.items > 0) &&(m->steinerleft==0))
 
void highorder (m, b) struct mesh *m
 
char * readline (string, infile, infilename) char *string
 
 while ((*result !='\0') &&(*result !='#') &&(*result !='.') &&(*result !='+') &&(*result !='-') &&((*result< '0')||(*result > '9')))
 
 while ((*result=='#')||(*result=='\0'))
 
char * findfield (string) char *string
 
 while ((*result !='\0') &&(*result !='#') &&(*result !=' ') &&(*result !='\t'))
 
void readnodes (m, b, nodefilename, polyfilename, polyfile) struct mesh *m
 
 if (m->mesh_dim !=2)
 
void readholes (m, b, polyfile, polyfilename, hlist, holes, rlist, regions) struct mesh *m
 
 if ((b->regionattrib||b->vararea) &&!b->refine)
 
 fclose (polyfile)
 
void finishfile (outfile, argc, argv) FILE *outfile
 
 fprintf (outfile, "# Generated by")
 
 fprintf (outfile, "\n")
 
 fclose (outfile)
 
void writenodes (m, b, nodefilename, argc, argv) struct mesh *m
 
 if (outfile==(FILE *) NULL)
 
 fprintf (outfile, "%ld %d %d %d\n", outvertices, m->mesh_dim, m->nextras, 1 - b->nobound)
 
void numbernodes (m, b) struct mesh *m
 
void writeelements (m, b, elefilename, argc, argv) struct mesh *m
 
 fprintf (outfile, "%ld %d %d\n", m->triangles.items,(b->order+1) *(b->order+2)/2, m->eextras)
 
void writepoly (m, b, polyfilename, holelist, holes, regionlist, regions, argc, argv) struct mesh *m
 
 fprintf (outfile, "%d %d %d %d\n", 0, m->mesh_dim, m->nextras, 1 - b->nobound)
 
 fprintf (outfile, "%ld %d\n", m->subsegs.items, 1 - b->nobound)
 
 fprintf (outfile, "%d\n", holes)
 
 if (holes > 0)
 
void writeedges (m, b, edgefilename, argc, argv) struct mesh *m
 
 fprintf (outfile, "%ld %d\n", m->edges, 1 - b->nobound)
 
void writevoronoi (m, b, vnodefilename, vedgefilename, argc, argv) struct mesh *m
 
 fprintf (outfile, "%ld %d %d %d\n", m->triangles.items, 2, m->nextras, 0)
 
 fprintf (outfile, "%ld %d\n", m->edges, 0)
 
void writeneighbors (m, b, neighborfilename, argc, argv) struct mesh *m
 
 fprintf (outfile, "%ld %d\n", m->triangles.items, 3)
 
void writeoff (m, b, offfilename, argc, argv) struct mesh *m
 
 fprintf (outfile, "OFF\n%ld %ld %ld\n", outvertices, m->triangles.items, m->edges)
 
void quality_statistics (m, b) struct mesh *m
 
 printf ("Mesh quality statistics:\n\n")
 
smallestarea *biggestarea * if (smallestangle >=1.0)
 
 if (biggestangle >=1.0)
 
 printf (" Shortest edge: %16.5g | Longest edge: %16.5g\n", shortest, longest)
 
 printf (" Shortest altitude: %12.5g | Largest aspect ratio: %8.5g\n\n", minaltitude, worstaspect)
 
 printf (" Triangle aspect ratio histogram:\n")
 
 printf (" 1.1547 - %-6.6g : %8d | %6.6g - %-6.6g : %8d\n", ratiotable[0], aspecttable[0], ratiotable[7], ratiotable[8], aspecttable[8])
 
 printf (" %6.6g - %-6.6g : %8d | %6.6g - : %8d\n", ratiotable[6], ratiotable[7], aspecttable[7], ratiotable[14], aspecttable[15])
 
 printf (" (Aspect ratio is longest edge divided by shortest altitude)\n\n")
 
 printf (" Smallest angle: %15.5g | Largest angle: %15.5g\n\n", smallestangle, biggestangle)
 
 printf (" Angle histogram:\n")
 
 printf ("\n")
 
void statistics (m, b) struct mesh *m
 
 printf (" Input vertices: %d\n", m->invertices)
 
 printf ("\n Mesh vertices: %ld\n", m->vertices.items - m->undeads)
 
 printf (" Mesh triangles: %ld\n", m->triangles.items)
 
 printf (" Mesh edges: %ld\n", m->edges)
 
 printf (" Mesh exterior boundary edges: %ld\n", m->hullsize)
 
 if (b->poly||b->refine)
 
int main (argc, argv) int argc
 
 parsecommandline (argc, argv, &b)
 
 if (!b.quiet)
 
 if (b.refine)
 
 if (b.poly &&(m.triangles.items > 0))
 
 if (b.quality &&(m.triangles.items > 0))
 
 if (b.order > 1)
 
 if (b.nonodewritten||(b.noiterationnum &&m.readnodefile))
 
 if (b.poly||b.convex)
 
 if (m.regions > 0)
 

Variables

REAL splitter
 
REAL epsilon
 
REAL resulterrbound
 
REAL ccwerrboundA
 
REAL ccwerrboundB
 
REAL ccwerrboundC
 
REAL iccerrboundA
 
REAL iccerrboundB
 
REAL iccerrboundC
 
REAL o3derrboundA
 
REAL o3derrboundB
 
REAL o3derrboundC
 
unsigned long randomseed = 1
 
int plus1mod3 [3] = {1, 2, 0}
 
int minus1mod3 [3] = {2, 0, 1}
 
vertex tridest
 
vertex triapex
 
REAL area
 
REAL dyoa
 
REAL dyda = tridest[1] - triapex[1]
 
REAL dyod = triorg[1] - tridest[1]
 
REAL oalen = dxoa * dxoa + dyoa * dyoa
 
REAL dalen = dxda * dxda + dyda * dyda
 
REAL odlen = dxod * dxod + dyod * dyod
 
REAL maxlen = (dalen > oalen) ? dalen : oalen
 
 dxoa = triorg[0] - triapex[0]
 
 dxda = tridest[0] - triapex[0]
 
 dxod = triorg[0] - tridest[0]
 
 else
 
 memptr = (VOID *) malloc((unsigned int) size)
 
char ** argv
 
struct behaviorb
 
int meshnumber
 
int i = 0
 
int j = 1
 
int k
 
char workstring [FILENAMESIZE] = 'd'
 
poly = b->refine = b->quality = 0
 
vararea = b->fixedarea = b->usertest = 0
 
regionattrib = b->convex = b->weighted = b->jettison = 0
 
firstnumber = 1
 
edgesout = b->voronoi = b->neighbors = b->geomview = 0
 
nobound = b->nopolywritten = b->nonodewritten = b->noelewritten = 0
 
noiterationnum = 0
 
noholes = b->noexact = 0
 
incremental = b->sweepline = 0
 
dwyer = 1
 
splitseg = 0
 
docheck = 0
 
nobisect = 0
 
conformdel = 0
 
steiner = -1
 
order = 1
 
minangle = 0.0
 
maxarea = -1.0
 
quiet = b->verbose = 0
 
innodefilename [0] = '\0'
 
usesegments = b->poly || b->refine || b->quality || b->convex
 
goodangle = cos(b->minangle * PI / 180.0)
 
 increment = 0
 
struct otrit
 
struct osub printsh
 
vertex printvertex
 
called dummytri
 
int trianglebytes
 
int subsegbytes
 
dummytribase
 
 alignptr = (unsigned long) m->dummytribase
 
vertexmarkindex
 
 vertexsize = (m->vertexmarkindex + 2) * sizeof(int)
 
highorderindex = 6 + (b->usesegments * 3)
 
 trisize
 
elemattribindex = (trisize + sizeof(REAL) - 1) / sizeof(REAL)
 
areaboundindex = m->elemattribindex + m->eextras + b->regionattrib
 
triangle * dyingtriangle
 
 do
 
return newtriangle
 
subseg * dyingsubseg
 
return newsubseg
 
vertex dyingvertex
 
return newvertex = (vertex) poolalloc(&m->vertices)
 
struct badsubsegdyingseg
 
return newseg
 
int number
 
char * foundvertex
 
int current = b->firstnumber
 
 getblock = m->vertices.firstblock
 
pooldeinit & m
 
struct otrinewotri
 
newotri tri = (triangle *) poolalloc(&m->triangles)
 
newotri orient = 0
 
newsubseg ss [0] = (subseg) m->dummysub
 
newsubseg ssorient = 0
 
REAL * e
 
int flen
 
REAL * f
 
REAL * h
 
INEXACT REAL Qnew
 
INEXACT REAL hh
 
INEXACT REAL bvirt
 
REAL avirt
 
REAL bround
 
REAL around
 
int eindex = findex = 0
 
int findex
 
int hindex = 0
 
REAL enow = e[0]
 
REAL fnow = f[0]
 
INEXACT REAL product1
 
REAL product0
 
INEXACT REAL c
 
INEXACT REAL abig
 
REAL ahi
 
REAL alo
 
REAL bhi
 
REAL blo
 
REAL err1
 
REAL err2
 
REAL err3
 
 Q = e[0]
 
vertex pb
 
vertex pc
 
REAL detsum
 
REAL acxtail
 
REAL acytail
 
REAL bcxtail
 
REAL bcytail
 
INEXACT REAL detleft = (pa[0] - pc[0]) * (pb[1] - pc[1])
 
INEXACT REAL detright = (pa[1] - pc[1]) * (pb[0] - pc[0])
 
REAL detlefttail
 
REAL detrighttail
 
REAL det = estimate(4, B)
 
REAL errbound = ccwerrboundB * detsum
 
REAL B [4] = B3
 
REAL C1 [8]
 
REAL C2 [12]
 
REAL D [16]
 
INEXACT REAL B3
 
int C1length = fast_expansion_sum_zeroelim(4, B, 4, u, C1)
 
int C2length = fast_expansion_sum_zeroelim(C1length, C1, 4, u, C2)
 
int Dlength = fast_expansion_sum_zeroelim(C2length, C2, 4, u, D)
 
REAL u [4] = u3
 
INEXACT REAL u3
 
INEXACT REAL s1
 
INEXACT REAL t1
 
REAL s0
 
REAL t0
 
INEXACT REAL _i
 
INEXACT REAL _j
 
REAL _0
 
 acx = (REAL) (pa[0] - pc[0])
 
 bcx = (REAL) (pb[0] - pc[0])
 
 acy = (REAL) (pa[1] - pc[1])
 
 bcy = (REAL) (pb[1] - pc[1])
 
vertex pa
 
counterclockcount
 
vertex pd
 
REAL permanent
 
INEXACT REAL bdxcdy1
 
INEXACT REAL cdxbdy1
 
INEXACT REAL cdxady1
 
INEXACT REAL adxcdy1
 
INEXACT REAL adxbdy1
 
INEXACT REAL bdxady1
 
REAL bdxcdy0
 
REAL cdxbdy0
 
REAL cdxady0
 
REAL adxcdy0
 
REAL adxbdy0
 
REAL bdxady0
 
REAL bc [4] = bc3
 
REAL ca [4] = ca3
 
REAL ab [4] = ab3
 
INEXACT REAL bc3
 
INEXACT REAL ca3
 
INEXACT REAL ab3
 
REAL axbc [8]
 
REAL axxbc [16]
 
REAL aybc [8]
 
REAL ayybc [16]
 
REAL adet [32]
 
int axbclen = scale_expansion_zeroelim(4, bc, adx, axbc)
 
int axxbclen = scale_expansion_zeroelim(axbclen, axbc, adx, axxbc)
 
int aybclen = scale_expansion_zeroelim(4, bc, ady, aybc)
 
int ayybclen = scale_expansion_zeroelim(aybclen, aybc, ady, ayybc)
 
int alen = fast_expansion_sum_zeroelim(axxbclen, axxbc, ayybclen, ayybc, adet)
 
REAL bxca [8]
 
REAL bxxca [16]
 
REAL byca [8]
 
REAL byyca [16]
 
REAL bdet [32]
 
int bxcalen = scale_expansion_zeroelim(4, ca, bdx, bxca)
 
int bxxcalen = scale_expansion_zeroelim(bxcalen, bxca, bdx, bxxca)
 
int bycalen = scale_expansion_zeroelim(4, ca, bdy, byca)
 
int byycalen = scale_expansion_zeroelim(bycalen, byca, bdy, byyca)
 
int blen = fast_expansion_sum_zeroelim(bxxcalen, bxxca, byycalen, byyca, bdet)
 
REAL cxab [8]
 
REAL cxxab [16]
 
REAL cyab [8]
 
REAL cyyab [16]
 
REAL cdet [32]
 
int cxablen = scale_expansion_zeroelim(4, ab, cdx, cxab)
 
int cxxablen = scale_expansion_zeroelim(cxablen, cxab, cdx, cxxab)
 
int cyablen = scale_expansion_zeroelim(4, ab, cdy, cyab)
 
int cyyablen = scale_expansion_zeroelim(cyablen, cyab, cdy, cyyab)
 
int clen = fast_expansion_sum_zeroelim(cxxablen, cxxab, cyyablen, cyyab, cdet)
 
REAL abdet [64]
 
int ablen = fast_expansion_sum_zeroelim(alen, adet, blen, bdet, abdet)
 
REAL fin1 [1152]
 
REAL fin2 [1152]
 
REAL * finnow = fin1
 
REAL * finother = fin2
 
REAL * finswap = finnow
 
int finlength = fast_expansion_sum_zeroelim(ablen, abdet, clen, cdet, fin1)
 
REAL adxtail
 
REAL bdxtail
 
REAL cdxtail
 
REAL adytail
 
REAL bdytail
 
REAL cdytail
 
INEXACT REAL adxadx1
 
INEXACT REAL adyady1
 
INEXACT REAL bdxbdx1
 
INEXACT REAL bdybdy1
 
INEXACT REAL cdxcdx1
 
INEXACT REAL cdycdy1
 
REAL adxadx0
 
REAL adyady0
 
REAL bdxbdx0
 
REAL bdybdy0
 
REAL cdxcdx0
 
REAL cdycdy0
 
REAL aa [4]
 
REAL bb [4]
 
REAL cc [4]
 
INEXACT REAL aa3
 
INEXACT REAL bb3
 
INEXACT REAL cc3
 
INEXACT REAL ti1
 
INEXACT REAL tj1
 
REAL ti0
 
REAL tj0
 
REAL v [4]
 
INEXACT REAL v3
 
REAL temp8 [8]
 
REAL temp16a [16]
 
REAL temp16b [16]
 
REAL temp16c [16]
 
REAL temp32a [32]
 
REAL temp32b [32]
 
REAL temp48 [48]
 
REAL temp64 [64]
 
int temp8len
 
int temp16alen
 
int temp16blen
 
int temp16clen
 
int temp32alen
 
int temp32blen
 
int temp48len
 
int temp64len
 
REAL axtbb [8]
 
REAL axtcc [8]
 
REAL aytbb [8]
 
REAL aytcc [8]
 
int axtbblen
 
int axtcclen
 
int aytbblen
 
int aytcclen
 
REAL bxtaa [8]
 
REAL bxtcc [8]
 
REAL bytaa [8]
 
REAL bytcc [8]
 
int bxtaalen
 
int bxtcclen
 
int bytaalen
 
int bytcclen
 
REAL cxtaa [8]
 
REAL cxtbb [8]
 
REAL cytaa [8]
 
REAL cytbb [8]
 
int cxtaalen
 
int cxtbblen
 
int cytaalen
 
int cytbblen
 
REAL axtbc [8]
 
REAL aytbc [8]
 
REAL bxtca [8]
 
REAL bytca [8]
 
REAL cxtab [8]
 
REAL cytab [8]
 
int axtbclen =0
 
int aytbclen =0
 
int bxtcalen =0
 
int bytcalen =0
 
int cxtablen =0
 
int cytablen =0
 
REAL axtbct [16]
 
REAL aytbct [16]
 
REAL bxtcat [16]
 
REAL bytcat [16]
 
REAL cxtabt [16]
 
REAL cytabt [16]
 
int axtbctlen
 
int aytbctlen
 
int bxtcatlen
 
int bytcatlen
 
int cxtabtlen
 
int cytabtlen
 
REAL axtbctt [8]
 
REAL aytbctt [8]
 
REAL bxtcatt [8]
 
REAL bytcatt [8]
 
REAL cxtabtt [8]
 
REAL cytabtt [8]
 
int axtbcttlen
 
int aytbcttlen
 
int bxtcattlen
 
int bytcattlen
 
int cxtabttlen
 
int cytabttlen
 
REAL abt [8]
 
REAL bct [8]
 
REAL cat [8]
 
int abtlen = fast_expansion_sum_zeroelim(at_blen, at_b, bt_alen, bt_a, abt)
 
int bctlen
 
int catlen = fast_expansion_sum_zeroelim(ct_alen, ct_a, at_clen, at_c, cat)
 
REAL abtt [4]
 
REAL bctt [4]
 
REAL catt [4]
 
int abttlen
 
int bcttlen
 
int cattlen
 
INEXACT REAL abtt3
 
INEXACT REAL bctt3
 
INEXACT REAL catt3
 
REAL negate
 
 adx = (REAL) (pa[0] - pd[0])
 
 bdx = (REAL) (pb[0] - pd[0])
 
 cdx = (REAL) (pc[0] - pd[0])
 
 ady = (REAL) (pa[1] - pd[1])
 
 bdy = (REAL) (pb[1] - pd[1])
 
 cdy = (REAL) (pc[1] - pd[1])
 
REAL bdxcdy
 
REAL cdxbdy = cdx * bdy
 
REAL cdxady = cdx * ady
 
REAL adxcdy = adx * cdy
 
REAL adxbdy = adx * bdy
 
REAL bdxady = bdx * ady
 
REAL alift = adx * adx + ady * ady
 
REAL blift = bdx * bdx + bdy * bdy
 
REAL clift = cdx * cdx + cdy * cdy
 
incirclecount = m->counterclockcount = m->orient3dcount = 0
 
REAL aheight
 
REAL bheight
 
REAL cheight
 
REAL dheight
 
REAL adheighttail
 
REAL bdheighttail
 
REAL cdheighttail
 
INEXACT REAL at_blarge
 
INEXACT REAL at_clarge
 
INEXACT REAL bt_clarge
 
INEXACT REAL bt_alarge
 
INEXACT REAL ct_alarge
 
INEXACT REAL ct_blarge
 
REAL at_b [4]
 
REAL at_c [4]
 
REAL bt_c [4]
 
REAL bt_a [4]
 
REAL ct_a [4]
 
REAL ct_b [4]
 
int at_blen
 
int at_clen
 
int bt_clen
 
int bt_alen
 
int ct_alen
 
int ct_blen
 
INEXACT REAL bdxt_cdy1
 
INEXACT REAL cdxt_bdy1
 
INEXACT REAL cdxt_ady1
 
INEXACT REAL adxt_cdy1
 
INEXACT REAL adxt_bdy1
 
INEXACT REAL bdxt_ady1
 
REAL bdxt_cdy0
 
REAL cdxt_bdy0
 
REAL cdxt_ady0
 
REAL adxt_cdy0
 
REAL adxt_bdy0
 
REAL bdxt_ady0
 
INEXACT REAL bdyt_cdx1
 
INEXACT REAL cdyt_bdx1
 
INEXACT REAL cdyt_adx1
 
INEXACT REAL adyt_cdx1
 
INEXACT REAL adyt_bdx1
 
INEXACT REAL bdyt_adx1
 
REAL bdyt_cdx0
 
REAL cdyt_bdx0
 
REAL cdyt_adx0
 
REAL adyt_cdx0
 
REAL adyt_bdx0
 
REAL bdyt_adx0
 
INEXACT REAL bdxt_cdyt1
 
INEXACT REAL cdxt_bdyt1
 
INEXACT REAL cdxt_adyt1
 
INEXACT REAL adxt_cdyt1
 
INEXACT REAL adxt_bdyt1
 
INEXACT REAL bdxt_adyt1
 
REAL bdxt_cdyt0
 
REAL cdxt_bdyt0
 
REAL cdxt_adyt0
 
REAL adxt_cdyt0
 
REAL adxt_bdyt0
 
REAL bdxt_adyt0
 
REAL w [16]
 
int vlength
 
int wlength = scale_expansion_zeroelim(bctlen, bct, adheight, w)
 
INEXACT REAL _k
 
 adheight = (REAL) (aheight - dheight)
 
 bdheight = (REAL) (bheight - dheight)
 
 cdheight = (REAL) (cheight - dheight)
 
orient3dcount
 
vertex torg
 
vertex tdest
 
vertex tapex
 
vertex circumcenter = torg[1] + dy
 
REAL * xi = (yao * dx - xao * dy) * (2.0 * denominator)
 
REAL * eta = (xdo * dy - ydo * dx) * (2.0 * denominator)
 
int offcenter
 
REAL dodist
 
REAL aodist = xao * xao + yao * yao
 
REAL dadist
 
REAL denominator
 
REAL dx = (yao * dodist - ydo * aodist) * denominator
 
REAL dy = (xdo * aodist - xao * dodist) * denominator
 
REAL dxoff
 
REAL dyoff
 
circumcentercount
 
 xdo = tdest[0] - torg[0]
 
 ydo = tdest[1] - torg[1]
 
 xao = tapex[0] - torg[0]
 
 yao = tapex[1] - torg[1]
 
undeads = 0
 
samples = 1
 
checksegments = 0
 
checkquality = 0
 
hyperbolacount = m->circletopcount = m->circumcentercount = 0
 
struct otri oppotri oppooppotri
 
vertex triorg
 
vertex oppoorg
 
vertex oppodest
 
int horrors = 0
 
int saveexact = b->noexact
 
triangle ptr
 
noexact = 0
 
struct otri oppotri
 
struct osub opposubseg
 
vertex oppoapex
 
int shouldbedelaunay
 
subseg sptr
 
struct badtriangbadtri
 
int exponent
 
int expincrement
 
int queuenumber
 
int posexponent = 0
 
queuetail [queuenumber] = badtri
 
badtri nexttriang = (struct badtriang *) NULL
 
struct otrienqtri
 
REAL minedge
 
vertex enqapex
 
vertex enqorg
 
vertex enqdest
 
 newbad = (struct badtriang *) poolalloc(&m->badtriangles)
 
newbad poortri = encode(*enqtri)
 
newbad key = minedge
 
newbad triangapex = enqapex
 
newbad triangorg = enqorg
 
newbad triangdest = enqdest
 
 result = m->queuefront[m->firstnonemptyq]
 
queuefront [m->firstnonemptyq] = result->nexttriang
 
struct osubtestsubseg
 
struct osub testsym
 
struct badsubsegencroachedseg
 
REAL dotproduct
 
int encroached = 0
 
int sides = 0
 
vertex eorg
 
vertex edest
 
vertex eapex
 
struct otritesttri
 
struct osub testsub
 
vertex base1 = tapex
 
vertex base2 = torg
 
vertex org1
 
vertex dest1
 
vertex org2
 
vertex dest2
 
vertex joinvertex
 
REAL dxao = tapex[0] - torg[0]
 
REAL dyao = tapex[1] - torg[1]
 
REAL dxod2 = dxod * dxod
 
REAL dyod2 = dyod * dyod
 
REAL dxda2 = dxda * dxda
 
REAL dyda2 = dyda * dyda
 
REAL dxao2 = dxao * dxao
 
REAL dyao2 = dyao * dyao
 
REAL apexlen = dxod2 + dyod2
 
REAL orglen = dxda2 + dyda2
 
REAL destlen = dxao2 + dyao2
 
REAL angle = dxod * dxda + dyod * dyda
 
REAL dist1
 
REAL dist2
 
vertex searchpoint = pc[0] - (yac * bclen2 - ybc * aclen2) / (2.0 * ccwabc)
 
struct otrisearchtri
 
int stopatsubsegment
 
struct osub checkedge
 
vertex forg
 
vertex fdest
 
vertex fapex
 
REAL orgorient
 
REAL destorient
 
int moveleft
 
char * firsttri
 
struct otri sampletri
 
REAL searchdist
 
REAL dist
 
REAL ahead = counterclockwise(m, b, torg, tdest, searchpoint)
 
long samplesperblock = (m->samples * TRIPERBLOCK - 1) / m->triangles.maxitems + 1
 
long totalsamplesleft = m->samples
 
long samplesleft
 
long population = m->triangles.itemsfirstblock
 
long totalpopulation = m->triangles.maxitems
 
 sampleblock = m->triangles.firstblock
 
int subsegmark
 
struct otriflipedge
 
struct otri topleft topright
 
struct otri top
 
struct otri botlcasing botrcasing
 
struct otri toplcasing toprcasing ={NULL, 0}
 
struct osub botlsubseg botrsubseg
 
struct osub toplsubseg toprsubseg
 
vertex leftvertex
 
vertex rightvertex = first
 
vertex botvertex
 
vertex farvertex
 
int segmentflaws
 
int triflaws
 
struct otri botleft botright
 
struct otri newbotleft newbotright
 
struct otri newtopright
 
struct otri toplcasing ={NULL, 0}
 
struct osub brokensubseg
 
struct osub checksubseg
 
struct osub rightsubseg
 
struct flipstackernewflip
 
vertex first
 
vertex topvertex
 
vertex segmentorg
 
vertex segmentdest
 
REAL attrib
 
enum insertvertexresult success = SUCCESSFULVERTEX
 
enum locateresult intersect = ONEDGE
 
int doflip
 
int mirrorflag
 
int enq
 
struct otrifirstedge
 
struct otrilastedge
 
int edgecount = 1
 
struct otri besttri
 
struct otri tempedge
 
vertex leftbasevertex
 
vertex rightbasevertex
 
vertex testvertex
 
vertex bestvertex
 
int bestnumber = 1
 
struct otrideltri
 
struct otri deltriright
 
struct otri lefttri righttri
 
struct otri leftcasing rightcasing
 
vertex delvertex
 
vertex neworg
 
struct otri gluetri
 
int arraysize
 
int pivot
 
REAL pivotx = sortarray[pivot][0]
 
REAL pivoty = sortarray[pivot][1]
 
vertex temp
 
 left = -1
 
 right = arraysize
 
int median
 
int axis
 
REAL pivot1 = sortarray[pivot][axis]
 
REAL pivot2 = sortarray[pivot][1 - axis]
 
 divider = arraysize >> 1
 
struct otrifarleft
 
struct otriinnerleft
 
struct otriinnerright
 
struct otrifarright = farrightflag
 
struct otri baseedge
 
struct otri nextedge
 
struct otri sidecasing topcasing outercasing
 
vertex innerleftdest
 
vertex innerrightorg
 
vertex innerleftapex
 
vertex innerrightapex
 
vertex farleftpt
 
vertex farrightpt
 
vertex farleftapex
 
vertex farrightapex
 
vertex lowerleft = innerleftdest
 
vertex lowerright = innerrightorg
 
vertex upperleft
 
vertex upperright
 
vertex nextapex
 
vertex checkvertex = (vertex) NULL
 
int changemade
 
int badedge
 
int leftfinished
 
int rightfinished
 
vertex * sortarray = (vertex *) trimalloc(m->invertices * (int) sizeof(vertex))
 
int vertices
 
struct otristartghost
 
struct otri dissolveedge
 
struct otri deadtriangle
 
vertex markorg
 
long hullsize = 0
 
struct otri hullleft hullright
 
REAL width
 
infvertex1 = (vertex) trimalloc(m->vertices.itembytes)
 
infvertex2 = (vertex) trimalloc(m->vertices.itembytes)
 
infvertex3 = (vertex) trimalloc(m->vertices.itembytes)
 
struct otri searchedge
 
vertex vertexloop
 
int heapsize = m->invertices
 
struct eventnewevent
 
int eventnum
 
int parent
 
int notdone = eventnum > 0
 
 eventx = newevent->xkey
 
 eventy = newevent->ykey
 
 heap [eventnum] = newevent
 
newevent heapposition = eventnum
 
int leftchild = 2 * eventnum + 1
 
int rightchild
 
int smallest
 
 thisevent = heap[eventnum]
 
 moveevent = heap[heapsize - 1]
 
struct event *** eventheap
 
struct event ** events = (struct event *) trimalloc(maxevents * (int) sizeof(struct event))
 
struct event ** freeevents = (struct event *) NULL
 
int maxevents
 
struct otrifronttri
 
vertex newsite
 
REAL dxa
 
REAL dya = leftvertex[1] - newsite[1]
 
REAL dxb = rightvertex[0] - newsite[0]
 
REAL dyb = rightvertex[1] - newsite[1]
 
REAL ccwabc = counterclockwise(m, b, pa, pb, pc)
 
REAL aclen2
 
REAL bclen2 = xbc * xbc + ybc * ybc
 
REAL ablen2 = xab * xab + yab * yab
 
circletopcount
 
 xac = pa[0] - pc[0]
 
 yac = pa[1] - pc[1]
 
 xbc = pb[0] - pc[0]
 
 ybc = pb[1] - pc[1]
 
 xab = pa[0] - pb[0]
 
 yab = pa[1] - pb[1]
 
vertex eventvertex
 
org * checktri
 
struct splaynodesplaytree
 
struct splaynodelefttree
 
struct splaynoderighttree = splay(m, splaytree->rchild, searchpoint, searchtri)
 
struct splaynodeleftright
 
int rightofroot
 
int rightofchild
 
leftright rchild = righttree
 
struct splaynodesplayroot = splay(m, splayroot, searchvertex, searchtri)
 
struct otrinewkey
 
 newsplaynode = (struct splaynode *) poolalloc(&m->splaynodes)
 
splayroot lchild = (struct splaynode *) NULL
 
REAL topy
 
struct otribottommost
 
vertex searchvertex
 
 farrightflag = 0
 
struct eventnextevent
 
struct otri fliptri
 
struct otri lefttri righttri farlefttri farrighttri
 
struct otri inserttri
 
vertex firstvertex = (vertex) eventheap[0]->eventptr
 
vertex secondvertex
 
vertex nextvertex
 
vertex lastvertex = secondvertex
 
vertex connectvertex
 
vertex midvertex
 
REAL lefttest
 
REAL righttest
 
int check4events
 
eventheap[0] eventptr = (VOID *) freeevents
 
eextras = 0
 
char * elefilename
 
char * areafilename
 
char * polyfilename
 
FILE * polyfile = (FILE *) NULL
 
FILE * areafile
 
char inputline [INPUTLINESIZE]
 
char * stringptr = readline(inputline, elefile, elefilename)
 
int areaelements
 
struct otri triangleloop
 
struct otri triangleleft
 
struct otri checkleft
 
struct otri checkneighbor
 
struct osub subsegloop
 
triangle * vertexarray
 
triangle * prevlink
 
triangle nexttri
 
vertex checkdest
 
vertex checkapex
 
vertex shorg
 
vertex killvertex
 
int corner [3]
 
int end [2]
 
int killvertexindex
 
int incorners
 
int segmentmarkers = 0
 
int boundmarker
 
int aroundvertex
 
int notfound
 
long elementnumber = b->firstnumber
 
long segmentnumber
 
 elefile = fopen(elefilename, "r")
 
inelements = (int) strtol(stringptr, &stringptr, 0)
 
vertex startvertex
 
REAL leftccw = counterclockwise(m, b, searchpoint, startvertex, leftvertex)
 
REAL rightccw = counterclockwise(m, b, startvertex, searchpoint, rightvertex)
 
int leftflag = leftccw > 0.0
 
int rightflag = rightccw > 0.0
 
struct otrisplittri
 
struct osubsplitsubseg
 
vertex endpoint2
 
vertex endpoint1
 
REAL ex = endpoint2[0] - endpoint1[0]
 
REAL ey = endpoint2[1] - endpoint1[1]
 
REAL tx = tdest[0] - torg[0]
 
REAL ty = tdest[1] - torg[1]
 
REAL etx = torg[0] - endpoint2[0]
 
REAL ety = torg[1] - endpoint2[1]
 
REAL split = (ey * etx - ex * ety) / denom
 
REAL denom = ty * ex - tx * ey
 
int newmark
 
struct osub crosssubseg
 
enum finddirectionresult collinear = finddirection(m, b, searchtri, endpoint2)
 
vertex midvertex1
 
vertex midvertex2
 
struct otrifixuptri
 
int leftside
 
struct otri fartri
 
struct osub faredge
 
vertex nearvertex
 
struct otristarttri
 
int collision = 0
 
int done = 0
 
triangle encodedtri
 
int end1
 
int end2
 
struct osub hullsubseg
 
vertex horg
 
vertex hdest
 
struct otri neighbor
 
triangle ** virusloop = (triangle **) traverse(&m->viri)
 
struct osub neighborsubseg
 
vertex norg
 
vertex ndest
 
vertex deadorg
 
vertex deaddest
 
vertex deadapex
 
int killorg
 
REAL attribute
 
triangle ** regiontri
 
vertex regionorg
 
vertex regiondest
 
vertex regionapex
 
REAL * holelist
 
int holes = (int) strtol(stringptr, &stringptr, 0)
 
REAL * regionlist
 
int regions = 0
 
struct otriregiontris
 
triangle ** holetri
 
vertex searchorg
 
vertex searchdest
 
struct osub testsh
 
struct osub currentenc
 
struct badsubsegencloop
 
REAL segmentlength
 
REAL nearestpoweroftwo
 
REAL multiplier
 
REAL divisor
 
int acuteorg
 
int acuteorg2
 
int acutedest
 
int acutedest2
 
vertex borg
 
vertex bdest
 
vertex bapex
 
int errorflag
 
struct osub checkmark
 
m vertices deaditemstack = (VOID *) NULL
 
FILE * infile
 
char * infilename = nodefilename
 
char * nodefilename
 
REAL x
 
REAL y
 
int firstnode
 
int nodemarkers
 
int currentmarker
 
xminextreme = 10 * m->xmin - 9 * m->xmax
 
REAL ** hlist = holelist
 
REAL ** rlist = (REAL *) NULL
 
int index
 
int argc
 
long outvertices
 
int vertexnumber = b->firstnumber
 
 outfile = fopen(nodefilename, "w")
 
vertex p1
 
vertex p2
 
vertex p3
 
vertex mid1
 
vertex mid2
 
vertex mid3
 
long holenumber
 
long regionnumber
 
long subsegnumber = b->firstnumber
 
char * edgefilename
 
struct otri triangleloop trisym
 
long edgenumber = b->firstnumber
 
char * vnodefilename
 
char * vedgefilename
 
long vnodenumber = b->firstnumber
 
long vedgenumber = b->firstnumber
 
char * neighborfilename
 
int neighbor1
 
int neighbor2
 
int neighbor3
 
char * offfilename
 
vertex p [3]
 
REAL cossquaretable [8]
 
REAL ratiotable [16] = 1.5
 
REAL edgelength [3]
 
REAL cossquare
 
REAL triarea
 
REAL shortest = minaltitude
 
REAL longest = 0.0
 
REAL trilongest2
 
REAL smallestarea = minaltitude
 
REAL biggestarea = 0.0
 
REAL triminaltitude2
 
REAL minaltitude = m->xmax - m->xmin + m->ymax - m->ymin
 
REAL triaspect2
 
REAL worstaspect = 0.0
 
REAL smallestangle = 0.0
 
REAL biggestangle = 2.0
 
REAL radconst = PI / 18.0
 
REAL degconst = 180.0 / PI
 
int angletable [18]
 
int aspecttable [16]
 
int aspectindex
 
int tendegree
 
int acutebiggest = 1
 
int ii
 
REAL * holearray
 
REAL * regionarray
 
struct timeval tv0 tv1 tv2 tv3 tv4 tv5 tv6
 
struct timezone tz
 
gettimeofday & tv0
 
steinerleft = b.steiner
 
edges = (3l * m.triangles.items + m.hullsize) / 2l
 
 return
 

Detailed Description

This file is part of the triangle source code, not part of Chaste per se.

We use the <autogenerated> tag to ignore it from our Doxygen checker.

Definition in file triangle.cpp.

Macro Definition Documentation

◆ Absolute

#define Absolute (   a)    ((a) >= 0.0 ? (a) : -(a))

Definition at line 4833 of file triangle.cpp.

◆ apex

#define apex (   otri,
  vertexptr 
)     vertexptr = (vertex) (otri).tri[(otri).orient + 3]

Definition at line 1152 of file triangle.cpp.

◆ areabound

#define areabound (   otri)    ((REAL *) (otri).tri)[m->areaboundindex]

Definition at line 1216 of file triangle.cpp.

◆ BADSUBSEGPERBLOCK

#define BADSUBSEGPERBLOCK   252

Definition at line 300 of file triangle.cpp.

◆ BADTRIPERBLOCK

#define BADTRIPERBLOCK   4092

Definition at line 302 of file triangle.cpp.

◆ bond

#define bond (   otri1,
  otri2 
)
Value:
(otri1).tri[(otri1).orient] = encode(otri2); \
(otri2).tri[(otri2).orient] = encode(otri1)

Definition at line 1166 of file triangle.cpp.

◆ deadsubseg

#define deadsubseg (   sub)    ((sub)[1] == (subseg) NULL)

Definition at line 1349 of file triangle.cpp.

◆ deadtri

#define deadtri (   tria)    ((tria)[1] == (triangle) NULL)

Definition at line 1226 of file triangle.cpp.

◆ DEADVERTEX

#define DEADVERTEX   -32768

Definition at line 315 of file triangle.cpp.

◆ decode

#define decode (   ptr,
  otri 
)
Value:
(otri).orient = (int) ((unsigned long) (ptr) & (unsigned long) 3l); \
(otri).tri = (triangle *) \
((unsigned long) (ptr) ^ (unsigned long) (otri).orient)

Definition at line 1021 of file triangle.cpp.

◆ dest

#define dest (   otri,
  vertexptr 
)     vertexptr = (vertex) (otri).tri[minus1mod3[(otri).orient] + 3]

Definition at line 1149 of file triangle.cpp.

◆ dissolve

#define dissolve (   otri)     (otri).tri[(otri).orient] = (triangle) m->dummytri

Definition at line 1175 of file triangle.cpp.

◆ dnext

#define dnext (   otri1,
  otri2 
)
Value:
sym(otri1, otri2); \
lprevself(otri2);

Definition at line 1095 of file triangle.cpp.

◆ dnextself

#define dnextself (   otri)
Value:
symself(otri); \
lprevself(otri);

Definition at line 1099 of file triangle.cpp.

◆ dprev

#define dprev (   otri1,
  otri2 
)
Value:
lnext(otri1, otri2); \
symself(otri2);

Definition at line 1107 of file triangle.cpp.

◆ dprevself

#define dprevself (   otri)
Value:
lnextself(otri); \
symself(otri);

Definition at line 1111 of file triangle.cpp.

◆ elemattribute

#define elemattribute (   otri,
  attnum 
)     ((REAL *) (otri).tri)[m->elemattribindex + (attnum)]

Definition at line 1208 of file triangle.cpp.

◆ encode

#define encode (   otri)     (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient)

Definition at line 1030 of file triangle.cpp.

◆ Fast_Two_Sum

#define Fast_Two_Sum (   a,
  b,
  x,
 
)
Value:
x = (REAL) (a + b); \
Fast_Two_Sum_Tail(a, b, x, y)

Definition at line 4853 of file triangle.cpp.

◆ Fast_Two_Sum_Tail

#define Fast_Two_Sum_Tail (   a,
  b,
  x,
 
)
Value:
bvirt = x - a; \
y = b - bvirt

Definition at line 4849 of file triangle.cpp.

◆ FILENAMESIZE

#define FILENAMESIZE   2048

Definition at line 284 of file triangle.cpp.

◆ FLIPSTACKERPERBLOCK

#define FLIPSTACKERPERBLOCK   252

Definition at line 304 of file triangle.cpp.

◆ FREEVERTEX

#define FREEVERTEX   2

Definition at line 314 of file triangle.cpp.

◆ INEXACT

#define INEXACT   /* Nothing */

Definition at line 279 of file triangle.cpp.

◆ infect

#define infect (   otri)
Value:
(otri).tri[6] = (triangle) \
((unsigned long) (otri).tri[6] | (unsigned long) 2l)

Definition at line 1193 of file triangle.cpp.

◆ infected

#define infected (   otri)     (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l)

Definition at line 1203 of file triangle.cpp.

◆ INPUTLINESIZE

#define INPUTLINESIZE   1024

Definition at line 289 of file triangle.cpp.

◆ INPUTVERTEX

#define INPUTVERTEX   0

Definition at line 312 of file triangle.cpp.

◆ killsubseg

#define killsubseg (   sub)
Value:
(sub)[1] = (subseg) NULL; \
(sub)[2] = (subseg) NULL

Definition at line 1351 of file triangle.cpp.

◆ killtri

#define killtri (   tria)
Value:
(tria)[1] = (triangle) NULL; \
(tria)[3] = (triangle) NULL

Definition at line 1228 of file triangle.cpp.

◆ lnext

#define lnext (   otri1,
  otri2 
)
Value:
(otri2).tri = (otri1).tri; \
(otri2).orient = plus1mod3[(otri1).orient]

Definition at line 1051 of file triangle.cpp.

◆ lnextself

#define lnextself (   otri)     (otri).orient = plus1mod3[(otri).orient]

Definition at line 1055 of file triangle.cpp.

◆ lprev

#define lprev (   otri1,
  otri2 
)
Value:
(otri2).tri = (otri1).tri; \
(otri2).orient = minus1mod3[(otri1).orient]

Definition at line 1060 of file triangle.cpp.

◆ lprevself

#define lprevself (   otri)     (otri).orient = minus1mod3[(otri).orient]

Definition at line 1064 of file triangle.cpp.

◆ mark

#define mark (   osub)    (* (int *) ((osub).ss + 8))

Definition at line 1315 of file triangle.cpp.

◆ ONETHIRD

#define ONETHIRD   0.333333333333333333333333333333333333333333333333333333333333

Definition at line 354 of file triangle.cpp.

◆ onext

#define onext (   otri1,
  otri2 
)
Value:
lprev(otri1, otri2); \
symself(otri2);

Definition at line 1071 of file triangle.cpp.

◆ onextself

#define onextself (   otri)
Value:
lprevself(otri); \
symself(otri);

Definition at line 1075 of file triangle.cpp.

◆ oprev

#define oprev (   otri1,
  otri2 
)
Value:
sym(otri1, otri2); \
lnextself(otri2);

Definition at line 1083 of file triangle.cpp.

◆ oprevself

#define oprevself (   otri)
Value:
symself(otri); \
lnextself(otri);

Definition at line 1087 of file triangle.cpp.

◆ org

#define org (   otri,
  vertexptr 
)     vertexptr = (vertex) (otri).tri[plus1mod3[(otri).orient] + 3]

Definition at line 1146 of file triangle.cpp.

◆ otricopy

#define otricopy (   otri1,
  otri2 
)
Value:
(otri2).tri = (otri1).tri; \
(otri2).orient = (otri1).orient

Definition at line 1180 of file triangle.cpp.

◆ otriequal

#define otriequal (   otri1,
  otri2 
)
Value:
(((otri1).tri == (otri2).tri) && \
((otri1).orient == (otri2).orient))

Definition at line 1186 of file triangle.cpp.

◆ PI

#define PI   3.141592653589793238462643383279502884197169399375105820974944592308

Definition at line 346 of file triangle.cpp.

◆ REAL

#define REAL   double

Definition at line 223 of file triangle.cpp.

◆ rnext

#define rnext (   otri1,
  otri2 
)
Value:
sym(otri1, otri2); \
lnextself(otri2); \
symself(otri2);

Definition at line 1119 of file triangle.cpp.

◆ rnextself

#define rnextself (   otri)
Value:
symself(otri); \
lnextself(otri); \
symself(otri);

Definition at line 1124 of file triangle.cpp.

◆ rprev

#define rprev (   otri1,
  otri2 
)
Value:
sym(otri1, otri2); \
lprevself(otri2); \
symself(otri2);

Definition at line 1133 of file triangle.cpp.

◆ rprevself

#define rprevself (   otri)
Value:
symself(otri); \
lprevself(otri); \
symself(otri);

Definition at line 1138 of file triangle.cpp.

◆ SAMPLEFACTOR

#define SAMPLEFACTOR   11

Definition at line 336 of file triangle.cpp.

◆ SAMPLERATE

#define SAMPLERATE   10

Definition at line 342 of file triangle.cpp.

◆ sbond

#define sbond (   osub1,
  osub2 
)
Value:
(osub1).ss[(osub1).ssorient] = sencode(osub2); \
(osub2).ss[(osub2).ssorient] = sencode(osub1)

Definition at line 1322 of file triangle.cpp.

◆ sdecode

#define sdecode (   sptr,
  osub 
)
Value:
(osub).ssorient = (int) ((unsigned long) (sptr) & (unsigned long) 1l); \
(osub).ss = (subseg *) \
((unsigned long) (sptr) & ~ (unsigned long) 3l)

Definition at line 1241 of file triangle.cpp.

◆ sdest

#define sdest (   osub,
  vertexptr 
)     vertexptr = (vertex) (osub).ss[3 - (osub).ssorient]

Definition at line 1290 of file triangle.cpp.

◆ sdissolve

#define sdissolve (   osub)     (osub).ss[(osub).ssorient] = (subseg) m->dummysub

Definition at line 1329 of file triangle.cpp.

◆ segdest

#define segdest (   osub,
  vertexptr 
)     vertexptr = (vertex) (osub).ss[5 - (osub).ssorient]

Definition at line 1302 of file triangle.cpp.

◆ SEGMENTVERTEX

#define SEGMENTVERTEX   1

Definition at line 313 of file triangle.cpp.

◆ segorg

#define segorg (   osub,
  vertexptr 
)     vertexptr = (vertex) (osub).ss[4 + (osub).ssorient]

Definition at line 1299 of file triangle.cpp.

◆ sencode

#define sencode (   osub)     (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient)

Definition at line 1250 of file triangle.cpp.

◆ setapex

#define setapex (   otri,
  vertexptr 
)     (otri).tri[(otri).orient + 3] = (triangle) vertexptr

Definition at line 1161 of file triangle.cpp.

◆ setareabound

#define setareabound (   otri,
  value 
)     ((REAL *) (otri).tri)[m->areaboundindex] = value

Definition at line 1218 of file triangle.cpp.

◆ setdest

#define setdest (   otri,
  vertexptr 
)     (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr

Definition at line 1158 of file triangle.cpp.

◆ setelemattribute

#define setelemattribute (   otri,
  attnum,
  value 
)     ((REAL *) (otri).tri)[m->elemattribindex + (attnum)] = value

Definition at line 1211 of file triangle.cpp.

◆ setmark

#define setmark (   osub,
  value 
)     * (int *) ((osub).ss + 8) = value

Definition at line 1317 of file triangle.cpp.

◆ setorg

#define setorg (   otri,
  vertexptr 
)     (otri).tri[plus1mod3[(otri).orient] + 3] = (triangle) vertexptr

Definition at line 1155 of file triangle.cpp.

◆ setsdest

#define setsdest (   osub,
  vertexptr 
)     (osub).ss[3 - (osub).ssorient] = (subseg) vertexptr

Definition at line 1296 of file triangle.cpp.

◆ setsegdest

#define setsegdest (   osub,
  vertexptr 
)     (osub).ss[5 - (osub).ssorient] = (subseg) vertexptr

Definition at line 1308 of file triangle.cpp.

◆ setsegorg

#define setsegorg (   osub,
  vertexptr 
)     (osub).ss[4 + (osub).ssorient] = (subseg) vertexptr

Definition at line 1305 of file triangle.cpp.

◆ setsorg

#define setsorg (   osub,
  vertexptr 
)     (osub).ss[2 + (osub).ssorient] = (subseg) vertexptr

Definition at line 1293 of file triangle.cpp.

◆ setvertex2tri

#define setvertex2tri (   vx,
  value 
)     ((triangle *) (vx))[m->vertex2triindex] = value

Definition at line 1404 of file triangle.cpp.

◆ setvertexmark

#define setvertexmark (   vx,
  value 
)     ((int *) (vx))[m->vertexmarkindex] = value

Definition at line 1394 of file triangle.cpp.

◆ setvertextype

#define setvertextype (   vx,
  value 
)     ((int *) (vx))[m->vertexmarkindex + 1] = value

Definition at line 1399 of file triangle.cpp.

◆ snext

#define snext (   osub1,
  osub2 
)
Value:
sptr = (osub1).ss[1 - (osub1).ssorient]; \
sdecode(sptr, osub2)

Definition at line 1276 of file triangle.cpp.

◆ snextself

#define snextself (   osub)
Value:
sptr = (osub).ss[1 - (osub).ssorient]; \
sdecode(sptr, osub)

Definition at line 1280 of file triangle.cpp.

◆ sorg

#define sorg (   osub,
  vertexptr 
)     vertexptr = (vertex) (osub).ss[2 + (osub).ssorient]

Definition at line 1287 of file triangle.cpp.

◆ spivot

#define spivot (   osub1,
  osub2 
)
Value:
sptr = (osub1).ss[(osub1).ssorient]; \
sdecode(sptr, osub2)

Definition at line 1265 of file triangle.cpp.

◆ spivotself

#define spivotself (   osub)
Value:
sptr = (osub).ss[(osub).ssorient]; \
sdecode(sptr, osub)

Definition at line 1269 of file triangle.cpp.

◆ SPLAYNODEPERBLOCK

#define SPLAYNODEPERBLOCK   508

Definition at line 306 of file triangle.cpp.

◆ Split

#define Split (   a,
  ahi,
  alo 
)
Value:
c = (REAL) (splitter * a); \
abig = (REAL) (c - a); \
ahi = c - abig; \
alo = a - ahi

Definition at line 4879 of file triangle.cpp.

◆ Square

#define Square (   a,
  x,
 
)
Value:
x = (REAL) (a * a); \
Square_Tail(a, x, y)

Definition at line 4916 of file triangle.cpp.

◆ Square_Tail

#define Square_Tail (   a,
  x,
 
)
Value:
Split(a, ahi, alo); \
err1 = x - (ahi * ahi); \
err3 = err1 - ((ahi + ahi) * alo); \
y = (alo * alo) - err3

Definition at line 4910 of file triangle.cpp.

◆ SQUAREROOTTWO

#define SQUAREROOTTWO   1.4142135623730950488016887242096980785696718753769480732

Definition at line 350 of file triangle.cpp.

◆ ssym

#define ssym (   osub1,
  osub2 
)
Value:
(osub2).ss = (osub1).ss; \
(osub2).ssorient = 1 - (osub1).ssorient

Definition at line 1255 of file triangle.cpp.

◆ ssymself

#define ssymself (   osub)     (osub).ssorient = 1 - (osub).ssorient

Definition at line 1259 of file triangle.cpp.

◆ stdissolve

#define stdissolve (   osub)     (osub).ss[6 + (osub).ssorient] = (subseg) m->dummytri

Definition at line 1385 of file triangle.cpp.

◆ stpivot

#define stpivot (   osub,
  otri 
)
Value:
ptr = (triangle) (osub).ss[6 + (osub).ssorient]; \
decode(ptr, otri)

Definition at line 1368 of file triangle.cpp.

◆ subsegcopy

#define subsegcopy (   osub1,
  osub2 
)
Value:
(osub2).ss = (osub1).ss; \
(osub2).ssorient = (osub1).ssorient

Definition at line 1334 of file triangle.cpp.

◆ subsegequal

#define subsegequal (   osub1,
  osub2 
)
Value:
(((osub1).ss == (osub2).ss) && \
((osub1).ssorient == (osub2).ssorient))

Definition at line 1340 of file triangle.cpp.

◆ SUBSEGPERBLOCK

#define SUBSEGPERBLOCK   508 /* Number of subsegments allocated at once. */

Definition at line 296 of file triangle.cpp.

◆ sym

#define sym (   otri1,
  otri2 
)
Value:
ptr = (otri1).tri[(otri1).orient]; \
decode(ptr, otri2);

Definition at line 1041 of file triangle.cpp.

◆ symself

#define symself (   otri)
Value:
ptr = (otri).tri[(otri).orient]; \
decode(ptr, otri);

Definition at line 1045 of file triangle.cpp.

◆ TRIPERBLOCK

#define TRIPERBLOCK   4092 /* Number of triangles allocated at once. */

Definition at line 295 of file triangle.cpp.

◆ tsbond

#define tsbond (   otri,
  osub 
)
Value:
(otri).tri[6 + (otri).orient] = (triangle) sencode(osub); \
(osub).ss[6 + (osub).ssorient] = (subseg) encode(otri)

Definition at line 1374 of file triangle.cpp.

◆ tsdissolve

#define tsdissolve (   otri)     (otri).tri[6 + (otri).orient] = (triangle) m->dummysub

Definition at line 1380 of file triangle.cpp.

◆ tspivot

#define tspivot (   otri,
  osub 
)
Value:
sptr = (subseg) (otri).tri[6 + (otri).orient]; \
sdecode(sptr, osub)

Definition at line 1361 of file triangle.cpp.

◆ Two_Diff

#define Two_Diff (   a,
  b,
  x,
 
)
Value:
x = (REAL) (a - b); \
Two_Diff_Tail(a, b, x, y)

Definition at line 4875 of file triangle.cpp.

◆ Two_Diff_Tail

#define Two_Diff_Tail (   a,
  b,
  x,
 
)
Value:
bvirt = (REAL) (a - x); \
avirt = x + bvirt; \
bround = bvirt - b; \
around = a - avirt; \
y = around + bround

Definition at line 4868 of file triangle.cpp.

◆ Two_One_Diff

#define Two_One_Diff (   a1,
  a0,
  b,
  x2,
  x1,
  x0 
)
Value:
Two_Diff(a0, b , _i, x0); \
Two_Sum( a1, _i, x2, x1)

Definition at line 4927 of file triangle.cpp.

◆ Two_One_Product

#define Two_One_Product (   a1,
  a0,
  b,
  x3,
  x2,
  x1,
  x0 
)
Value:
Split(b, bhi, blo); \
Two_Product_Presplit(a0, b, bhi, blo, _i, x0); \
Two_Product_Presplit(a1, b, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _k, x1); \
Fast_Two_Sum(_j, _k, x3, x2)

Definition at line 4941 of file triangle.cpp.

◆ Two_One_Sum

#define Two_One_Sum (   a1,
  a0,
  b,
  x2,
  x1,
  x0 
)
Value:
Two_Sum(a0, b , _i, x0); \
Two_Sum(a1, _i, x2, x1)

Definition at line 4923 of file triangle.cpp.

◆ Two_Product

#define Two_Product (   a,
  b,
  x,
 
)
Value:
x = (REAL) (a * b); \
Two_Product_Tail(a, b, x, y)

Definition at line 4893 of file triangle.cpp.

◆ Two_Product_Presplit

#define Two_Product_Presplit (   a,
  b,
  bhi,
  blo,
  x,
 
)
Value:
x = (REAL) (a * b); \
Split(a, ahi, alo); \
err1 = x - (ahi * bhi); \
err2 = err1 - (alo * bhi); \
err3 = err2 - (ahi * blo); \
y = (alo * blo) - err3

Definition at line 4900 of file triangle.cpp.

◆ Two_Product_Tail

#define Two_Product_Tail (   a,
  b,
  x,
 
)
Value:
Split(a, ahi, alo); \
Split(b, bhi, blo); \
err1 = x - (ahi * bhi); \
err2 = err1 - (alo * bhi); \
err3 = err2 - (ahi * blo); \
y = (alo * blo) - err3

Definition at line 4885 of file triangle.cpp.

◆ Two_Sum

#define Two_Sum (   a,
  b,
  x,
 
)
Value:
x = (REAL) (a + b); \
Two_Sum_Tail(a, b, x, y)

Definition at line 4864 of file triangle.cpp.

◆ Two_Sum_Tail

#define Two_Sum_Tail (   a,
  b,
  x,
 
)
Value:
bvirt = (REAL) (x - a); \
avirt = x - bvirt; \
bround = b - bvirt; \
around = a - avirt; \
y = around + bround

Definition at line 4857 of file triangle.cpp.

◆ Two_Two_Diff

#define Two_Two_Diff (   a1,
  a0,
  b1,
  b0,
  x3,
  x2,
  x1,
  x0 
)
Value:
Two_One_Diff(a1, a0, b0, _j, _0, x0); \
Two_One_Diff(_j, _0, b1, x3, x2, x1)

Definition at line 4935 of file triangle.cpp.

◆ Two_Two_Sum

#define Two_Two_Sum (   a1,
  a0,
  b1,
  b0,
  x3,
  x2,
  x1,
  x0 
)
Value:
Two_One_Sum(a1, a0, b0, _j, _0, x0); \
Two_One_Sum(_j, _0, b1, x3, x2, x1)

Definition at line 4931 of file triangle.cpp.

◆ UNDEADVERTEX

#define UNDEADVERTEX   -32767

Definition at line 316 of file triangle.cpp.

◆ uninfect

#define uninfect (   otri)
Value:
(otri).tri[6] = (triangle) \
((unsigned long) (otri).tri[6] & ~ (unsigned long) 2l)

Definition at line 1197 of file triangle.cpp.

◆ vertex2tri

#define vertex2tri (   vx)    ((triangle *) (vx))[m->vertex2triindex]

Definition at line 1402 of file triangle.cpp.

◆ vertexmark

#define vertexmark (   vx)    ((int *) (vx))[m->vertexmarkindex]

Definition at line 1392 of file triangle.cpp.

◆ VERTEXPERBLOCK

#define VERTEXPERBLOCK   4092 /* Number of vertices allocated at once. */

Definition at line 297 of file triangle.cpp.

◆ vertextype

#define vertextype (   vx)    ((int *) (vx))[m->vertexmarkindex + 1]

Definition at line 1397 of file triangle.cpp.

◆ VIRUSPERBLOCK

#define VIRUSPERBLOCK   1020 /* Number of virus triangles allocated at once. */

Definition at line 298 of file triangle.cpp.

◆ VOID

#define VOID   int

Definition at line 326 of file triangle.cpp.

Typedef Documentation

◆ subseg

typedef REAL** subseg

Definition at line 604 of file triangle.cpp.

◆ triangle

typedef REAL** triangle

Definition at line 587 of file triangle.cpp.

◆ vertex

typedef REAL* vertex

Definition at line 621 of file triangle.cpp.

Enumeration Type Documentation

◆ finddirectionresult

enum finddirectionresult

Definition at line 468 of file triangle.cpp.

◆ insertvertexresult

enum insertvertexresult

Definition at line 460 of file triangle.cpp.

◆ locateresult

enum locateresult

Definition at line 452 of file triangle.cpp.

Function Documentation

◆ exactinit()

exactinit ( )

Definition at line 4967 of file triangle.cpp.

◆ for() [1/4]

for ( elementnumber  = 1; elementnumber <= m->inelements; elementnumber++)

Definition at line 11295 of file triangle.cpp.

◆ for() [2/4]

for ( = 0; i < m->eextras; i++)

Definition at line 4768 of file triangle.cpp.

◆ for() [3/4]

for ( )
Todo:
Horrible hack! (#1076/#1377)
Todo:
Store orientations? (#1076/#1377)

Definition at line 3406 of file triangle.cpp.

◆ for() [4/4]

for ( = 1; j < m->invertices; j++)

Definition at line 10080 of file triangle.cpp.

◆ if() [1/157]

if ( b->quiet||(b->noholes &&b->convex))

Definition at line 13085 of file triangle.cpp.

◆ if() [2/157]

if ( !b->quiet &&b->conformdel &&  m->badsubsegs.items > 0) &&(m->steinerleft==0)

Definition at line 13767 of file triangle.cpp.

◆ if() [3/157]

if ( !b->  quiet)

Definition at line 6794 of file triangle.cpp.

◆ if() [4/157]

if ( !b->refine &&!b->  poly)

Definition at line 3617 of file triangle.cpp.

◆ if() [5/157]

if ( !b.  quiet)

Definition at line 15811 of file triangle.cpp.

◆ if() [6/157]

if ( deadtribadotri.tri) &&(borg==badtri->triangorg) &&(bdest==badtri->triangdest) &&(bapex==badtri->triangapex)

Definition at line 13593 of file triangle.cpp.

◆ if() [7/157]

if ( scoutsegmentm, b, &searchtri1, endpoint1, newmark)

Definition at line 12054 of file triangle.cpp.

◆ if() [8/157]

if ( scoutsegmentm, b, &searchtri2, endpoint2, newmark)

Definition at line 12060 of file triangle.cpp.

◆ if() [9/157]

if ( !strcmp(&->[->innodefilename - 4]  ,
".ele"   
)

Definition at line 3590 of file triangle.cpp.

◆ if() [10/157]

if ( !strcmp(&->[->innodefilename - 5]  ,
".area"   
)

Definition at line 3594 of file triangle.cpp.

◆ if() [11/157]

if ( !strcmp(&->[->innodefilename - 5]  ,
".node"   
)

Definition at line 3582 of file triangle.cpp.

◆ if() [12/157]

if ( !strcmp(&->[->innodefilename - 5]  ,
".poly"   
)

Definition at line 3585 of file triangle.cpp.

◆ if() [13/157]

if ( ((holes > 0) &&!b->noholes)||!b->convex||(regions > 0)  )

Definition at line 13100 of file triangle.cpp.

◆ if() [14/157]

if ( ((leftvertex[0]==endpoint2[0]) &&(leftvertex[1]==endpoint2[1]))||((rightvertex[0]==endpoint2[0]) &&(rightvertex[1]==endpoint2[1]))  )

Definition at line 11917 of file triangle.cpp.

◆ if() [15/157]

if ( (acxtail==0.0) &&(acytail==0.0) &&(bcxtail==0.0) &&(bcytail==0.0)  )

Definition at line 5285 of file triangle.cpp.

◆ if() [16/157]

if ( (adxtail !=0.0)||(adytail !=0.0)  )

Definition at line 5671 of file triangle.cpp.

◆ if() [17/157]

if ( (adxtail !=0.0)||(adytail !=0.0)||(bdxtail !=0.0)||(bdytail !=0.0)  )

Definition at line 5548 of file triangle.cpp.

◆ if() [18/157]

if ( (adxtail==0.0) &&(bdxtail==0.0) &&(cdxtail==0.0) &&(adytail==0.0) &&(bdytail==0.0) &&(cdytail==0.0) &&(adheighttail==0.0) &&(bdheighttail==0.0) &&(cdheighttail==0.0)  )

Definition at line 6165 of file triangle.cpp.

◆ if() [19/157]

if ( (adxtail==0.0) &&(bdxtail==0.0) &&(cdxtail==0.0) &&(adytail==0.0) &&(bdytail==0.0) &&(cdytail==0.0)  )

Definition at line 5512 of file triangle.cpp.

◆ if() [20/157]

if ( (apexlen< orglen) &&(apexlen< destlen)  )

Definition at line 7337 of file triangle.cpp.

◆ if() [21/157]

if ( (b->minangle > 0.0)||b->vararea||b->fixedarea||b->  usertest)

Definition at line 13728 of file triangle.cpp.

◆ if() [22/157]

if ( (b->regionattrib||b->vararea) &&!b->  refine)

Definition at line 14307 of file triangle.cpp.

◆ if() [23/157]

if ( (b->voronoi||b->neighbors) &&(trisize< 6 *sizeof(triangle)+sizeof(int))  )

Definition at line 4429 of file triangle.cpp.

◆ if() [24/157]

if ( (bdxtail !=0.0)||(bdytail !=0.0)  )

Definition at line 5768 of file triangle.cpp.

◆ if() [25/157]

if ( (bdxtail !=0.0)||(bdytail !=0.0)||(cdxtail !=0.0)||(cdytail !=0.0)  )

Definition at line 5534 of file triangle.cpp.

◆ if() [26/157]

if ( (cdxtail !=0.0)||(cdytail !=0.0)  )

Definition at line 5865 of file triangle.cpp.

◆ if() [27/157]

if ( (cdxtail !=0.0)||(cdytail !=0.0)||(adxtail !=0.0)||(adytail !=0.0)  )

Definition at line 5541 of file triangle.cpp.

◆ if() [28/157]

if ( (det > errbound)||(-det > errbound)  )

Definition at line 6019 of file triangle.cpp.

◆ if() [29/157]

if ( (det >=errbound)||(-det >=errbound)  )

Definition at line 5276 of file triangle.cpp.

◆ if() [30/157]

if ( (dodist< aodist) &&(dodist< dadist)  )

Definition at line 6650 of file triangle.cpp.

◆ if() [31/157]

if ( (eindex< elen) &&(findex< flen)  )

Definition at line 5071 of file triangle.cpp.

◆ if() [32/157]

if ( (farvertex[0]==endpoint2[0]) &&(farvertex[1]==endpoint2[1])  )

Definition at line 12263 of file triangle.cpp.

◆ if() [33/157]

if ( (firstvertex[0]==secondvertex[0]) &&(firstvertex[1]==secondvertex[1])  )

Definition at line 10934 of file triangle.cpp.

◆ if() [34/157]

if ( (fnow > enow)  = = (fnow > -enow))

Definition at line 5063 of file triangle.cpp.

◆ if() [35/157]

if ( (holes > 0) &&!b->  noholes)

Definition at line 13112 of file triangle.cpp.

◆ if() [36/157]

if ( (intersect==ONEDGE)||(intersect==OUTSIDE)  )

Definition at line 8358 of file triangle.cpp.

◆ if() [37/157]

if ( (leftvertex[0]==endpoint1[0]) &&(leftvertex[1]==endpoint1[1])  )

Definition at line 11860 of file triangle.cpp.

◆ if() [38/157]

if ( (leftvertex[1]< rightvertex[1])||((leftvertex[1]==rightvertex[1]) &&(leftvertex[0]< rightvertex[0]))  )

Definition at line 10549 of file triangle.cpp.

◆ if() [39/157]

if ( (Q !=0.0)||(hindex==0)  )

Definition at line 5113 of file triangle.cpp.

◆ if() [40/157]

else if ( (rightvertex[0] !=endpoint1[0])||(rightvertex[1] !=endpoint1[1])  )

Definition at line 11862 of file triangle.cpp.

◆ if() [41/157]

if ( (tdest[0]==searchpoint[0]) &&(tdest[1]==searchpoint[1])  )

Definition at line 7849 of file triangle.cpp.

◆ if() [42/157]

if ( (torg[0]==searchpoint[0]) &&(torg[1]==searchpoint[1])  )

Definition at line 7846 of file triangle.cpp.

◆ if() [43/157]

if ( adheighttail !  = 0.0)

Definition at line 6326 of file triangle.cpp.

◆ if() [44/157]

if ( adxtail !  = 0.0)

Definition at line 5556 of file triangle.cpp.

◆ if() [45/157]

if ( adxtail  = = 0.0)

Definition at line 6190 of file triangle.cpp.

◆ if() [46/157]

if ( adytail !  = 0.0)

Definition at line 5575 of file triangle.cpp.

◆ if() [47/157]

else if ( ahead  = = 0.0)

Definition at line 7859 of file triangle.cpp.

◆ if() [48/157]

if ( angle  ,
b->  goodangle 
)

Definition at line 7393 of file triangle.cpp.

◆ if() [49/157]

if ( area  = = 0.0)

Definition at line 12274 of file triangle.cpp.

◆ if() [50/157]

if ( arraysize - divider >=  2)

Definition at line 9455 of file triangle.cpp.

◆ if() [51/157]

if ( arraysize<=  3)

Definition at line 9447 of file triangle.cpp.

◆ if() [52/157]

if ( arraysize  = = 2)

Definition at line 9296 of file triangle.cpp.

◆ if() [53/157]

if ( b->convex||!b->  poly)

Definition at line 12631 of file triangle.cpp.

◆ if() [54/157]

if ( b->dwyer &&  axis==1)

Definition at line 9538 of file triangle.cpp.

◆ if() [55/157]

if ( b->  goodangle = = 1.0)
Initial value:
{
struct otri triangleloop

Definition at line 3604 of file triangle.cpp.

◆ if() [56/157]

if ( b->  innodefilename[0] = = '\0')

Definition at line 3579 of file triangle.cpp.

◆ if() [57/157]

if ( b->jettison &&b->nonodewritten &&!b->  quiet)

Definition at line 3635 of file triangle.cpp.

◆ if() [58/157]

if ( b->poly||b->  refine)

Definition at line 15657 of file triangle.cpp.

◆ if() [59/157]

b goodangle * if ( b->refine &&b->  noiterationnum)

Definition at line 3610 of file triangle.cpp.

◆ if() [60/157]

if ( b->refine||!b->  poly)

Definition at line 3622 of file triangle.cpp.

◆ if() [61/157]

if ( b->vararea||b->fixedarea||b->  usertest)

Definition at line 7366 of file triangle.cpp.

◆ if() [62/157]

if ( b->verbose &&  m->badsubsegs.items > 0)

Definition at line 13719 of file triangle.cpp.

◆ if() [63/157]

if ( b->  verbose,
 
)

Definition at line 8325 of file triangle.cpp.

◆ if() [64/157]

if ( b->  verbose,
 
)

Definition at line 7000 of file triangle.cpp.

◆ if() [65/157]

if ( b->weighted &&  b->poly||b->quality)

Definition at line 3627 of file triangle.cpp.

◆ if() [66/157]

if ( b.nonodewritten||  b.noiterationnum &&m.readnodefile)

Definition at line 15965 of file triangle.cpp.

◆ if() [67/157]

if ( b.  order,
 
)

Definition at line 15934 of file triangle.cpp.

◆ if() [68/157]

if ( b.poly &&  m.triangles.items > 0)

Definition at line 15880 of file triangle.cpp.

◆ if() [69/157]

if ( b.poly||b.  convex)

Definition at line 16000 of file triangle.cpp.

◆ if() [70/157]

if ( b.quality &&  m.triangles.items > 0)

Definition at line 15913 of file triangle.cpp.

◆ if() [71/157]

if ( b.  refine)

Definition at line 15819 of file triangle.cpp.

◆ if() [72/157]

if ( badtri->key >=1.  0)

Definition at line 7010 of file triangle.cpp.

◆ if() [73/157]

if ( bdheighttail !  = 0.0)

Definition at line 6332 of file triangle.cpp.

◆ if() [74/157]

if ( bdxtail !  = 0.0)

Definition at line 5594 of file triangle.cpp.

◆ if() [75/157]

if ( bdytail !  = 0.0)

Definition at line 5613 of file triangle.cpp.

◆ if() [76/157]

if ( bestnumber  ,
 
)

Definition at line 8987 of file triangle.cpp.

◆ if() [77/157]

if ( biggestangle >=1.  0)

Definition at line 15583 of file triangle.cpp.

◆ if() [78/157]

if ( cdheighttail !  = 0.0)

Definition at line 6338 of file triangle.cpp.

◆ if() [79/157]

if ( cdxtail !  = 0.0)

Definition at line 5632 of file triangle.cpp.

◆ if() [80/157]

if ( cdytail !  = 0.0)

Definition at line 5651 of file triangle.cpp.

◆ if() [81/157]

if ( checkedge.  tri = = m->dummytri)

Definition at line 10241 of file triangle.cpp.

◆ if() [82/157]

if ( checkvertex !  = endpoint1)

Definition at line 12361 of file triangle.cpp.

◆ if() [83/157]

if ( checkvertex  = = splaytree->keydest)

Definition at line 10659 of file triangle.cpp.

◆ if() [84/157]

else if ( collinear  = = LEFTCOLLINEAR)

Definition at line 11926 of file triangle.cpp.

◆ if() [85/157]

if ( collision  )

Definition at line 12317 of file triangle.cpp.

◆ if() [86/157]

if ( counterclockwise(m, b, innerleftdest, innerleftapex, innerrightorg)  ,
0.  0 
)

Definition at line 9581 of file triangle.cpp.

◆ if() [87/157]

if ( counterclockwise(m, b, innerrightapex, innerrightorg, innerleftdest)  ,
0.  0 
)

Definition at line 9590 of file triangle.cpp.

◆ if() [88/157]

if ( crosssubseg.  ss = = m->dummysub)

Definition at line 11944 of file triangle.cpp.

◆ if() [89/157]

if ( current+m->vertices.itemsfirstblock<=  number)

Definition at line 4677 of file triangle.cpp.

◆ if() [90/157]

if ( denom  = = 0.0)

Definition at line 11809 of file triangle.cpp.

◆ if() [91/157]

if ( detleft  ,
0.  0 
)

Definition at line 5344 of file triangle.cpp.

◆ if() [92/157]

if ( )
Initial value:
{
struct badtriang *result

Definition at line 5350 of file triangle.cpp.

◆ if() [93/157]

if ( doflip  )

Definition at line 9001 of file triangle.cpp.

◆ if() [94/157]

if ( edgecount  ,
 
)

Definition at line 9082 of file triangle.cpp.

◆ if() [95/157]

if ( elefile  = = (FILE *) NULL)

Definition at line 11265 of file triangle.cpp.

◆ if() [96/157]

if ( encodedtri !  = (triangle) NULL)

Definition at line 12357 of file triangle.cpp.

◆ if() [97/157]

if ( encroached &&  !b->nobisect||((b->nobisect==1) &&(sides==2)))

Definition at line 7255 of file triangle.cpp.

◆ if() [98/157]

if ( eventnum  ,
 
)

Definition at line 10466 of file triangle.cpp.

◆ if() [99/157]

if ( eventvertex !  = (vertex) NULL)

Definition at line 10622 of file triangle.cpp.

◆ if() [100/157]

if ( faredge.ss !  = m->dummysub)

Definition at line 12135 of file triangle.cpp.

◆ if() [101/157]

if ( fartri.  tri = = m->dummytri)

Definition at line 12131 of file triangle.cpp.

◆ if() [102/157]

if ( hh !  = 0)

Definition at line 5161 of file triangle.cpp.

◆ if() [103/157]

if ( holes  ,
 
)

Definition at line 14833 of file triangle.cpp.

◆ if() [104/157]

else if ( horrors  = = 0)

Definition at line 6850 of file triangle.cpp.

◆ if() [105/157]

if ( increment  ,
 
)

Definition at line 3655 of file triangle.cpp.

◆ if() [106/157]

else if ( increment  = = 0)

Definition at line 3681 of file triangle.cpp.

◆ if() [107/157]

if ( innerleftdest  = = farleftpt)

Definition at line 9618 of file triangle.cpp.

◆ if() [108/157]

if ( innerrightorg  = = farrightpt)

Definition at line 9622 of file triangle.cpp.

◆ if() [109/157]

if ( intersect  = = ONVERTEX)

Definition at line 8351 of file triangle.cpp.

◆ if() [110/157]

if ( left  ,
 
)

Definition at line 9334 of file triangle.cpp.

◆ if() [111/157]

if ( left  ,
median   
)

Definition at line 9412 of file triangle.cpp.

◆ if() [112/157]

if ( leftccw  = = 0.0)

Definition at line 11742 of file triangle.cpp.

◆ if() [113/157]

if ( leftflag &&  rightflag)

Definition at line 11702 of file triangle.cpp.

◆ if() [114/157]

if ( leftside  )

Definition at line 12144 of file triangle.cpp.

◆ if() [115/157]

if ( leftsubseg.ss !  = m->dummysub)

Definition at line 9100 of file triangle.cpp.

◆ if() [116/157]

else if ( lefttree->  rchild = = (struct splaynode *) NULL)

Definition at line 10732 of file triangle.cpp.

◆ if() [117/157]

if ( lefttree  = = (struct splaynode *) NULL)

Definition at line 10728 of file triangle.cpp.

◆ if() [118/157]

if ( m->  checksegments = = 0)

Definition at line 8051 of file triangle.cpp.

◆ if() [119/157]

else if ( m->eextras+b->  regionattrib,
 
)

Definition at line 4422 of file triangle.cpp.

◆ if() [120/157]

if ( m->mesh_dim !  = 2)

Definition at line 14081 of file triangle.cpp.

◆ if() [121/157]

if ( m->  queuefront[queuenumber] = = (struct badtriang *) NULL)

Definition at line 7046 of file triangle.cpp.

◆ if() [122/157]

if ( m->recenttri.tri !  = (triangle *) NULL)

Definition at line 7756 of file triangle.cpp.

◆ if() [123/157]

if ( m->  steinerleft,
 
)

Definition at line 11837 of file triangle.cpp.

◆ if() [124/157]

if ( m->triangles.  items = = 0)

Definition at line 11136 of file triangle.cpp.

◆ if() [125/157]

if ( m->viri.  items,
 
)

Definition at line 13180 of file triangle.cpp.

◆ if() [126/157]

if ( m->ymax - m->  ymin,
width   
)

Definition at line 10156 of file triangle.cpp.

◆ if() [127/157]

if ( m.  regions,
 
)

Definition at line 16030 of file triangle.cpp.

◆ if() [128/157]

if ( maxlen  ,
0.05 *(triorg[0] *triorg[0]+triorg[1] *triorg[1])+0.  02 
)

Definition at line 1474 of file triangle.cpp.

◆ if() [129/157]

if ( memptr  = = (VOID *) NULL)

Definition at line 1513 of file triangle.cpp.

◆ if() [130/157]

if ( neighbortri.tri !  = m->dummytri)

Definition at line 7207 of file triangle.cpp.

◆ if() [131/157]

if ( newseg  = = (struct badsubseg *) NULL)

Definition at line 4637 of file triangle.cpp.

◆ if() [132/157]

if ( newsubseg.  ss = = m->dummysub)

Definition at line 7917 of file triangle.cpp.

◆ if() [133/157]

if ( newsubseg  = = (subseg *) NULL)

Definition at line 4538 of file triangle.cpp.

◆ if() [134/157]

if ( newtriangle  = = (triangle *) NULL)

Definition at line 4492 of file triangle.cpp.

◆ if() [135/157]

if ( newvertex  = = (vertex) NULL)

Definition at line 4584 of file triangle.cpp.

◆ if() [136/157]

if ( outfile  = = (FILE *) NULL)

Definition at line 14482 of file triangle.cpp.

◆ if() [137/157]

if ( posexponent  )

Definition at line 7039 of file triangle.cpp.

◆ if() [138/157]

if ( printtri.  tri = = m->dummytri)

Definition at line 3762 of file triangle.cpp.

◆ if() [139/157]

if ( regions  ,
 
)

Definition at line 13092 of file triangle.cpp.

◆ if() [140/157]

if ( result  = = m->queuetail[m->firstnonemptyq])

Definition at line 7146 of file triangle.cpp.

◆ if() [141/157]

else if ( rightccw  = = 0.0)

Definition at line 11744 of file triangle.cpp.

◆ if() [142/157]

else if ( rightofhyperbola(m, &splayroot->keyedge, searchpoint)  )

Definition at line 10776 of file triangle.cpp.

◆ if() [143/157]

if ( rightsubseg.ss !  = m->dummysub)

Definition at line 9104 of file triangle.cpp.

◆ if() [144/157]

else if ( righttree->  lchild = = (struct splaynode *) NULL)

Definition at line 10736 of file triangle.cpp.

◆ if() [145/157]

else if ( righttree  = = (struct splaynode *) NULL)

Definition at line 10730 of file triangle.cpp.

◆ if() [146/157]

if ( scoutsegment(m, b, &searchtri1, endpoint2, newmark)  )

Definition at line 12379 of file triangle.cpp.

◆ if() [147/157]

if ( scoutsegment(m, b, &searchtri2, endpoint1, newmark)  )

Definition at line 12412 of file triangle.cpp.

◆ if() [148/157]

smallestarea *biggestarea * if ( smallestangle >=1.  0)

Definition at line 15578 of file triangle.cpp.

◆ if() [149/157]

if ( splayroot  = = (struct splaynode *) NULL)

Definition at line 10773 of file triangle.cpp.

◆ if() [150/157]

if ( splaytree  = = (struct splaynode *) NULL)

Definition at line 10655 of file triangle.cpp.

◆ if() [151/157]

if ( splitseg  = = (struct osub *) NULL)

Definition at line 8329 of file triangle.cpp.

◆ if() [152/157]

if ( success !  = SUCCESSFULVERTEX)

Definition at line 11830 of file triangle.cpp.

◆ if() [153/157]

if ( success  = = DUPLICATEVERTEX)

Definition at line 12018 of file triangle.cpp.

◆ if() [154/157]

if ( vertexmark(tridest)  = = 0)

Definition at line 7912 of file triangle.cpp.

◆ if() [155/157]

if ( vertexmark(triorg)  = = 0)

Definition at line 7909 of file triangle.cpp.

◆ if() [156/157]

else if ( vertices  = = 2)

Definition at line 9849 of file triangle.cpp.

◆ if() [157/157]

if ( width  = = 0.0)

Definition at line 10159 of file triangle.cpp.

◆ info()

void info ( )

Definition at line 1627 of file triangle.cpp.

◆ internalerror()

void internalerror ( )

Definition at line 3348 of file triangle.cpp.

◆ precisionerror()

void precisionerror ( )

Definition at line 13288 of file triangle.cpp.

◆ syntax()

void syntax ( )

Definition at line 1547 of file triangle.cpp.

◆ while() [1/23]

while ( !farrightflag &&  rightofhyperbolam, searchtri, searchvertex)

Definition at line 10856 of file triangle.cpp.

◆ while() [2/23]

while ( !otriequal *,  countingtri)

Definition at line 9063 of file triangle.cpp.

◆ while() [3/23]

while ( otriequalnextedge, finaledge)

Definition at line 10252 of file triangle.cpp.

◆ while() [4/23]

while ( *!='\0 'result &&*!='# 'result &&*!=' 'result &&*!='\ '  t)

Definition at line 13942 of file triangle.cpp.

◆ while() [5/23]

while ( *!='\0 'result &&*!='# 'result &&*!='. 'result &&*!='+ 'result &&*!='- 'result &&  (*result< '0')||(*result > '9'))

Definition at line 13907 of file triangle.cpp.

◆ while() [6/23]

while ( (m->badsubsegs.items > 0) &&(m->steinerleft !=0)  )

Definition at line 13346 of file triangle.cpp.

◆ while() [7/23]

while ( )

Definition at line 7603 of file triangle.cpp.

◆ while() [8/23]

while ( )

Definition at line 5097 of file triangle.cpp.

◆ while() [9/23]

while ( heapsize  ,
 
)

Definition at line 10952 of file triangle.cpp.

◆ while() [10/23]

while ( leftflag  )

Definition at line 11712 of file triangle.cpp.

◆ while() [11/23]

while ( leftright->rchild !  = (struct splaynode *) NULL)

Definition at line 10743 of file triangle.cpp.

◆ while() [12/23]

while ( length  ,
2.  0 
)

Definition at line 7022 of file triangle.cpp.

◆ while() [13/23]

while ( m->lastflip !  = (struct flipstacker *) NULL)

Definition at line 9155 of file triangle.cpp.

◆ while() [14/23]

while ( nexttri.tri !  = m->dummytri)

Definition at line 12470 of file triangle.cpp.

◆ while() [15/23]

while ( notdone  )

Definition at line 10372 of file triangle.cpp.

◆ while() [16/23]

while ( rightflag  )

Definition at line 11727 of file triangle.cpp.

◆ while() [17/23]

while ( SAMPLEFACTOR *m->samples *m->samples *m->samples< m->triangles.  items)

Definition at line 7780 of file triangle.cpp.

◆ while() [18/23]

while ( subsegloop.ss !  = (subseg *) NULL)

Definition at line 13270 of file triangle.cpp.

◆ while() [19/23]

while ( totalsamplesleft  ,
 
)

Definition at line 7799 of file triangle.cpp.

◆ while() [20/23]

while ( triangleloop.tri !  = (triangle *) NULL)

Definition at line 6801 of file triangle.cpp.

◆ while() [21/23]

while ( vertexloop !  = (vertex) NULL)

Definition at line 10323 of file triangle.cpp.

◆ while() [22/23]

while ( virusloop !  = (triangle **) NULL)

Definition at line 12766 of file triangle.cpp.

◆ while() [23/23]

while ( workstring !  [j] = '\0')

Definition at line 3648 of file triangle.cpp.

Variable Documentation

◆ _0

REAL _0

Definition at line 5260 of file triangle.cpp.

◆ _i

INEXACT REAL _i

Definition at line 5259 of file triangle.cpp.

◆ _j

INEXACT REAL _j

Definition at line 5259 of file triangle.cpp.

◆ _k

INEXACT REAL _k

Definition at line 6115 of file triangle.cpp.

◆ aa

REAL aa[4]

Definition at line 5421 of file triangle.cpp.

◆ aa3

INEXACT REAL aa3

Definition at line 5422 of file triangle.cpp.

◆ ab

REAL ab = ab3

Definition at line 5404 of file triangle.cpp.

◆ ab3

INEXACT REAL ab3

Definition at line 5405 of file triangle.cpp.

◆ abdet

REAL abdet

Definition at line 5412 of file triangle.cpp.

◆ abig

INEXACT REAL abig

Definition at line 5154 of file triangle.cpp.

◆ ablen

int ablen = fast_expansion_sum_zeroelim(alen, adet, blen, bdet, abdet)

Definition at line 5413 of file triangle.cpp.

◆ ablen2

ablen2 = xab * xab + yab * yab

Definition at line 10584 of file triangle.cpp.

◆ abt

REAL abt

Definition at line 5444 of file triangle.cpp.

◆ abtlen

int abtlen = fast_expansion_sum_zeroelim(at_blen, at_b, bt_alen, bt_a, abt)

Definition at line 5445 of file triangle.cpp.

◆ abtt

REAL abtt[4]

Definition at line 5446 of file triangle.cpp.

◆ abtt3

INEXACT REAL abtt3

Definition at line 5448 of file triangle.cpp.

◆ abttlen

int abttlen

Definition at line 5447 of file triangle.cpp.

◆ aclen2

REAL aclen2
Initial value:
{
REAL xac, yac, xbc, ybc, xab, yab

Definition at line 10584 of file triangle.cpp.

◆ acutebiggest

acutebiggest = 1

Definition at line 15456 of file triangle.cpp.

◆ acutedest

int acutedest

Definition at line 13338 of file triangle.cpp.

◆ acutedest2

int acutedest2

Definition at line 13338 of file triangle.cpp.

◆ acuteorg

int acuteorg

Definition at line 13338 of file triangle.cpp.

◆ acuteorg2

int acuteorg2

Definition at line 13338 of file triangle.cpp.

◆ acx

acx = (REAL) (pa[0] - pc[0])

Definition at line 5262 of file triangle.cpp.

◆ acxtail

REAL acxtail
Initial value:
{
INEXACT REAL acx, acy, bcx, bcy

Definition at line 5241 of file triangle.cpp.

◆ acy

acy = (REAL) (pa[1] - pc[1])

Definition at line 5264 of file triangle.cpp.

◆ acytail

REAL acytail

Definition at line 5241 of file triangle.cpp.

◆ adet

REAL adet

Definition at line 5406 of file triangle.cpp.

◆ adheight

adheight = (REAL) (aheight - dheight)

Definition at line 6124 of file triangle.cpp.

◆ adheighttail

REAL adheighttail

Definition at line 6084 of file triangle.cpp.

◆ adx

adx = (REAL) (pa[0] - pd[0])

Definition at line 5460 of file triangle.cpp.

◆ adxadx0

REAL adxadx0

Definition at line 5420 of file triangle.cpp.

◆ adxadx1

INEXACT REAL adxadx1

Definition at line 5419 of file triangle.cpp.

◆ adxbdy

REAL adxbdy = adx * bdy

Definition at line 5981 of file triangle.cpp.

◆ adxbdy0

REAL adxbdy0

Definition at line 5403 of file triangle.cpp.

◆ adxbdy1

INEXACT REAL adxbdy1

Definition at line 5402 of file triangle.cpp.

◆ adxcdy

REAL adxcdy = adx * cdy

Definition at line 5981 of file triangle.cpp.

◆ adxcdy0

REAL adxcdy0

Definition at line 5403 of file triangle.cpp.

◆ adxcdy1

INEXACT REAL adxcdy1

Definition at line 5402 of file triangle.cpp.

◆ adxt_bdy0

REAL adxt_bdy0

Definition at line 6093 of file triangle.cpp.

◆ adxt_bdy1

INEXACT REAL adxt_bdy1

Definition at line 6091 of file triangle.cpp.

◆ adxt_bdyt0

REAL adxt_bdyt0

Definition at line 6103 of file triangle.cpp.

◆ adxt_bdyt1

INEXACT REAL adxt_bdyt1

Definition at line 6101 of file triangle.cpp.

◆ adxt_cdy0

REAL adxt_cdy0

Definition at line 6093 of file triangle.cpp.

◆ adxt_cdy1

INEXACT REAL adxt_cdy1

Definition at line 6091 of file triangle.cpp.

◆ adxt_cdyt0

REAL adxt_cdyt0

Definition at line 6103 of file triangle.cpp.

◆ adxt_cdyt1

INEXACT REAL adxt_cdyt1

Definition at line 6101 of file triangle.cpp.

◆ adxtail

REAL adxtail

Definition at line 5418 of file triangle.cpp.

◆ ady

ady = (REAL) (pa[1] - pd[1])

Definition at line 5463 of file triangle.cpp.

◆ adyady0

REAL adyady0

Definition at line 5420 of file triangle.cpp.

◆ adyady1

INEXACT REAL adyady1

Definition at line 5419 of file triangle.cpp.

◆ adyt_bdx0

REAL adyt_bdx0

Definition at line 6097 of file triangle.cpp.

◆ adyt_bdx1

INEXACT REAL adyt_bdx1

Definition at line 6095 of file triangle.cpp.

◆ adyt_cdx0

REAL adyt_cdx0

Definition at line 6097 of file triangle.cpp.

◆ adyt_cdx1

INEXACT REAL adyt_cdx1

Definition at line 6095 of file triangle.cpp.

◆ adytail

REAL adytail

Definition at line 5418 of file triangle.cpp.

◆ ahead

ahead = counterclockwise(m, b, torg, tdest, searchpoint)

Definition at line 7735 of file triangle.cpp.

◆ aheight

REAL aheight

Definition at line 6059 of file triangle.cpp.

◆ ahi

REAL ahi

Definition at line 5155 of file triangle.cpp.

◆ alen

int alen = fast_expansion_sum_zeroelim(axxbclen, axxbc, ayybclen, ayybc, adet)

Definition at line 5407 of file triangle.cpp.

◆ alift

alift = adx * adx + ady * ady

Definition at line 5982 of file triangle.cpp.

◆ alignptr

unsigned long alignptr = (unsigned long) m->dummytribase

Definition at line 4287 of file triangle.cpp.

◆ alo

REAL alo

Definition at line 5155 of file triangle.cpp.

◆ angle

angle = dxod * dxda + dyod * dyda

Definition at line 7311 of file triangle.cpp.

◆ angletable

int angletable[18]

Definition at line 15452 of file triangle.cpp.

◆ aodist

aodist = xao * xao + yao * yao

Definition at line 6617 of file triangle.cpp.

◆ apexlen

apexlen = dxod2 + dyod2

Definition at line 7310 of file triangle.cpp.

◆ area

REAL area

Definition at line 1451 of file triangle.cpp.

◆ areaboundindex

m areaboundindex = m->elemattribindex + m->eextras + b->regionattrib

Definition at line 4417 of file triangle.cpp.

◆ areaelements

int areaelements

Definition at line 11221 of file triangle.cpp.

◆ areafile

FILE* areafile
Initial value:
{
FILE *elefile

Definition at line 11218 of file triangle.cpp.

◆ areafilename

char* areafilename

Definition at line 11205 of file triangle.cpp.

◆ argc

int argc

Definition at line 14377 of file triangle.cpp.

◆ argv

char ** argv

Definition at line 3368 of file triangle.cpp.

◆ around

REAL around

Definition at line 5056 of file triangle.cpp.

◆ aroundvertex

int aroundvertex

Definition at line 11244 of file triangle.cpp.

◆ arraysize

int arraysize

Definition at line 9287 of file triangle.cpp.

◆ aspectindex

int aspectindex

Definition at line 15454 of file triangle.cpp.

◆ aspecttable

int aspecttable[16]

Definition at line 15453 of file triangle.cpp.

◆ at_b

REAL at_b[4]

Definition at line 6088 of file triangle.cpp.

◆ at_blarge

INEXACT REAL at_blarge

Definition at line 6085 of file triangle.cpp.

◆ at_blen

int at_blen

Definition at line 6089 of file triangle.cpp.

◆ at_c

REAL at_c[4]

Definition at line 6088 of file triangle.cpp.

◆ at_clarge

INEXACT REAL at_clarge

Definition at line 6085 of file triangle.cpp.

◆ at_clen

int at_clen

Definition at line 6089 of file triangle.cpp.

◆ attrib

REAL attrib

Definition at line 8314 of file triangle.cpp.

◆ attribute

REAL attribute

Definition at line 12955 of file triangle.cpp.

◆ avirt

REAL avirt

Definition at line 5056 of file triangle.cpp.

◆ axbc

REAL axbc[8]

Definition at line 5406 of file triangle.cpp.

◆ axbclen

axbclen = scale_expansion_zeroelim(4, bc, adx, axbc)

Definition at line 5407 of file triangle.cpp.

◆ axis

int axis

Definition at line 9363 of file triangle.cpp.

◆ axtbb

REAL axtbb[8]

Definition at line 5431 of file triangle.cpp.

◆ axtbblen

int axtbblen

Definition at line 5432 of file triangle.cpp.

◆ axtbc

REAL axtbc[8]

Definition at line 5437 of file triangle.cpp.

◆ axtbclen

int axtbclen =0

Definition at line 5438 of file triangle.cpp.

◆ axtbct

REAL axtbct[16]

Definition at line 5439 of file triangle.cpp.

◆ axtbctlen

int axtbctlen

Definition at line 5440 of file triangle.cpp.

◆ axtbctt

REAL axtbctt[8]

Definition at line 5441 of file triangle.cpp.

◆ axtbcttlen

int axtbcttlen

Definition at line 5443 of file triangle.cpp.

◆ axtcc

REAL axtcc[8]

Definition at line 5431 of file triangle.cpp.

◆ axtcclen

int axtcclen

Definition at line 5432 of file triangle.cpp.

◆ axxbc

REAL axxbc[16]

Definition at line 5406 of file triangle.cpp.

◆ axxbclen

axxbclen = scale_expansion_zeroelim(axbclen, axbc, adx, axxbc)

Definition at line 5407 of file triangle.cpp.

◆ aybc

REAL aybc[8]

Definition at line 5406 of file triangle.cpp.

◆ aybclen

aybclen = scale_expansion_zeroelim(4, bc, ady, aybc)

Definition at line 5407 of file triangle.cpp.

◆ aytbb

REAL aytbb[8]

Definition at line 5431 of file triangle.cpp.

◆ aytbblen

int aytbblen

Definition at line 5432 of file triangle.cpp.

◆ aytbc

REAL aytbc[8]

Definition at line 5437 of file triangle.cpp.

◆ aytbclen

int aytbclen =0

Definition at line 5438 of file triangle.cpp.

◆ aytbct

REAL aytbct[16]

Definition at line 5439 of file triangle.cpp.

◆ aytbctlen

int aytbctlen

Definition at line 5440 of file triangle.cpp.

◆ aytbctt

REAL aytbctt[8]

Definition at line 5441 of file triangle.cpp.

◆ aytbcttlen

int aytbcttlen

Definition at line 5443 of file triangle.cpp.

◆ aytcc

REAL aytcc[8]

Definition at line 5431 of file triangle.cpp.

◆ aytcclen

int aytcclen

Definition at line 5432 of file triangle.cpp.

◆ ayybc

REAL ayybc[16]

Definition at line 5406 of file triangle.cpp.

◆ ayybclen

ayybclen = scale_expansion_zeroelim(aybclen, aybc, ady, ayybc)

Definition at line 5407 of file triangle.cpp.

◆ b

struct behavior b

Definition at line 3369 of file triangle.cpp.

◆ B

B[3] = B3

Definition at line 5245 of file triangle.cpp.

◆ B3

INEXACT REAL B3

Definition at line 5246 of file triangle.cpp.

◆ badedge

int badedge

Definition at line 9529 of file triangle.cpp.

◆ badtri

struct badtriang * badtri

Definition at line 6990 of file triangle.cpp.

◆ bapex

vertex bapex

Definition at line 13579 of file triangle.cpp.

◆ base1

base1 = tapex

Definition at line 7305 of file triangle.cpp.

◆ base2

base2 = torg

Definition at line 7305 of file triangle.cpp.

◆ baseedge

struct otri baseedge
Initial value:
{
struct otri leftcand, rightcand

Definition at line 9515 of file triangle.cpp.

◆ bb

REAL bb[4]

Definition at line 5421 of file triangle.cpp.

◆ bb3

INEXACT REAL bb3

Definition at line 5422 of file triangle.cpp.

◆ bc

REAL bc = bc3

Definition at line 5404 of file triangle.cpp.

◆ bc3

INEXACT REAL bc3

Definition at line 5405 of file triangle.cpp.

◆ bclen2

REAL bclen2 = xbc * xbc + ybc * ybc

Definition at line 10584 of file triangle.cpp.

◆ bct

REAL bct

Definition at line 5444 of file triangle.cpp.

◆ bctlen

int bctlen

Definition at line 5445 of file triangle.cpp.

◆ bctt

REAL bctt[4]

Definition at line 5446 of file triangle.cpp.

◆ bctt3

INEXACT REAL bctt3

Definition at line 5448 of file triangle.cpp.

◆ bcttlen

int bcttlen

Definition at line 5447 of file triangle.cpp.

◆ bcx

bcx = (REAL) (pb[0] - pc[0])

Definition at line 5263 of file triangle.cpp.

◆ bcxtail

REAL bcxtail

Definition at line 5241 of file triangle.cpp.

◆ bcy

bcy = (REAL) (pb[1] - pc[1])

Definition at line 5265 of file triangle.cpp.

◆ bcytail

REAL bcytail

Definition at line 5241 of file triangle.cpp.

◆ bdest

vertex bdest

Definition at line 13579 of file triangle.cpp.

◆ bdet

REAL bdet

Definition at line 5408 of file triangle.cpp.

◆ bdheight

bdheight = (REAL) (bheight - dheight)

Definition at line 6125 of file triangle.cpp.

◆ bdheighttail

REAL bdheighttail

Definition at line 6084 of file triangle.cpp.

◆ bdx

bdx = (REAL) (pb[0] - pd[0])

Definition at line 5461 of file triangle.cpp.

◆ bdxady

REAL bdxady = bdx * ady

Definition at line 5981 of file triangle.cpp.

◆ bdxady0

REAL bdxady0

Definition at line 5403 of file triangle.cpp.

◆ bdxady1

INEXACT REAL bdxady1

Definition at line 5402 of file triangle.cpp.

◆ bdxbdx0

REAL bdxbdx0

Definition at line 5420 of file triangle.cpp.

◆ bdxbdx1

INEXACT REAL bdxbdx1

Definition at line 5419 of file triangle.cpp.

◆ bdxcdy

REAL bdxcdy
Initial value:
{
REAL adx, bdx, cdx, ady, bdy, cdy

Definition at line 5981 of file triangle.cpp.

◆ bdxcdy0

REAL bdxcdy0

Definition at line 5403 of file triangle.cpp.

◆ bdxcdy1

INEXACT REAL bdxcdy1

Definition at line 5402 of file triangle.cpp.

◆ bdxt_ady0

REAL bdxt_ady0

Definition at line 6093 of file triangle.cpp.

◆ bdxt_ady1

INEXACT REAL bdxt_ady1

Definition at line 6091 of file triangle.cpp.

◆ bdxt_adyt0

REAL bdxt_adyt0

Definition at line 6103 of file triangle.cpp.

◆ bdxt_adyt1

INEXACT REAL bdxt_adyt1

Definition at line 6101 of file triangle.cpp.

◆ bdxt_cdy0

REAL bdxt_cdy0

Definition at line 6092 of file triangle.cpp.

◆ bdxt_cdy1

INEXACT REAL bdxt_cdy1

Definition at line 6090 of file triangle.cpp.

◆ bdxt_cdyt0

REAL bdxt_cdyt0

Definition at line 6102 of file triangle.cpp.

◆ bdxt_cdyt1

INEXACT REAL bdxt_cdyt1

Definition at line 6100 of file triangle.cpp.

◆ bdxtail

REAL bdxtail

Definition at line 5418 of file triangle.cpp.

◆ bdy

bdy = (REAL) (pb[1] - pd[1])

Definition at line 5464 of file triangle.cpp.

◆ bdybdy0

REAL bdybdy0

Definition at line 5420 of file triangle.cpp.

◆ bdybdy1

INEXACT REAL bdybdy1

Definition at line 5419 of file triangle.cpp.

◆ bdyt_adx0

REAL bdyt_adx0

Definition at line 6097 of file triangle.cpp.

◆ bdyt_adx1

INEXACT REAL bdyt_adx1

Definition at line 6095 of file triangle.cpp.

◆ bdyt_cdx0

REAL bdyt_cdx0

Definition at line 6096 of file triangle.cpp.

◆ bdyt_cdx1

INEXACT REAL bdyt_cdx1

Definition at line 6094 of file triangle.cpp.

◆ bdytail

REAL bdytail

Definition at line 5418 of file triangle.cpp.

◆ bestnumber

bestnumber = 1

Definition at line 8955 of file triangle.cpp.

◆ besttri

struct otri besttri
Initial value:
{
struct otri testtri

Definition at line 8950 of file triangle.cpp.

◆ bestvertex

vertex bestvertex

Definition at line 8954 of file triangle.cpp.

◆ bheight

REAL bheight

Definition at line 6060 of file triangle.cpp.

◆ bhi

REAL bhi

Definition at line 5155 of file triangle.cpp.

◆ biggestangle

biggestangle = 2.0

Definition at line 15450 of file triangle.cpp.

◆ biggestarea

biggestarea = 0.0

Definition at line 15445 of file triangle.cpp.

◆ blen

int blen = fast_expansion_sum_zeroelim(bxxcalen, bxxca, byycalen, byyca, bdet)

Definition at line 5409 of file triangle.cpp.

◆ blift

blift = bdx * bdx + bdy * bdy

Definition at line 5982 of file triangle.cpp.

◆ blo

REAL blo

Definition at line 5155 of file triangle.cpp.

◆ borg

vertex borg
Initial value:
{
struct otri badotri

Definition at line 13579 of file triangle.cpp.

◆ botrcasing

struct otri botlcasing botrcasing

Definition at line 8005 of file triangle.cpp.

◆ botright

struct otri botleft botright

Definition at line 8296 of file triangle.cpp.

◆ botrsubseg

struct osub botlsubseg botrsubseg

Definition at line 8007 of file triangle.cpp.

◆ bottommost

struct otri bottommost

Definition at line 10842 of file triangle.cpp.

◆ botvertex

vertex botvertex

Definition at line 8009 of file triangle.cpp.

◆ boundmarker

int boundmarker

Definition at line 11243 of file triangle.cpp.

◆ brokensubseg

struct osub brokensubseg
Initial value:
{
struct otri searchtri1, searchtri2

Definition at line 8305 of file triangle.cpp.

◆ bround

REAL bround

Definition at line 5056 of file triangle.cpp.

◆ bt_a

REAL bt_a[4]

Definition at line 6088 of file triangle.cpp.

◆ bt_alarge

INEXACT REAL bt_alarge

Definition at line 6086 of file triangle.cpp.

◆ bt_alen

int bt_alen

Definition at line 6089 of file triangle.cpp.

◆ bt_c

REAL bt_c[4]

Definition at line 6088 of file triangle.cpp.

◆ bt_clarge

INEXACT REAL bt_clarge

Definition at line 6086 of file triangle.cpp.

◆ bt_clen

int bt_clen

Definition at line 6089 of file triangle.cpp.

◆ bvirt

INEXACT REAL bvirt

Definition at line 5055 of file triangle.cpp.

◆ bxca

REAL bxca[8]

Definition at line 5408 of file triangle.cpp.

◆ bxcalen

bxcalen = scale_expansion_zeroelim(4, ca, bdx, bxca)

Definition at line 5409 of file triangle.cpp.

◆ bxtaa

REAL bxtaa[8]

Definition at line 5433 of file triangle.cpp.

◆ bxtaalen

int bxtaalen

Definition at line 5434 of file triangle.cpp.

◆ bxtca

REAL bxtca[8]

Definition at line 5437 of file triangle.cpp.

◆ bxtcalen

int bxtcalen =0

Definition at line 5438 of file triangle.cpp.

◆ bxtcat

REAL bxtcat[16]

Definition at line 5439 of file triangle.cpp.

◆ bxtcatlen

int bxtcatlen

Definition at line 5440 of file triangle.cpp.

◆ bxtcatt

REAL bxtcatt[8]

Definition at line 5441 of file triangle.cpp.

◆ bxtcattlen

int bxtcattlen

Definition at line 5443 of file triangle.cpp.

◆ bxtcc

REAL bxtcc[8]

Definition at line 5433 of file triangle.cpp.

◆ bxtcclen

int bxtcclen

Definition at line 5434 of file triangle.cpp.

◆ bxxca

REAL bxxca[16]

Definition at line 5408 of file triangle.cpp.

◆ bxxcalen

bxxcalen = scale_expansion_zeroelim(bxcalen, bxca, bdx, bxxca)

Definition at line 5409 of file triangle.cpp.

◆ byca

REAL byca[8]

Definition at line 5408 of file triangle.cpp.

◆ bycalen

bycalen = scale_expansion_zeroelim(4, ca, bdy, byca)

Definition at line 5409 of file triangle.cpp.

◆ bytaa

REAL bytaa[8]

Definition at line 5433 of file triangle.cpp.

◆ bytaalen

int bytaalen

Definition at line 5434 of file triangle.cpp.

◆ bytca

REAL bytca[8]

Definition at line 5437 of file triangle.cpp.

◆ bytcalen

int bytcalen =0

Definition at line 5438 of file triangle.cpp.

◆ bytcat

REAL bytcat[16]

Definition at line 5439 of file triangle.cpp.

◆ bytcatlen

int bytcatlen

Definition at line 5440 of file triangle.cpp.

◆ bytcatt

REAL bytcatt[8]

Definition at line 5442 of file triangle.cpp.

◆ bytcattlen

int bytcattlen

Definition at line 5443 of file triangle.cpp.

◆ bytcc

REAL bytcc[8]

Definition at line 5433 of file triangle.cpp.

◆ bytcclen

int bytcclen

Definition at line 5434 of file triangle.cpp.

◆ byyca

REAL byyca[16]

Definition at line 5408 of file triangle.cpp.

◆ byycalen

byycalen = scale_expansion_zeroelim(bycalen, byca, bdy, byyca)

Definition at line 5409 of file triangle.cpp.

◆ c

INEXACT REAL c

Definition at line 5153 of file triangle.cpp.

◆ C1

REAL C1[8]

Definition at line 5245 of file triangle.cpp.

◆ C1length

C1length = fast_expansion_sum_zeroelim(4, B, 4, u, C1)

Definition at line 5247 of file triangle.cpp.

◆ C2

REAL C2[12]

Definition at line 5245 of file triangle.cpp.

◆ C2length

C2length = fast_expansion_sum_zeroelim(C1length, C1, 4, u, C2)

Definition at line 5247 of file triangle.cpp.

◆ ca

REAL ca = ca3

Definition at line 5404 of file triangle.cpp.

◆ ca3

INEXACT REAL ca3

Definition at line 5405 of file triangle.cpp.

◆ cat

REAL cat

Definition at line 5444 of file triangle.cpp.

◆ catlen

int catlen = fast_expansion_sum_zeroelim(ct_alen, ct_a, at_clen, at_c, cat)

Definition at line 5445 of file triangle.cpp.

◆ catt

REAL catt[4]

Definition at line 5446 of file triangle.cpp.

◆ catt3

INEXACT REAL catt3

Definition at line 5448 of file triangle.cpp.

◆ cattlen

int cattlen

Definition at line 5447 of file triangle.cpp.

◆ cc

REAL cc[4]

Definition at line 5421 of file triangle.cpp.

◆ cc3

INEXACT REAL cc3

Definition at line 5422 of file triangle.cpp.

◆ ccwabc

ccwabc = counterclockwise(m, b, pa, pb, pc)

Definition at line 10579 of file triangle.cpp.

◆ ccwerrboundA

REAL ccwerrboundA

Definition at line 728 of file triangle.cpp.

◆ ccwerrboundB

REAL ccwerrboundB

Definition at line 728 of file triangle.cpp.

◆ ccwerrboundC

REAL ccwerrboundC

Definition at line 728 of file triangle.cpp.

◆ cdet

REAL cdet

Definition at line 5410 of file triangle.cpp.

◆ cdheight

cdheight = (REAL) (cheight - dheight)

Definition at line 6126 of file triangle.cpp.

◆ cdheighttail

REAL cdheighttail

Definition at line 6084 of file triangle.cpp.

◆ cdx

cdx = (REAL) (pc[0] - pd[0])

Definition at line 5462 of file triangle.cpp.

◆ cdxady

REAL cdxady = cdx * ady

Definition at line 5981 of file triangle.cpp.

◆ cdxady0

REAL cdxady0

Definition at line 5403 of file triangle.cpp.

◆ cdxady1

INEXACT REAL cdxady1

Definition at line 5402 of file triangle.cpp.

◆ cdxbdy

REAL cdxbdy = cdx * bdy

Definition at line 5981 of file triangle.cpp.

◆ cdxbdy0

REAL cdxbdy0

Definition at line 5403 of file triangle.cpp.

◆ cdxbdy1

INEXACT REAL cdxbdy1

Definition at line 5402 of file triangle.cpp.

◆ cdxcdx0

REAL cdxcdx0

Definition at line 5420 of file triangle.cpp.

◆ cdxcdx1

INEXACT REAL cdxcdx1

Definition at line 5419 of file triangle.cpp.

◆ cdxt_ady0

REAL cdxt_ady0

Definition at line 6092 of file triangle.cpp.

◆ cdxt_ady1

INEXACT REAL cdxt_ady1

Definition at line 6090 of file triangle.cpp.

◆ cdxt_adyt0

REAL cdxt_adyt0

Definition at line 6102 of file triangle.cpp.

◆ cdxt_adyt1

INEXACT REAL cdxt_adyt1

Definition at line 6100 of file triangle.cpp.

◆ cdxt_bdy0

REAL cdxt_bdy0

Definition at line 6092 of file triangle.cpp.

◆ cdxt_bdy1

INEXACT REAL cdxt_bdy1

Definition at line 6090 of file triangle.cpp.

◆ cdxt_bdyt0

REAL cdxt_bdyt0

Definition at line 6102 of file triangle.cpp.

◆ cdxt_bdyt1

INEXACT REAL cdxt_bdyt1

Definition at line 6100 of file triangle.cpp.

◆ cdxtail

REAL cdxtail

Definition at line 5418 of file triangle.cpp.

◆ cdy

cdy = (REAL) (pc[1] - pd[1])

Definition at line 5465 of file triangle.cpp.

◆ cdycdy0

REAL cdycdy0

Definition at line 5420 of file triangle.cpp.

◆ cdycdy1

INEXACT REAL cdycdy1

Definition at line 5419 of file triangle.cpp.

◆ cdyt_adx0

REAL cdyt_adx0

Definition at line 6096 of file triangle.cpp.

◆ cdyt_adx1

INEXACT REAL cdyt_adx1

Definition at line 6094 of file triangle.cpp.

◆ cdyt_bdx0

REAL cdyt_bdx0

Definition at line 6096 of file triangle.cpp.

◆ cdyt_bdx1

INEXACT REAL cdyt_bdx1

Definition at line 6094 of file triangle.cpp.

◆ cdytail

REAL cdytail

Definition at line 5418 of file triangle.cpp.

◆ changemade

int changemade

Definition at line 9528 of file triangle.cpp.

◆ check4events

int check4events

Definition at line 10894 of file triangle.cpp.

◆ checkapex

vertex checkapex

Definition at line 11233 of file triangle.cpp.

◆ checkdest

vertex checkdest

Definition at line 11233 of file triangle.cpp.

◆ checkedge

struct otri checkedge
Initial value:
{
struct otri backtracktri

Definition at line 7588 of file triangle.cpp.

◆ checkleft

struct otri checkleft

Definition at line 11226 of file triangle.cpp.

◆ checkmark

struct osub checkmark
Initial value:
{
struct otri triangleloop, trisym

Definition at line 13805 of file triangle.cpp.

◆ checkneighbor

struct otri checkneighbor

Definition at line 11227 of file triangle.cpp.

◆ checkquality

m checkquality = 0

Definition at line 6732 of file triangle.cpp.

◆ checksegments

m checksegments = 0

Definition at line 6731 of file triangle.cpp.

◆ checksubseg

struct osub checksubseg

Definition at line 8306 of file triangle.cpp.

◆ checktri

struct otri checktri

Definition at line 10621 of file triangle.cpp.

◆ checkvertex

vertex checkvertex = (vertex) NULL

Definition at line 9527 of file triangle.cpp.

◆ cheight

REAL cheight

Definition at line 6061 of file triangle.cpp.

◆ circletopcount

m circletopcount

Definition at line 10586 of file triangle.cpp.

◆ circumcenter

REAL circumcenter = torg[1] + dy

Definition at line 6609 of file triangle.cpp.

◆ circumcentercount

m circumcentercount

Definition at line 6621 of file triangle.cpp.

◆ clen

int clen = fast_expansion_sum_zeroelim(cxxablen, cxxab, cyyablen, cyyab, cdet)

Definition at line 5411 of file triangle.cpp.

◆ clift

clift = cdx * cdx + cdy * cdy

Definition at line 5982 of file triangle.cpp.

◆ collinear

collinear = finddirection(m, b, searchtri, endpoint2)

Definition at line 11911 of file triangle.cpp.

◆ collision

collision = 0

Definition at line 12247 of file triangle.cpp.

◆ conformdel

b conformdel = 0

Definition at line 3396 of file triangle.cpp.

◆ connectvertex

vertex connectvertex

Definition at line 10890 of file triangle.cpp.

◆ corner

int corner[3]

Definition at line 11238 of file triangle.cpp.

◆ cossquare

REAL cossquare

Definition at line 15441 of file triangle.cpp.

◆ cossquaretable

REAL cossquaretable[8]

Definition at line 15436 of file triangle.cpp.

◆ counterclockcount

m counterclockcount

Definition at line 5334 of file triangle.cpp.

◆ crosssubseg

struct osub crosssubseg
Initial value:
{
struct otri crosstri

Definition at line 11909 of file triangle.cpp.

◆ ct_a

REAL ct_a[4]

Definition at line 6088 of file triangle.cpp.

◆ ct_alarge

INEXACT REAL ct_alarge

Definition at line 6087 of file triangle.cpp.

◆ ct_alen

int ct_alen

Definition at line 6089 of file triangle.cpp.

◆ ct_b

REAL ct_b[4]

Definition at line 6088 of file triangle.cpp.

◆ ct_blarge

INEXACT REAL ct_blarge

Definition at line 6087 of file triangle.cpp.

◆ ct_blen

int ct_blen

Definition at line 6089 of file triangle.cpp.

◆ current

current = b->firstnumber

Definition at line 4671 of file triangle.cpp.

◆ currentenc

struct osub currentenc

Definition at line 13330 of file triangle.cpp.

◆ currentmarker

int currentmarker

Definition at line 13992 of file triangle.cpp.

◆ cxab

REAL cxab[8]

Definition at line 5410 of file triangle.cpp.

◆ cxablen

cxablen = scale_expansion_zeroelim(4, ab, cdx, cxab)

Definition at line 5411 of file triangle.cpp.

◆ cxtaa

REAL cxtaa[8]

Definition at line 5435 of file triangle.cpp.

◆ cxtaalen

int cxtaalen

Definition at line 5436 of file triangle.cpp.

◆ cxtab

REAL cxtab[8]

Definition at line 5437 of file triangle.cpp.

◆ cxtablen

int cxtablen =0

Definition at line 5438 of file triangle.cpp.

◆ cxtabt

REAL cxtabt[16]

Definition at line 5439 of file triangle.cpp.

◆ cxtabtlen

int cxtabtlen

Definition at line 5440 of file triangle.cpp.

◆ cxtabtt

REAL cxtabtt[8]

Definition at line 5442 of file triangle.cpp.

◆ cxtabttlen

int cxtabttlen

Definition at line 5443 of file triangle.cpp.

◆ cxtbb

REAL cxtbb[8]

Definition at line 5435 of file triangle.cpp.

◆ cxtbblen

int cxtbblen

Definition at line 5436 of file triangle.cpp.

◆ cxxab

REAL cxxab[16]

Definition at line 5410 of file triangle.cpp.

◆ cxxablen

cxxablen = scale_expansion_zeroelim(cxablen, cxab, cdx, cxxab)

Definition at line 5411 of file triangle.cpp.

◆ cyab

REAL cyab[8]

Definition at line 5410 of file triangle.cpp.

◆ cyablen

cyablen = scale_expansion_zeroelim(4, ab, cdy, cyab)

Definition at line 5411 of file triangle.cpp.

◆ cytaa

REAL cytaa[8]

Definition at line 5435 of file triangle.cpp.

◆ cytaalen

int cytaalen

Definition at line 5436 of file triangle.cpp.

◆ cytab

REAL cytab[8]

Definition at line 5437 of file triangle.cpp.

◆ cytablen

int cytablen =0

Definition at line 5438 of file triangle.cpp.

◆ cytabt

REAL cytabt[16]

Definition at line 5439 of file triangle.cpp.

◆ cytabtlen

int cytabtlen

Definition at line 5440 of file triangle.cpp.

◆ cytabtt

REAL cytabtt[8]

Definition at line 5442 of file triangle.cpp.

◆ cytabttlen

int cytabttlen

Definition at line 5443 of file triangle.cpp.

◆ cytbb

REAL cytbb[8]

Definition at line 5435 of file triangle.cpp.

◆ cytbblen

int cytbblen

Definition at line 5436 of file triangle.cpp.

◆ cyyab

REAL cyyab[16]

Definition at line 5410 of file triangle.cpp.

◆ cyyablen

cyyablen = scale_expansion_zeroelim(cyablen, cyab, cdy, cyyab)

Definition at line 5411 of file triangle.cpp.

◆ D

REAL D[16]

Definition at line 5245 of file triangle.cpp.

◆ dadist

dadist
Initial value:
= (tdest[0] - tapex[0]) * (tdest[0] - tapex[0]) +
(tdest[1] - tapex[1]) * (tdest[1] - tapex[1])

Definition at line 6617 of file triangle.cpp.

◆ dalen

dalen = dxda * dxda + dyda * dyda

Definition at line 1457 of file triangle.cpp.

◆ deadapex

vertex deadapex

Definition at line 12754 of file triangle.cpp.

◆ deaddest

vertex deaddest

Definition at line 12754 of file triangle.cpp.

◆ deaditemstack

m vertices deaditemstack = (VOID *) NULL

Definition at line 13820 of file triangle.cpp.

◆ deadorg

vertex deadorg

Definition at line 12754 of file triangle.cpp.

◆ deadtriangle

triangle ** deadtriangle

Definition at line 10001 of file triangle.cpp.

◆ degconst

degconst = 180.0 / PI

Definition at line 15451 of file triangle.cpp.

◆ deltri

setorg * deltri

Definition at line 9038 of file triangle.cpp.

◆ deltriright

struct otri deltriright

Definition at line 9044 of file triangle.cpp.

◆ delvertex

vertex delvertex

Definition at line 9048 of file triangle.cpp.

◆ denom

denom = ty * ex - tx * ey

Definition at line 11792 of file triangle.cpp.

◆ denominator

REAL denominator

Definition at line 6618 of file triangle.cpp.

◆ dest1

vertex dest1

Definition at line 7306 of file triangle.cpp.

◆ dest2

vertex dest2

Definition at line 7306 of file triangle.cpp.

◆ destlen

destlen = dxao2 + dyao2

Definition at line 7310 of file triangle.cpp.

◆ destorient

REAL destorient

Definition at line 7590 of file triangle.cpp.

◆ det

REAL det = estimate(4, B)

Definition at line 5244 of file triangle.cpp.

◆ detleft

detleft = (pa[0] - pc[0]) * (pb[1] - pc[1])

Definition at line 5242 of file triangle.cpp.

◆ detlefttail

REAL detlefttail

Definition at line 5243 of file triangle.cpp.

◆ detright

detright = (pa[1] - pc[1]) * (pb[0] - pc[0])

Definition at line 5242 of file triangle.cpp.

◆ detrighttail

REAL detrighttail

Definition at line 5243 of file triangle.cpp.

◆ detsum

REAL detsum
Initial value:
{
REAL detleft, detright, det

Definition at line 5236 of file triangle.cpp.

◆ dheight

REAL dheight

Definition at line 6062 of file triangle.cpp.

◆ dissolveedge

struct otri nextedge finaledge dissolveedge
Initial value:
{
struct otri searchedge

Definition at line 10000 of file triangle.cpp.

◆ dist

REAL dist

Definition at line 7734 of file triangle.cpp.

◆ dist1

REAL dist1

Definition at line 7313 of file triangle.cpp.

◆ dist2

REAL dist2

Definition at line 7313 of file triangle.cpp.

◆ divider

int divider = arraysize >> 1

Definition at line 9446 of file triangle.cpp.

◆ divisor

REAL divisor

Definition at line 13337 of file triangle.cpp.

◆ Dlength

Dlength = fast_expansion_sum_zeroelim(C2length, C2, 4, u, D)

Definition at line 5247 of file triangle.cpp.

◆ do

do
Initial value:
{
newtriangle = (triangle *) traverse(&m->triangles)

Definition at line 4490 of file triangle.cpp.

◆ docheck

b docheck = 0

Definition at line 3394 of file triangle.cpp.

◆ dodist

dodist
Initial value:
{
REAL xdo, ydo, xao, yao

Definition at line 6617 of file triangle.cpp.

◆ doflip

int doflip

Definition at line 8318 of file triangle.cpp.

◆ done

done = 0

Definition at line 12248 of file triangle.cpp.

◆ dotproduct

REAL dotproduct

Definition at line 7193 of file triangle.cpp.

◆ dummytri

*int *m dummytri
Initial value:
= (triangle *)
(alignptr + (unsigned long) m->triangles.alignbytes -
(alignptr % (unsigned long) m->triangles.alignbytes))

Definition at line 4246 of file triangle.cpp.

◆ dummytribase

m dummytribase
Initial value:
= (triangle *) trimalloc(trianglebytes +
m->triangles.alignbytes)

Definition at line 4284 of file triangle.cpp.

◆ dwyer

b dwyer = 1

Definition at line 3392 of file triangle.cpp.

◆ dx

REAL dx = (yao * dodist - ydo * aodist) * denominator

Definition at line 6619 of file triangle.cpp.

◆ dxa

REAL dxa
Initial value:
{
vertex leftvertex, rightvertex

Definition at line 10543 of file triangle.cpp.

◆ dxao

dxao = tapex[0] - torg[0]

Definition at line 7308 of file triangle.cpp.

◆ dxao2

dxao2 = dxao * dxao

Definition at line 7309 of file triangle.cpp.

◆ dxb

dxb = rightvertex[0] - newsite[0]

Definition at line 10543 of file triangle.cpp.

◆ dxda

REAL dxda = tridest[0] - triapex[0]

Definition at line 1462 of file triangle.cpp.

◆ dxda2

dxda2 = dxda * dxda

Definition at line 7309 of file triangle.cpp.

◆ dxoa

dxoa = triorg[0] - triapex[0]

Definition at line 1460 of file triangle.cpp.

◆ dxod

REAL dxod = triorg[0] - tridest[0]

Definition at line 1464 of file triangle.cpp.

◆ dxod2

dxod2 = dxod * dxod

Definition at line 7309 of file triangle.cpp.

◆ dxoff

REAL dxoff

Definition at line 6619 of file triangle.cpp.

◆ dy

REAL dy = (xdo * aodist - xao * dodist) * denominator

Definition at line 6619 of file triangle.cpp.

◆ dya

return dya *dxb *dxb dyb *dyb dyb *dxa *dxa dya * dya = leftvertex[1] - newsite[1]

Definition at line 10543 of file triangle.cpp.

◆ dyao

dyao = tapex[1] - torg[1]

Definition at line 7308 of file triangle.cpp.

◆ dyao2

dyao2 = dyao * dyao

Definition at line 7309 of file triangle.cpp.

◆ dyb

dyb = rightvertex[1] - newsite[1]

Definition at line 10543 of file triangle.cpp.

◆ dyda

REAL dyda = tridest[1] - triapex[1]

Definition at line 1456 of file triangle.cpp.

◆ dyda2

dyda2 = dyda * dyda

Definition at line 7309 of file triangle.cpp.

◆ dyingseg

struct badsubseg* dyingseg

Definition at line 4605 of file triangle.cpp.

◆ dyingsubseg

subseg* dyingsubseg

Definition at line 4510 of file triangle.cpp.

◆ dyingtriangle

triangle* dyingtriangle

Definition at line 4464 of file triangle.cpp.

◆ dyingvertex

vertex dyingvertex

Definition at line 4556 of file triangle.cpp.

◆ dyoa

dyoa
Initial value:
{
REAL dxoa, dxda, dxod

Definition at line 1456 of file triangle.cpp.

◆ dyod

REAL dyod = triorg[1] - tridest[1]

Definition at line 1456 of file triangle.cpp.

◆ dyod2

dyod2 = dyod * dyod

Definition at line 7309 of file triangle.cpp.

◆ dyoff

REAL dyoff

Definition at line 6619 of file triangle.cpp.

◆ e

REAL * e

Definition at line 5045 of file triangle.cpp.

◆ eapex

vertex eapex

Definition at line 7196 of file triangle.cpp.

◆ edest

vertex edest

Definition at line 7196 of file triangle.cpp.

◆ edgecount

int edgecount = 1

Definition at line 8943 of file triangle.cpp.

◆ edgefilename

char* edgefilename

Definition at line 14885 of file triangle.cpp.

◆ edgelength

REAL edgelength[3]

Definition at line 15439 of file triangle.cpp.

◆ edgenumber

edgenumber = b->firstnumber

Definition at line 14903 of file triangle.cpp.

◆ edges

m edges = (3l * m.triangles.items + m.hullsize) / 2l

Definition at line 15932 of file triangle.cpp.

◆ edgesout

b edgesout = b->voronoi = b->neighbors = b->geomview = 0

Definition at line 3387 of file triangle.cpp.

◆ eextras

m eextras = 0

Definition at line 11107 of file triangle.cpp.

◆ eindex

int eindex = findex = 0

Definition at line 5057 of file triangle.cpp.

◆ elefile

elefile = fopen(elefilename, "r")

Definition at line 11264 of file triangle.cpp.

◆ elefilename

char * elefilename

Definition at line 11204 of file triangle.cpp.

◆ elemattribindex

m elemattribindex = (trisize + sizeof(REAL) - 1) / sizeof(REAL)

Definition at line 4413 of file triangle.cpp.

◆ elementnumber

long elementnumber = b->firstnumber

Definition at line 11247 of file triangle.cpp.

◆ else

else
Initial value:
{
return 0

Definition at line 1476 of file triangle.cpp.

◆ encloop

struct badsubseg* encloop

Definition at line 13331 of file triangle.cpp.

◆ encodedtri

encodedtri
Initial value:
{
struct otri searchtri1, searchtri2

Definition at line 12345 of file triangle.cpp.

◆ encroached

struct badsubseg * encroached = 0

Definition at line 7194 of file triangle.cpp.

◆ encroachedseg

struct badsubseg* encroachedseg

Definition at line 7192 of file triangle.cpp.

◆ end

int end[2]

Definition at line 11239 of file triangle.cpp.

◆ end1

int end1

Definition at line 12526 of file triangle.cpp.

◆ end2

int end2

Definition at line 12526 of file triangle.cpp.

◆ endpoint1

vertex endpoint1
Initial value:
{
struct osub opposubseg

Definition at line 11783 of file triangle.cpp.

◆ endpoint2

vertex endpoint2

Definition at line 11778 of file triangle.cpp.

◆ enow

REAL enow = e[0]

Definition at line 5058 of file triangle.cpp.

◆ enq

int enq

Definition at line 8320 of file triangle.cpp.

◆ enqapex

vertex enqapex

Definition at line 7098 of file triangle.cpp.

◆ enqdest

vertex enqdest

Definition at line 7100 of file triangle.cpp.

◆ enqorg

vertex enqorg

Definition at line 7099 of file triangle.cpp.

◆ enqtri

struct otri* enqtri

Definition at line 7096 of file triangle.cpp.

◆ eorg

vertex eorg

Definition at line 7196 of file triangle.cpp.

◆ epsilon

REAL epsilon

Definition at line 726 of file triangle.cpp.

◆ err1

REAL err1

Definition at line 5156 of file triangle.cpp.

◆ err2

REAL err2

Definition at line 5156 of file triangle.cpp.

◆ err3

REAL err3

Definition at line 5156 of file triangle.cpp.

◆ errbound

REAL errbound = ccwerrboundB * detsum

Definition at line 5244 of file triangle.cpp.

◆ errorflag

int errorflag

Definition at line 13583 of file triangle.cpp.

◆ eta

REAL eta = (xdo * dy - ydo * dx) * (2.0 * denominator)

Definition at line 6611 of file triangle.cpp.

◆ etx

etx = torg[0] - endpoint2[0]

Definition at line 11791 of file triangle.cpp.

◆ ety

ety = torg[1] - endpoint2[1]

Definition at line 11791 of file triangle.cpp.

◆ eventheap

eventheap
Initial value:
= (struct event **) trimalloc(maxevents *
(int) sizeof(struct event *))

Definition at line 10499 of file triangle.cpp.

◆ eventnum

int eventnum
Initial value:
{
REAL eventx, eventy

Definition at line 10364 of file triangle.cpp.

◆ eventptr

eventheap [0] eventptr = (VOID *) freeevents

Definition at line 10920 of file triangle.cpp.

◆ events

struct event * events = (struct event *) trimalloc(maxevents * (int) sizeof(struct event))

Definition at line 10500 of file triangle.cpp.

◆ eventvertex

vertex eventvertex
Initial value:
{
struct event *deadevent

Definition at line 10618 of file triangle.cpp.

◆ eventx

REAL eventx = newevent->xkey

Definition at line 10368 of file triangle.cpp.

◆ eventy

REAL eventy = newevent->ykey

Definition at line 10369 of file triangle.cpp.

◆ ex

ex = endpoint2[0] - endpoint1[0]

Definition at line 11789 of file triangle.cpp.

◆ expincrement

int expincrement

Definition at line 6995 of file triangle.cpp.

◆ exponent

exponent
Initial value:
{
REAL length, multiplier

Definition at line 6995 of file triangle.cpp.

◆ ey

ey = endpoint2[1] - endpoint1[1]

Definition at line 11789 of file triangle.cpp.

◆ f

REAL* f

Definition at line 5047 of file triangle.cpp.

◆ fapex

vertex fapex

Definition at line 7589 of file triangle.cpp.

◆ faredge

struct osub faredge

Definition at line 12123 of file triangle.cpp.

◆ farleft

struct otri * farleft

Definition at line 9506 of file triangle.cpp.

◆ farleftapex

vertex farleftapex

Definition at line 9523 of file triangle.cpp.

◆ farleftpt

vertex farleftpt

Definition at line 9522 of file triangle.cpp.

◆ farright

* farright = farrightflag

Definition at line 9509 of file triangle.cpp.

◆ farrightapex

vertex farrightapex

Definition at line 9523 of file triangle.cpp.

◆ farrightflag

int farrightflag = 0

Definition at line 10855 of file triangle.cpp.

◆ farrightpt

vertex farrightpt

Definition at line 9522 of file triangle.cpp.

◆ farrighttri

struct otri lefttri righttri farlefttri farrighttri

Definition at line 10886 of file triangle.cpp.

◆ fartri

struct otri fartri
Initial value:
{
struct otri neartri

Definition at line 12122 of file triangle.cpp.

◆ farvertex

vertex farvertex

Definition at line 8010 of file triangle.cpp.

◆ fdest

vertex fdest

Definition at line 7589 of file triangle.cpp.

◆ fin1

REAL fin1

Definition at line 5414 of file triangle.cpp.

◆ fin2

REAL fin2

Definition at line 5414 of file triangle.cpp.

◆ findex

int findex

Definition at line 5057 of file triangle.cpp.

◆ finlength

int finlength = fast_expansion_sum_zeroelim(ablen, abdet, clen, cdet, fin1)

Definition at line 5416 of file triangle.cpp.

◆ finnow

return finnow = fin1

Definition at line 5415 of file triangle.cpp.

◆ finother

REAL * finother = fin2

Definition at line 5415 of file triangle.cpp.

◆ finswap

REAL * finswap = finnow

Definition at line 5415 of file triangle.cpp.

◆ first

vertex first

Definition at line 8311 of file triangle.cpp.

◆ firstedge

onext * firstedge

Definition at line 8941 of file triangle.cpp.

◆ firstnode

int firstnode

Definition at line 13990 of file triangle.cpp.

◆ firstnumber

b firstnumber = 1

Definition at line 3386 of file triangle.cpp.

◆ firsttri

char* firsttri
Initial value:
{
VOID **sampleblock

Definition at line 7730 of file triangle.cpp.

◆ firstvertex

firstvertex = (vertex) eventheap[0]->eventptr

Definition at line 10888 of file triangle.cpp.

◆ fixuptri

lprevself * fixuptri

Definition at line 12116 of file triangle.cpp.

◆ flen

int flen

Definition at line 5046 of file triangle.cpp.

◆ flipedge

setapex * flipedge

Definition at line 7998 of file triangle.cpp.

◆ fliptri

struct otri fliptri

Definition at line 10885 of file triangle.cpp.

◆ fnow

fnow = f[0]

Definition at line 5058 of file triangle.cpp.

◆ forg

vertex forg

Definition at line 7589 of file triangle.cpp.

◆ foundvertex

foundvertex
Initial value:
{
VOID **getblock

Definition at line 4669 of file triangle.cpp.

◆ freeevents

struct event * freeevents = (struct event *) NULL

Definition at line 10501 of file triangle.cpp.

◆ fronttri

apex * fronttri

Definition at line 10537 of file triangle.cpp.

◆ getblock

getblock = m->vertices.firstblock

Definition at line 4673 of file triangle.cpp.

◆ gluetri

struct otri gluetri

Definition at line 9147 of file triangle.cpp.

◆ goodangle

b goodangle = cos(b->minangle * PI / 180.0)

Definition at line 3603 of file triangle.cpp.

◆ h

REAL * h

Definition at line 5048 of file triangle.cpp.

◆ hdest

vertex hdest

Definition at line 12670 of file triangle.cpp.

◆ heap

heap[eventnum] = newevent

Definition at line 10386 of file triangle.cpp.

◆ heapposition

moveevent heapposition = eventnum

Definition at line 10387 of file triangle.cpp.

◆ heapsize

int heapsize = m->invertices

Definition at line 10358 of file triangle.cpp.

◆ hh

REAL hh
Initial value:
{
INEXACT REAL Q, sum

Definition at line 5054 of file triangle.cpp.

◆ highorderindex

m highorderindex = 6 + (b->usesegments * 3)

Definition at line 4407 of file triangle.cpp.

◆ hindex

return hindex = 0

Definition at line 5057 of file triangle.cpp.

◆ hlist

* hlist = holelist

Definition at line 14263 of file triangle.cpp.

◆ holearray

REAL* holearray

Definition at line 15778 of file triangle.cpp.

◆ holelist

REAL * holelist

Definition at line 13068 of file triangle.cpp.

◆ holenumber

long holenumber
Initial value:
{
FILE *outfile

Definition at line 14759 of file triangle.cpp.

◆ holes

int holes = (int) strtol(stringptr, &stringptr, 0)

Definition at line 13069 of file triangle.cpp.

◆ holetri

triangle** holetri

Definition at line 13078 of file triangle.cpp.

◆ horg

vertex horg

Definition at line 12670 of file triangle.cpp.

◆ horrors

int horrors = 0

Definition at line 6787 of file triangle.cpp.

◆ hullright

struct otri hullleft hullright
Initial value:
{
vertex *sortarray

Definition at line 10062 of file triangle.cpp.

◆ hullsize

return hullsize = 0

Definition at line 10003 of file triangle.cpp.

◆ hullsubseg

struct osub hullsubseg

Definition at line 12668 of file triangle.cpp.

◆ hyperbolacount

m hyperbolacount = m->circletopcount = m->circumcentercount = 0

Definition at line 6734 of file triangle.cpp.

◆ i

int i = 0

Definition at line 3380 of file triangle.cpp.

◆ iccerrboundA

REAL iccerrboundA

Definition at line 729 of file triangle.cpp.

◆ iccerrboundB

REAL iccerrboundB

Definition at line 729 of file triangle.cpp.

◆ iccerrboundC

REAL iccerrboundC

Definition at line 729 of file triangle.cpp.

◆ ii

int ii

Definition at line 15457 of file triangle.cpp.

◆ incirclecount

m incirclecount = m->counterclockcount = m->orient3dcount = 0

Definition at line 5986 of file triangle.cpp.

◆ incorners

int incorners

Definition at line 11241 of file triangle.cpp.

◆ increment

increment = 0

Definition at line 3645 of file triangle.cpp.

◆ incremental

b incremental = b->sweepline = 0

Definition at line 3391 of file triangle.cpp.

◆ index

int index

Definition at line 14274 of file triangle.cpp.

◆ inelements

m inelements = (int) strtol(stringptr, &stringptr, 0)

Definition at line 11272 of file triangle.cpp.

◆ infile

FILE* infile

Definition at line 13891 of file triangle.cpp.

◆ infilename

char * infilename = nodefilename

Definition at line 13892 of file triangle.cpp.

◆ infvertex1

m infvertex1 = (vertex) trimalloc(m->vertices.itembytes)

Definition at line 10163 of file triangle.cpp.

◆ infvertex2

m infvertex2 = (vertex) trimalloc(m->vertices.itembytes)

Definition at line 10164 of file triangle.cpp.

◆ infvertex3

m infvertex3 = (vertex) trimalloc(m->vertices.itembytes)

Definition at line 10165 of file triangle.cpp.

◆ innerleft

sym * innerleft

Definition at line 9507 of file triangle.cpp.

◆ innerleftapex

vertex innerleftapex

Definition at line 9521 of file triangle.cpp.

◆ innerleftdest

vertex innerleftdest

Definition at line 9519 of file triangle.cpp.

◆ innerright

struct otri innerleft innerright
Initial value:
{
struct otri midtri, tri1, tri2, tri3

Definition at line 9508 of file triangle.cpp.

◆ innerrightapex

vertex innerrightapex

Definition at line 9521 of file triangle.cpp.

◆ innerrightorg

vertex innerrightorg

Definition at line 9520 of file triangle.cpp.

◆ innodefilename

b innodefilename[0] = '\0'

Definition at line 3403 of file triangle.cpp.

◆ inputline

char inputline

Definition at line 11219 of file triangle.cpp.

◆ inserttri

struct otri inserttri

Definition at line 10887 of file triangle.cpp.

◆ intersect

enum locateresult intersect = ONEDGE

Definition at line 8317 of file triangle.cpp.

◆ j

int j = 1

Definition at line 3380 of file triangle.cpp.

◆ joinvertex

vertex joinvertex

Definition at line 7307 of file triangle.cpp.

◆ k

int k

Definition at line 3380 of file triangle.cpp.

◆ key

newbad key = minedge

Definition at line 7109 of file triangle.cpp.

◆ killorg

int killorg

Definition at line 12755 of file triangle.cpp.

◆ killvertex

vertex killvertex

Definition at line 11235 of file triangle.cpp.

◆ killvertexindex

int killvertexindex

Definition at line 11240 of file triangle.cpp.

◆ lastedge

struct otri firstedge lastedge
Initial value:
{
struct otri countingtri

Definition at line 8942 of file triangle.cpp.

◆ lastvertex

lastvertex = secondvertex

Definition at line 10889 of file triangle.cpp.

◆ lchild

splayroot lchild = (struct splaynode *) NULL

Definition at line 10783 of file triangle.cpp.

◆ left

left = -1

Definition at line 9312 of file triangle.cpp.

◆ leftbasevertex

vertex leftbasevertex

Definition at line 8952 of file triangle.cpp.

◆ leftccw

leftccw = counterclockwise(m, b, searchpoint, startvertex, leftvertex)

Definition at line 11689 of file triangle.cpp.

◆ leftchild

leftchild = 2 * eventnum + 1

Definition at line 10406 of file triangle.cpp.

◆ leftfinished

int leftfinished

Definition at line 9530 of file triangle.cpp.

◆ leftflag

leftflag = leftccw > 0.0

Definition at line 11690 of file triangle.cpp.

◆ leftright

struct splaynode* leftright

Definition at line 10651 of file triangle.cpp.

◆ leftside

int leftside

Definition at line 12117 of file triangle.cpp.

◆ lefttest

REAL lefttest

Definition at line 10892 of file triangle.cpp.

◆ lefttree

return lefttree
Initial value:
{
struct splaynode *child, *grandchild

Definition at line 10650 of file triangle.cpp.

◆ leftvertex

vertex leftvertex

Definition at line 8009 of file triangle.cpp.

◆ longest

longest = 0.0

Definition at line 15443 of file triangle.cpp.

◆ lowerleft

lowerleft = innerleftdest

Definition at line 9524 of file triangle.cpp.

◆ lowerright

lowerright = innerrightorg

Definition at line 9524 of file triangle.cpp.

◆ m

triangledeinit & m
Initial value:
{
poolzero(&m->vertices)

Definition at line 4714 of file triangle.cpp.

◆ markorg

vertex markorg

Definition at line 10002 of file triangle.cpp.

◆ maxarea

b maxarea = -1.0

Definition at line 3400 of file triangle.cpp.

◆ maxevents

maxevents
Initial value:
{
vertex thisvertex

Definition at line 10506 of file triangle.cpp.

◆ maxlen

maxlen = (dalen > oalen) ? dalen : oalen

Definition at line 1458 of file triangle.cpp.

◆ median

int median

Definition at line 9362 of file triangle.cpp.

◆ memptr

memptr = (VOID *) malloc((unsigned int) size)

Definition at line 1512 of file triangle.cpp.

◆ meshnumber

meshnumber
Initial value:
{
#define STARTINDEX
int increment

Definition at line 3378 of file triangle.cpp.

◆ mid1

vertex mid1

Definition at line 14616 of file triangle.cpp.

◆ mid2

vertex mid2

Definition at line 14616 of file triangle.cpp.

◆ mid3

vertex mid3

Definition at line 14616 of file triangle.cpp.

◆ midvertex

vertex midvertex

Definition at line 10891 of file triangle.cpp.

◆ midvertex1

vertex midvertex1

Definition at line 11995 of file triangle.cpp.

◆ midvertex2

vertex midvertex2

Definition at line 11995 of file triangle.cpp.

◆ minaltitude

minaltitude = m->xmax - m->xmin + m->ymax - m->ymin

Definition at line 15447 of file triangle.cpp.

◆ minangle

b minangle = 0.0

Definition at line 3399 of file triangle.cpp.

◆ minedge

REAL minedge

Definition at line 7097 of file triangle.cpp.

◆ minus1mod3

int minus1mod3[3] = {2, 0, 1}

Definition at line 1012 of file triangle.cpp.

◆ mirrorflag

int mirrorflag

Definition at line 8319 of file triangle.cpp.

◆ moveevent

moveevent = heap[heapsize - 1]

Definition at line 10465 of file triangle.cpp.

◆ moveleft

int moveleft

Definition at line 7591 of file triangle.cpp.

◆ multiplier

REAL multiplier

Definition at line 13337 of file triangle.cpp.

◆ ndest

vertex ndest

Definition at line 12753 of file triangle.cpp.

◆ nearestpoweroftwo

REAL nearestpoweroftwo

Definition at line 13335 of file triangle.cpp.

◆ nearvertex

vertex nearvertex

Definition at line 12124 of file triangle.cpp.

◆ negate

REAL negate

Definition at line 5449 of file triangle.cpp.

◆ neighbor

struct otri neighbor
Initial value:
{
struct otri testtri

Definition at line 12748 of file triangle.cpp.

◆ neighbor1

int neighbor1

Definition at line 15266 of file triangle.cpp.

◆ neighbor2

int neighbor2

Definition at line 15266 of file triangle.cpp.

◆ neighbor3

int neighbor3

Definition at line 15266 of file triangle.cpp.

◆ neighborfilename

char* neighborfilename

Definition at line 15250 of file triangle.cpp.

◆ neighborsubseg

struct osub neighborsubseg

Definition at line 12751 of file triangle.cpp.

◆ newbad

newbad = (struct badtriang *) poolalloc(&m->badtriangles)

Definition at line 7107 of file triangle.cpp.

◆ newbotright

struct otri newbotleft newbotright

Definition at line 8298 of file triangle.cpp.

◆ newevent

struct event * newevent

Definition at line 10359 of file triangle.cpp.

◆ newflip

struct flipstacker* newflip

Definition at line 8310 of file triangle.cpp.

◆ newkey

struct otri * newkey

Definition at line 10763 of file triangle.cpp.

◆ newmark

int newmark

Definition at line 11904 of file triangle.cpp.

◆ neworg

vertex neworg

Definition at line 9049 of file triangle.cpp.

◆ newotri

struct otri* newotri

Definition at line 4746 of file triangle.cpp.

◆ newseg

return newseg

Definition at line 4641 of file triangle.cpp.

◆ newsite

vertex newsite

Definition at line 10538 of file triangle.cpp.

◆ newsplaynode

return newsplaynode = (struct splaynode *) poolalloc(&m->splaynodes)

Definition at line 10770 of file triangle.cpp.

◆ newsubseg

struct osub newsubseg
Initial value:
{
struct otri oppotri

Definition at line 4542 of file triangle.cpp.

◆ newtopright

struct otri newtopright

Definition at line 8299 of file triangle.cpp.

◆ newtriangle

return newtriangle

Definition at line 4496 of file triangle.cpp.

◆ newvertex

vertex newvertex = (vertex) poolalloc(&m->vertices)

Definition at line 4588 of file triangle.cpp.

◆ nextapex

vertex nextapex

Definition at line 9526 of file triangle.cpp.

◆ nextedge

struct otri nextedge

Definition at line 9516 of file triangle.cpp.

◆ nextevent

struct event* nextevent

Definition at line 10880 of file triangle.cpp.

◆ nexttri

struct otri nexttri
Initial value:
{
struct otri hulltri

Definition at line 11231 of file triangle.cpp.

◆ nexttriang

badtri nexttriang = (struct badtriang *) NULL

Definition at line 7073 of file triangle.cpp.

◆ nextvertex

vertex nextvertex

Definition at line 10889 of file triangle.cpp.

◆ nobisect

b nobisect = 0

Definition at line 3395 of file triangle.cpp.

◆ nobound

b nobound = b->nopolywritten = b->nonodewritten = b->noelewritten = 0

Definition at line 3388 of file triangle.cpp.

◆ nodefilename

char * nodefilename

Definition at line 13978 of file triangle.cpp.

◆ nodemarkers

int nodemarkers

Definition at line 13991 of file triangle.cpp.

◆ noexact

b noexact = 0

Definition at line 6793 of file triangle.cpp.

◆ noholes

b noholes = b->noexact = 0

Definition at line 3390 of file triangle.cpp.

◆ noiterationnum

b noiterationnum = 0

Definition at line 3389 of file triangle.cpp.

◆ norg

vertex norg

Definition at line 12753 of file triangle.cpp.

◆ notdone

int notdone = eventnum > 0

Definition at line 10366 of file triangle.cpp.

◆ notfound

int notfound

Definition at line 11246 of file triangle.cpp.

◆ number

int number

Definition at line 4664 of file triangle.cpp.

◆ o3derrboundA

REAL o3derrboundA

Definition at line 730 of file triangle.cpp.

◆ o3derrboundB

REAL o3derrboundB

Definition at line 730 of file triangle.cpp.

◆ o3derrboundC

REAL o3derrboundC

Definition at line 730 of file triangle.cpp.

◆ oalen

oalen = dxoa * dxoa + dyoa * dyoa

Definition at line 1457 of file triangle.cpp.

◆ odlen

odlen = dxod * dxod + dyod * dyod

Definition at line 1457 of file triangle.cpp.

◆ offcenter

int offcenter

Definition at line 6612 of file triangle.cpp.

◆ offfilename

char* offfilename

Definition at line 15354 of file triangle.cpp.

◆ oppoapex

vertex oppoapex

Definition at line 6886 of file triangle.cpp.

◆ oppodest

vertex oppodest

Definition at line 6786 of file triangle.cpp.

◆ oppooppotri

struct otri oppotri oppooppotri
Initial value:
{
struct otri triangleloop

Definition at line 6784 of file triangle.cpp.

◆ oppoorg

vertex oppoorg

Definition at line 6786 of file triangle.cpp.

◆ opposubseg

struct osub opposubseg

Definition at line 6884 of file triangle.cpp.

◆ oppotri

struct otri oppotri
Initial value:
{
struct otri triangleloop

Definition at line 6883 of file triangle.cpp.

◆ order

b order = 1

Definition at line 3398 of file triangle.cpp.

◆ org1

vertex org1

Definition at line 7306 of file triangle.cpp.

◆ org2

vertex org2

Definition at line 7306 of file triangle.cpp.

◆ orglen

orglen = dxda2 + dyda2

Definition at line 7310 of file triangle.cpp.

◆ orgorient

REAL orgorient

Definition at line 7590 of file triangle.cpp.

◆ orient

triangleloop orient = 0

Definition at line 4775 of file triangle.cpp.

◆ orient3dcount

m orient3dcount

Definition at line 6497 of file triangle.cpp.

◆ outercasing

struct otri sidecasing topcasing outercasing

Definition at line 9517 of file triangle.cpp.

◆ outfile

outfile = fopen(nodefilename, "w")

Definition at line 14481 of file triangle.cpp.

◆ outvertices

long outvertices

Definition at line 14445 of file triangle.cpp.

◆ p

vertex p[3]
Initial value:
{
struct otri triangleloop

Definition at line 15435 of file triangle.cpp.

◆ p1

vertex p1

Definition at line 14615 of file triangle.cpp.

◆ p2

vertex p2

Definition at line 14615 of file triangle.cpp.

◆ p3

vertex p3

Definition at line 14615 of file triangle.cpp.

◆ pa

vertex pa

Definition at line 5325 of file triangle.cpp.

◆ parent

int parent

Definition at line 10365 of file triangle.cpp.

◆ pb

vertex pb

Definition at line 5234 of file triangle.cpp.

◆ pc

vertex pc

Definition at line 5235 of file triangle.cpp.

◆ pd

vertex pd

Definition at line 5394 of file triangle.cpp.

◆ permanent

REAL permanent
Initial value:
= (Absolute(bdxcdy) + Absolute(cdxbdy)) * alift
+ (Absolute(cdxady) + Absolute(adxcdy)) * blift
+ (Absolute(adxbdy) + Absolute(bdxady)) * clift

Definition at line 5395 of file triangle.cpp.

◆ pivot

int pivot
Initial value:
{
int left, right

Definition at line 9292 of file triangle.cpp.

◆ pivot1

pivot1 = sortarray[pivot][axis]

Definition at line 9369 of file triangle.cpp.

◆ pivot2

pivot2 = sortarray[pivot][1 - axis]

Definition at line 9369 of file triangle.cpp.

◆ pivotx

pivotx = sortarray[pivot][0]

Definition at line 9293 of file triangle.cpp.

◆ pivoty

pivoty = sortarray[pivot][1]

Definition at line 9293 of file triangle.cpp.

◆ plus1mod3

int plus1mod3[3] = {1, 2, 0}

Definition at line 1011 of file triangle.cpp.

◆ poly

b poly = b->refine = b->quality = 0

Definition at line 3383 of file triangle.cpp.

◆ polyfile

FILE * polyfile = (FILE *) NULL

Definition at line 11207 of file triangle.cpp.

◆ polyfilename

char * polyfilename

Definition at line 11206 of file triangle.cpp.

◆ poortri

newbad poortri = encode(*enqtri)

Definition at line 7108 of file triangle.cpp.

◆ population

population = m->triangles.itemsfirstblock

Definition at line 7737 of file triangle.cpp.

◆ posexponent

posexponent = 0

Definition at line 6997 of file triangle.cpp.

◆ prevlink

triangle* prevlink

Definition at line 11230 of file triangle.cpp.

◆ printsh

struct osub printsh
Initial value:
{
struct otri printtri

Definition at line 3756 of file triangle.cpp.

◆ printvertex

vertex printvertex

Definition at line 3757 of file triangle.cpp.

◆ product0

REAL product0

Definition at line 5148 of file triangle.cpp.

◆ product1

INEXACT REAL product1

Definition at line 5147 of file triangle.cpp.

◆ ptr

triangle ptr
Initial value:
{
int farrightflag

Definition at line 6789 of file triangle.cpp.

◆ Q

return Q = e[0]

Definition at line 5202 of file triangle.cpp.

◆ Qnew

INEXACT REAL Qnew
Initial value:
{
REAL Q

Definition at line 5053 of file triangle.cpp.

◆ queuefront

m queuefront[m->firstnonemptyq] = result->nexttriang

Definition at line 7143 of file triangle.cpp.

◆ queuenumber

int queuenumber

Definition at line 6996 of file triangle.cpp.

◆ queuetail

m queuetail[queuenumber] = badtri

Definition at line 7071 of file triangle.cpp.

◆ quiet

b quiet = b->verbose = 0

Definition at line 3401 of file triangle.cpp.

◆ radconst

radconst = PI / 18.0

Definition at line 15451 of file triangle.cpp.

◆ randomseed

randomseed = 1

Definition at line 734 of file triangle.cpp.

◆ ratiotable

ratiotable[15] = 1.5

Definition at line 15437 of file triangle.cpp.

◆ rchild

newsplaynode rchild = righttree

Definition at line 10746 of file triangle.cpp.

◆ regionapex

vertex regionapex

Definition at line 12965 of file triangle.cpp.

◆ regionarray

REAL* regionarray

Definition at line 15779 of file triangle.cpp.

◆ regionattrib

b regionattrib = b->convex = b->weighted = b->jettison = 0

Definition at line 3385 of file triangle.cpp.

◆ regiondest

vertex regiondest

Definition at line 12965 of file triangle.cpp.

◆ regionlist

REAL * regionlist
Initial value:
{
REAL *holelist

Definition at line 13070 of file triangle.cpp.

◆ regionnumber

long regionnumber

Definition at line 14759 of file triangle.cpp.

◆ regionorg

vertex regionorg

Definition at line 12965 of file triangle.cpp.

◆ regions

m regions = 0

Definition at line 13071 of file triangle.cpp.

◆ regiontri

triangle ** regiontri

Definition at line 12963 of file triangle.cpp.

◆ regiontris

struct otri* regiontris

Definition at line 13077 of file triangle.cpp.

◆ result

return result = m->queuefront[m->firstnonemptyq]

Definition at line 7141 of file triangle.cpp.

◆ resulterrbound

REAL resulterrbound

Definition at line 727 of file triangle.cpp.

◆ return

return

Definition at line 16088 of file triangle.cpp.

◆ right

right = arraysize

Definition at line 9313 of file triangle.cpp.

◆ rightbasevertex

vertex rightbasevertex

Definition at line 8952 of file triangle.cpp.

◆ rightcasing

struct otri leftcasing rightcasing

Definition at line 9046 of file triangle.cpp.

◆ rightccw

rightccw = counterclockwise(m, b, startvertex, searchpoint, rightvertex)

Definition at line 11689 of file triangle.cpp.

◆ rightchild

int rightchild

Definition at line 10406 of file triangle.cpp.

◆ rightfinished

int rightfinished

Definition at line 9530 of file triangle.cpp.

◆ rightflag

rightflag = rightccw > 0.0

Definition at line 11690 of file triangle.cpp.

◆ rightofchild

int rightofchild

Definition at line 10653 of file triangle.cpp.

◆ rightofroot

int rightofroot

Definition at line 10653 of file triangle.cpp.

◆ rightsubseg

struct osub leftsubseg rightsubseg

Definition at line 8307 of file triangle.cpp.

◆ righttest

REAL righttest

Definition at line 10892 of file triangle.cpp.

◆ righttree

righttree = splay(m, splaytree->rchild, searchpoint, searchtri)

Definition at line 10650 of file triangle.cpp.

◆ righttri

struct otri lefttri righttri

Definition at line 9045 of file triangle.cpp.

◆ rightvertex

vertex rightvertex = first

Definition at line 8009 of file triangle.cpp.

◆ rlist

* rlist = (REAL *) NULL

Definition at line 14265 of file triangle.cpp.

◆ s0

REAL s0

Definition at line 5251 of file triangle.cpp.

◆ s1

INEXACT REAL s1

Definition at line 5250 of file triangle.cpp.

◆ sampleblock

sampleblock = m->triangles.firstblock

Definition at line 7797 of file triangle.cpp.

◆ samples

m samples = 1

Definition at line 6730 of file triangle.cpp.

◆ samplesleft

samplesleft
Initial value:
= (m->samples * m->triangles.itemsfirstblock - 1) /
m->triangles.maxitems + 1

Definition at line 7736 of file triangle.cpp.

◆ samplesperblock

samplesperblock = (m->samples * TRIPERBLOCK - 1) / m->triangles.maxitems + 1

Definition at line 7736 of file triangle.cpp.

◆ sampletri

struct otri sampletri

Definition at line 7731 of file triangle.cpp.

◆ saveexact

int saveexact = b->noexact

Definition at line 6788 of file triangle.cpp.

◆ searchdest

vertex searchdest

Definition at line 13080 of file triangle.cpp.

◆ searchdist

searchdist
Initial value:
= (searchpoint[0] - torg[0]) * (searchpoint[0] - torg[0]) +
(searchpoint[1] - torg[1]) * (searchpoint[1] - torg[1])

Definition at line 7734 of file triangle.cpp.

◆ searchedge

struct otri searchedge
Initial value:
{
struct otri deadtriangle

Definition at line 10215 of file triangle.cpp.

◆ searchorg

vertex searchorg

Definition at line 13080 of file triangle.cpp.

◆ searchpoint

vertex searchpoint = pc[0] - (yac * bclen2 - ybc * aclen2) / (2.0 * ccwabc)

Definition at line 7581 of file triangle.cpp.

◆ searchtri

apex * searchtri

Definition at line 7582 of file triangle.cpp.

◆ searchvertex

vertex searchvertex

Definition at line 10843 of file triangle.cpp.

◆ secondvertex

vertex secondvertex

Definition at line 10888 of file triangle.cpp.

◆ segmentdest

vertex segmentdest

Definition at line 8313 of file triangle.cpp.

◆ segmentflaws

int segmentflaws

Definition at line 8289 of file triangle.cpp.

◆ segmentlength

REAL segmentlength

Definition at line 13335 of file triangle.cpp.

◆ segmentmarkers

int segmentmarkers = 0

Definition at line 11242 of file triangle.cpp.

◆ segmentnumber

long segmentnumber

Definition at line 11247 of file triangle.cpp.

◆ segmentorg

vertex segmentorg

Definition at line 8313 of file triangle.cpp.

◆ shorg

vertex shorg

Definition at line 11234 of file triangle.cpp.

◆ shortest

shortest = minaltitude

Definition at line 15443 of file triangle.cpp.

◆ shouldbedelaunay

int shouldbedelaunay

Definition at line 6887 of file triangle.cpp.

◆ sides

sides = 0

Definition at line 7195 of file triangle.cpp.

◆ smallest

int smallest

Definition at line 10407 of file triangle.cpp.

◆ smallestangle

smallestangle = 0.0

Definition at line 15450 of file triangle.cpp.

◆ smallestarea

smallestarea = minaltitude

Definition at line 15445 of file triangle.cpp.

◆ sortarray

sortarray = (vertex *) trimalloc(m->invertices * (int) sizeof(vertex))

Definition at line 9833 of file triangle.cpp.

◆ splayroot

struct splaynode * splayroot = splay(m, splayroot, searchvertex, searchtri)

Definition at line 10762 of file triangle.cpp.

◆ splaytree

struct splaynode* splaytree

Definition at line 10643 of file triangle.cpp.

◆ split

REAL split = (ey * etx - ex * ety) / denom

Definition at line 11792 of file triangle.cpp.

◆ splitseg

struct osub * splitseg = 0

Definition at line 3393 of file triangle.cpp.

◆ splitsubseg

snextself * splitsubseg

Definition at line 11777 of file triangle.cpp.

◆ splitter

REAL splitter

Definition at line 725 of file triangle.cpp.

◆ splittri

apex * splittri

Definition at line 11776 of file triangle.cpp.

◆ sptr

subseg sptr

Definition at line 6891 of file triangle.cpp.

◆ ss

subsegloop ss = (subseg) m->dummysub

Definition at line 4796 of file triangle.cpp.

◆ ssorient

subsegloop ssorient = 0

Definition at line 4809 of file triangle.cpp.

◆ startghost

otricopy * startghost

Definition at line 9995 of file triangle.cpp.

◆ starttri

struct otri starttri

Definition at line 12236 of file triangle.cpp.

◆ startvertex

vertex startvertex
Initial value:
{
struct otri checktri

Definition at line 11687 of file triangle.cpp.

◆ steiner

b steiner = -1

Definition at line 3397 of file triangle.cpp.

◆ steinerleft

m steinerleft = b.steiner

Definition at line 15800 of file triangle.cpp.

◆ stopatsubsegment

int stopatsubsegment

Definition at line 7583 of file triangle.cpp.

◆ stringptr

char * stringptr = readline(inputline, elefile, elefilename)

Definition at line 11220 of file triangle.cpp.

◆ subsegbytes

int subsegbytes

Definition at line 4277 of file triangle.cpp.

◆ subsegloop

struct osub subsegloop

Definition at line 11228 of file triangle.cpp.

◆ subsegmark

int subsegmark

Definition at line 7896 of file triangle.cpp.

◆ subsegnumber

subsegnumber = b->firstnumber

Definition at line 14763 of file triangle.cpp.

◆ success

enum insertvertexresult success = SUCCESSFULVERTEX

Definition at line 8316 of file triangle.cpp.

◆ t

org * t

Definition at line 3751 of file triangle.cpp.

◆ t0

REAL t0

Definition at line 5251 of file triangle.cpp.

◆ t1

INEXACT REAL t1

Definition at line 5250 of file triangle.cpp.

◆ tapex

vertex tapex

Definition at line 6608 of file triangle.cpp.

◆ tdest

vertex tdest

Definition at line 6607 of file triangle.cpp.

◆ temp

vertex temp

Definition at line 9294 of file triangle.cpp.

◆ temp16a

REAL temp16a[16]

Definition at line 5427 of file triangle.cpp.

◆ temp16alen

int temp16alen

Definition at line 5429 of file triangle.cpp.

◆ temp16b

REAL temp16b[16]

Definition at line 5427 of file triangle.cpp.

◆ temp16blen

int temp16blen

Definition at line 5429 of file triangle.cpp.

◆ temp16c

REAL temp16c[16]

Definition at line 5427 of file triangle.cpp.

◆ temp16clen

int temp16clen

Definition at line 5429 of file triangle.cpp.

◆ temp32a

REAL temp32a[32]

Definition at line 5428 of file triangle.cpp.

◆ temp32alen

int temp32alen

Definition at line 5430 of file triangle.cpp.

◆ temp32b

REAL temp32b[32]

Definition at line 5428 of file triangle.cpp.

◆ temp32blen

int temp32blen

Definition at line 5430 of file triangle.cpp.

◆ temp48

REAL temp48[48]

Definition at line 5428 of file triangle.cpp.

◆ temp48len

int temp48len

Definition at line 5430 of file triangle.cpp.

◆ temp64

REAL temp64[64]

Definition at line 5428 of file triangle.cpp.

◆ temp64len

int temp64len

Definition at line 5430 of file triangle.cpp.

◆ temp8

REAL temp8[8]

Definition at line 5427 of file triangle.cpp.

◆ temp8len

int temp8len

Definition at line 5429 of file triangle.cpp.

◆ tempedge

struct otri tempedge

Definition at line 8951 of file triangle.cpp.

◆ tendegree

int tendegree

Definition at line 15455 of file triangle.cpp.

◆ testsh

struct osub testsh

Definition at line 13329 of file triangle.cpp.

◆ testsub

struct osub testsub
Initial value:
{
struct otri tri1, tri2

Definition at line 7303 of file triangle.cpp.

◆ testsubseg

ssym * testsubseg

Definition at line 7186 of file triangle.cpp.

◆ testsym

struct osub testsym
Initial value:
{
struct otri neighbortri

Definition at line 7191 of file triangle.cpp.

◆ testtri

struct otri testtri
Initial value:
{
struct otri enctri

Definition at line 7298 of file triangle.cpp.

◆ testvertex

vertex testvertex

Definition at line 8953 of file triangle.cpp.

◆ thisevent

thisevent = heap[eventnum]

Definition at line 10410 of file triangle.cpp.

◆ ti0

REAL ti0

Definition at line 5424 of file triangle.cpp.

◆ ti1

INEXACT REAL ti1

Definition at line 5423 of file triangle.cpp.

◆ tj0

REAL tj0

Definition at line 5424 of file triangle.cpp.

◆ tj1

INEXACT REAL tj1

Definition at line 5423 of file triangle.cpp.

◆ top

struct otri top
Initial value:
{
struct otri horiz

Definition at line 8004 of file triangle.cpp.

◆ toplcasing

struct otri toplcasing ={NULL, 0}

Definition at line 8301 of file triangle.cpp.

◆ toprcasing

struct otri botlcasing botrcasing toprcasing ={NULL, 0}

Definition at line 8006 of file triangle.cpp.

◆ topright

struct otri botleft botright topright
Initial value:
{
struct otri botleft, botright

Definition at line 8003 of file triangle.cpp.

◆ toprsubseg

struct osub botlsubseg botrsubseg toprsubseg

Definition at line 8008 of file triangle.cpp.

◆ topvertex

vertex topvertex

Definition at line 8312 of file triangle.cpp.

◆ topy

REAL topy

Definition at line 10806 of file triangle.cpp.

◆ torg

vertex torg

Definition at line 6606 of file triangle.cpp.

◆ totalpopulation

totalpopulation = m->triangles.maxitems

Definition at line 7737 of file triangle.cpp.

◆ totalsamplesleft

totalsamplesleft = m->samples

Definition at line 7736 of file triangle.cpp.

◆ tri

triangleloop tri = (triangle *) poolalloc(&m->triangles)

Definition at line 4752 of file triangle.cpp.

◆ triangapex

newbad triangapex = enqapex

Definition at line 7110 of file triangle.cpp.

◆ triangdest

newbad triangdest = enqdest

Definition at line 7112 of file triangle.cpp.

◆ trianglebytes

int trianglebytes

Definition at line 4276 of file triangle.cpp.

◆ triangleleft

struct otri triangleleft

Definition at line 11224 of file triangle.cpp.

◆ triangleloop

struct otri triangleloop
Initial value:
{
struct otri searchtri

Definition at line 11223 of file triangle.cpp.

◆ triangorg

newbad triangorg = enqorg

Definition at line 7111 of file triangle.cpp.

◆ triapex

vertex triapex

Definition at line 1450 of file triangle.cpp.

◆ triarea

REAL triarea

Definition at line 15442 of file triangle.cpp.

◆ triaspect2

REAL triaspect2

Definition at line 15448 of file triangle.cpp.

◆ tridest

vertex tridest

Definition at line 1449 of file triangle.cpp.

◆ triflaws

int triflaws

Definition at line 8290 of file triangle.cpp.

◆ trilongest2

REAL trilongest2

Definition at line 15444 of file triangle.cpp.

◆ triminaltitude2

REAL triminaltitude2

Definition at line 15446 of file triangle.cpp.

◆ triorg

vertex triorg
Initial value:
{
struct otri triangleloop

Definition at line 6785 of file triangle.cpp.

◆ trisize

trisize
Initial value:
= ((b->order + 1) * (b->order + 2) / 2 + (m->highorderindex - 3)) *
sizeof(triangle)

Definition at line 4409 of file triangle.cpp.

◆ trisym

struct otri triangleloop trisym
Initial value:
{
FILE *outfile

Definition at line 14900 of file triangle.cpp.

◆ tv0

gettimeofday& tv0

Definition at line 15791 of file triangle.cpp.

◆ tv6

struct timeval tv0 tv1 tv2 tv3 tv4 tv5 tv6

Definition at line 15786 of file triangle.cpp.

◆ tx

tx = tdest[0] - torg[0]

Definition at line 11790 of file triangle.cpp.

◆ ty

ty = tdest[1] - torg[1]

Definition at line 11790 of file triangle.cpp.

◆ tz

struct timezone tz

Definition at line 15787 of file triangle.cpp.

◆ u

REAL u = u3

Definition at line 5248 of file triangle.cpp.

◆ u3

INEXACT REAL u3

Definition at line 5249 of file triangle.cpp.

◆ undeads

m undeads = 0

Definition at line 6729 of file triangle.cpp.

◆ upperleft

vertex upperleft

Definition at line 9525 of file triangle.cpp.

◆ upperright

vertex upperright

Definition at line 9525 of file triangle.cpp.

◆ usesegments

b usesegments = b->poly || b->refine || b->quality || b->convex

Definition at line 3602 of file triangle.cpp.

◆ v

REAL v

Definition at line 5425 of file triangle.cpp.

◆ v3

INEXACT REAL v3

Definition at line 5426 of file triangle.cpp.

◆ vararea

b vararea = b->fixedarea = b->usertest = 0

Definition at line 3384 of file triangle.cpp.

◆ vedgefilename

char* vedgefilename

Definition at line 15046 of file triangle.cpp.

◆ vedgenumber

vedgenumber = b->firstnumber

Definition at line 15068 of file triangle.cpp.

◆ vertexarray

vertexarray
Initial value:
= (triangle *) trimalloc(m->vertices.items *
(int) sizeof(triangle))

Definition at line 11229 of file triangle.cpp.

◆ vertexloop

vertex vertexloop
Initial value:
{
struct otri starttri

Definition at line 10314 of file triangle.cpp.

◆ vertexmarkindex

m vertexmarkindex
Initial value:
= ((m->mesh_dim + m->nextras) * sizeof(REAL) +
sizeof(int) - 1) /
sizeof(int)

Definition at line 4363 of file triangle.cpp.

◆ vertexnumber

int vertexnumber = b->firstnumber

Definition at line 14446 of file triangle.cpp.

◆ vertexsize

vertexsize = (m->vertexmarkindex + 2) * sizeof(int)

Definition at line 4366 of file triangle.cpp.

◆ vertices

int vertices

Definition at line 9834 of file triangle.cpp.

◆ virusloop

triangle ** virusloop = (triangle **) traverse(&m->viri)

Definition at line 12749 of file triangle.cpp.

◆ vlength

int vlength

Definition at line 6106 of file triangle.cpp.

◆ vnodefilename

char* vnodefilename

Definition at line 15045 of file triangle.cpp.

◆ vnodenumber

vnodenumber = b->firstnumber

Definition at line 15068 of file triangle.cpp.

◆ w

REAL w[16]

Definition at line 6104 of file triangle.cpp.

◆ width

width
Initial value:
{
struct otri inftri

Definition at line 10149 of file triangle.cpp.

◆ wlength

wlength = scale_expansion_zeroelim(bctlen, bct, adheight, w)

Definition at line 6106 of file triangle.cpp.

◆ workstring

workstring[increment+2] = 'd'

Definition at line 3381 of file triangle.cpp.

◆ worstaspect

worstaspect = 0.0

Definition at line 15449 of file triangle.cpp.

◆ x

REAL x

Definition at line 13989 of file triangle.cpp.

◆ xab

xab = pa[0] - pb[0]

Definition at line 10592 of file triangle.cpp.

◆ xac

REAL xac = pa[0] - pc[0]

Definition at line 10588 of file triangle.cpp.

◆ xao

xao = tapex[0] - torg[0]

Definition at line 6626 of file triangle.cpp.

◆ xbc

REAL xbc = pb[0] - pc[0]

Definition at line 10590 of file triangle.cpp.

◆ xdo

xdo = tdest[0] - torg[0]

Definition at line 6624 of file triangle.cpp.

◆ xi

REAL xi = (yao * dx - xao * dy) * (2.0 * denominator)

Definition at line 6610 of file triangle.cpp.

◆ xminextreme

m xminextreme = 10 * m->xmin - 9 * m->xmax

Definition at line 14155 of file triangle.cpp.

◆ y

REAL y

Definition at line 13989 of file triangle.cpp.

◆ yab

yab = pa[1] - pb[1]

Definition at line 10593 of file triangle.cpp.

◆ yac

REAL yac = pa[1] - pc[1]

Definition at line 10589 of file triangle.cpp.

◆ yao

yao = tapex[1] - torg[1]

Definition at line 6627 of file triangle.cpp.

◆ ybc

REAL ybc = pb[1] - pc[1]

Definition at line 10591 of file triangle.cpp.

◆ ydo

ydo = tdest[1] - torg[1]

Definition at line 6625 of file triangle.cpp.