DomainDecomposition/RunTriangle/triangle.cpp File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <sys/time.h>
#include "triangle.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

Defines

#define REAL   double
#define INEXACT
#define FILENAMESIZE   2048
#define INPUTLINESIZE   1024
#define TRIPERBLOCK   4092
#define SUBSEGPERBLOCK   508
#define VERTEXPERBLOCK   4092
#define VIRUSPERBLOCK   1020
#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 *string, FILE *infile, char *infilename)
char * findfield (char *string)
int triunsuitable (vertex triorg, vertex tridest, vertex triapex, REAL area)
void triexit (int status)
VOID * trimalloc (int size)
void trifree (VOID *memptr)
void syntax ()
void info ()
void internalerror ()
void parsecommandline (int argc, char **argv, struct behavior *b)
void printtriangle (struct mesh *m, struct behavior *b, struct otri *t)
void printsubseg (struct mesh *m, struct behavior *b, struct osub *s)
void poolzero (struct memorypool *pool)
void poolrestart (struct memorypool *pool)
void poolinit (struct memorypool *pool, int bytecount, int itemcount, int firstitemcount, int alignment)
void pooldeinit (struct memorypool *pool)
VOID * poolalloc (struct memorypool *pool)
void pooldealloc (struct memorypool *pool, VOID *dyingitem)
void traversalinit (struct memorypool *pool)
VOID * traverse (struct memorypool *pool)
void dummyinit (struct mesh *m, struct behavior *b, int trianglebytes, int subsegbytes)
void initializevertexpool (struct mesh *m, struct behavior *b)
void initializetrisubpools (struct mesh *m, struct behavior *b)
void triangledealloc (struct mesh *m, triangle *dyingtriangle)
triangletriangletraverse (struct mesh *m)
void subsegdealloc (struct mesh *m, subseg *dyingsubseg)
subsegsubsegtraverse (struct mesh *m)
void vertexdealloc (struct mesh *m, vertex dyingvertex)
vertex vertextraverse (struct mesh *m)
void badsubsegdealloc (struct mesh *m, struct badsubseg *dyingseg)
badsubsegbadsubsegtraverse (struct mesh *m)
vertex getvertex (struct mesh *m, struct behavior *b, int number)
void triangledeinit (struct mesh *m, struct behavior *b)
void maketriangle (struct mesh *m, struct behavior *b, struct otri *newotri)
void makesubseg (struct mesh *m, struct osub *newsubseg)
void exactinit ()
int fast_expansion_sum_zeroelim (int elen, REAL *e, int flen, REAL *f, REAL *h)
int scale_expansion_zeroelim (int elen, REAL *e, REAL b, REAL *h)
REAL estimate (int elen, REAL *e)
REAL counterclockwiseadapt (vertex pa, vertex pb, vertex pc, REAL detsum)
REAL counterclockwise (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc)
REAL incircleadapt (vertex pa, vertex pb, vertex pc, vertex pd, REAL permanent)
REAL incircle (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd)
REAL orient3dadapt (vertex pa, vertex pb, vertex pc, vertex pd, REAL aheight, REAL bheight, REAL cheight, REAL dheight, REAL permanent)
REAL orient3d (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd, REAL aheight, REAL bheight, REAL cheight, REAL dheight)
REAL nonregular (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd)
void findcircumcenter (struct mesh *m, struct behavior *b, vertex torg, vertex tdest, vertex tapex, vertex circumcenter, REAL *xi, REAL *eta, int offcenter)
void triangleinit (struct mesh *m)
unsigned long randomnation (unsigned int choices)
void checkmesh (struct mesh *m, struct behavior *b)
void checkdelaunay (struct mesh *m, struct behavior *b)
void enqueuebadtriang (struct mesh *m, struct behavior *b, struct badtriang *badtri)
void enqueuebadtri (struct mesh *m, struct behavior *b, struct otri *enqtri, REAL minedge, vertex enqapex, vertex enqorg, vertex enqdest)
badtriangdequeuebadtriang (struct mesh *m)
int checkseg4encroach (struct mesh *m, struct behavior *b, struct osub *testsubseg)
void testtriangle (struct mesh *m, struct behavior *b, struct otri *testtri)
void makevertexmap (struct mesh *m, struct behavior *b)
enum locateresult preciselocate (struct mesh *m, struct behavior *b, vertex searchpoint, struct otri *searchtri, int stopatsubsegment)
enum locateresult locate (struct mesh *m, struct behavior *b, vertex searchpoint, struct otri *searchtri)
void insertsubseg (struct mesh *m, struct behavior *b, struct otri *tri, int subsegmark)
void flip (struct mesh *m, struct behavior *b, struct otri *flipedge)
void unflip (struct mesh *m, struct behavior *b, struct otri *flipedge)
enum insertvertexresult insertvertex (struct mesh *m, struct behavior *b, vertex newvertex, struct otri *searchtri, struct osub *splitseg, int segmentflaws, int triflaws)
void triangulatepolygon (struct mesh *m, struct behavior *b, struct otri *firstedge, struct otri *lastedge, int edgecount, int doflip, int triflaws)
void deletevertex (struct mesh *m, struct behavior *b, struct otri *deltri)
void undovertex (struct mesh *m, struct behavior *b)
void vertexsort (vertex *sortarray, int arraysize)
void vertexmedian (vertex *sortarray, int arraysize, int median, int axis)
void alternateaxes (vertex *sortarray, int arraysize, int axis)
void mergehulls (struct mesh *m, struct behavior *b, struct otri *farleft, struct otri *innerleft, struct otri *innerright, struct otri *farright, int axis)
void divconqrecurse (struct mesh *m, struct behavior *b, vertex *sortarray, int vertices, int axis, struct otri *farleft, struct otri *farright)
long removeghosts (struct mesh *m, struct behavior *b, struct otri *startghost)
long divconqdelaunay (struct mesh *m, struct behavior *b)
void boundingbox (struct mesh *m, struct behavior *b)
long removebox (struct mesh *m, struct behavior *b)
long incrementaldelaunay (struct mesh *m, struct behavior *b)
void eventheapinsert (struct event **heap, int heapsize, struct event *newevent)
void eventheapify (struct event **heap, int heapsize, int eventnum)
void eventheapdelete (struct event **heap, int heapsize, int eventnum)
void createeventheap (struct mesh *m, struct event ***eventheap, struct event **events, struct event **freeevents)
int rightofhyperbola (struct mesh *m, struct otri *fronttri, vertex newsite)
REAL circletop (struct mesh *m, vertex pa, vertex pb, vertex pc, REAL ccwabc)
void check4deadevent (struct otri *checktri, struct event **freeevents, struct event **eventheap, int *heapsize)
splaynodesplay (struct mesh *m, struct splaynode *splaytree, vertex searchpoint, struct otri *searchtri)
splaynodesplayinsert (struct mesh *m, struct splaynode *splayroot, struct otri *newkey, vertex searchpoint)
splaynodecircletopinsert (struct mesh *m, struct behavior *b, struct splaynode *splayroot, struct otri *newkey, vertex pa, vertex pb, vertex pc, REAL topy)
splaynodefrontlocate (struct mesh *m, struct splaynode *splayroot, struct otri *bottommost, vertex searchvertex, struct otri *searchtri, int *farright)
long sweeplinedelaunay (struct mesh *m, struct behavior *b)
long delaunay (struct mesh *m, struct behavior *b)
long reconstruct (struct mesh *m, struct behavior *b, char *elefilename, char *areafilename, char *polyfilename, FILE *polyfile)
enum finddirectionresult finddirection (struct mesh *m, struct behavior *b, struct otri *searchtri, vertex searchpoint)
void segmentintersection (struct mesh *m, struct behavior *b, struct otri *splittri, struct osub *splitsubseg, vertex endpoint2)
int scoutsegment (struct mesh *m, struct behavior *b, struct otri *searchtri, vertex endpoint2, int newmark)
void conformingedge (struct mesh *m, struct behavior *b, vertex endpoint1, vertex endpoint2, int newmark)
void delaunayfixup (struct mesh *m, struct behavior *b, struct otri *fixuptri, int leftside)
void constrainededge (struct mesh *m, struct behavior *b, struct otri *starttri, vertex endpoint2, int newmark)
void insertsegment (struct mesh *m, struct behavior *b, vertex endpoint1, vertex endpoint2, int newmark)
void markhull (struct mesh *m, struct behavior *b)
void formskeleton (struct mesh *m, struct behavior *b, FILE *polyfile, char *polyfilename)
void infecthull (struct mesh *m, struct behavior *b)
void plague (struct mesh *m, struct behavior *b)
void regionplague (struct mesh *m, struct behavior *b, REAL attribute, REAL area)
void carveholes (struct mesh *m, struct behavior *b, REAL *holelist, int holes, REAL *regionlist, int regions)
void tallyencs (struct mesh *m, struct behavior *b)
void precisionerror ()
void splitencsegs (struct mesh *m, struct behavior *b, int triflaws)
void tallyfaces (struct mesh *m, struct behavior *b)
void splittriangle (struct mesh *m, struct behavior *b, struct badtriang *badtri)
void enforcequality (struct mesh *m, struct behavior *b)
void highorder (struct mesh *m, struct behavior *b)
void readnodes (struct mesh *m, struct behavior *b, char *nodefilename, char *polyfilename, FILE **polyfile)
void readholes (struct mesh *m, struct behavior *b, FILE *polyfile, char *polyfilename, REAL **hlist, int *holes, REAL **rlist, int *regions)
void finishfile (FILE *outfile, int argc, char **argv)
void writenodes (struct mesh *m, struct behavior *b, char *nodefilename, int argc, char **argv)
void numbernodes (struct mesh *m, struct behavior *b)
void writeelements (struct mesh *m, struct behavior *b, char *elefilename, int argc, char **argv)
void writepoly (struct mesh *m, struct behavior *b, char *polyfilename, REAL *holelist, int holes, REAL *regionlist, int regions, int argc, char **argv)
void writeedges (struct mesh *m, struct behavior *b, char *edgefilename, int argc, char **argv)
void writevoronoi (struct mesh *m, struct behavior *b, char *vnodefilename, char *vedgefilename, int argc, char **argv)
void writeneighbors (struct mesh *m, struct behavior *b, char *neighborfilename, int argc, char **argv)
void writeoff (struct mesh *m, struct behavior *b, char *offfilename, int argc, char **argv)
void quality_statistics (struct mesh *m, struct behavior *b)
void statistics (struct mesh *m, struct behavior *b)
int ShewchukTRIANGLE (int argc, char **argv)

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
int plus1mod3 [3] = {1, 2, 0}
int minus1mod3 [3] = {2, 0, 1}


Define Documentation

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

Definition at line 4755 of file triangle.cpp.

Referenced by counterclockwiseadapt(), incircle(), incircleadapt(), orient3d(), and orient3dadapt().

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

Definition at line 1074 of file triangle.cpp.

Referenced by checkdelaunay(), checkmesh(), checkseg4encroach(), delaunayfixup(), finddirection(), flip(), insertvertex(), mergehulls(), plague(), preciselocate(), printtriangle(), quality_statistics(), regionplague(), rightofhyperbola(), scoutsegment(), segmentintersection(), splitencsegs(), splittriangle(), sweeplinedelaunay(), testtriangle(), triangulatepolygon(), unflip(), writeelements(), writeoff(), and writevoronoi().

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

Definition at line 1138 of file triangle.cpp.

Referenced by insertvertex(), printtriangle(), and testtriangle().

#define BADSUBSEGPERBLOCK   252

Definition at line 296 of file triangle.cpp.

Referenced by enforcequality().

#define BADTRIPERBLOCK   4092

Definition at line 298 of file triangle.cpp.

Referenced by enforcequality().

#define bond ( otri1,
otri2   ) 

Value:

(otri1).tri[(otri1).orient] = encode(otri2);                                \
  (otri2).tri[(otri2).orient] = encode(otri1)

Definition at line 1088 of file triangle.cpp.

Referenced by deletevertex(), divconqrecurse(), flip(), mergehulls(), sweeplinedelaunay(), undovertex(), and unflip().

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

Definition at line 1271 of file triangle.cpp.

Referenced by splitencsegs(), and subsegtraverse().

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

Definition at line 1148 of file triangle.cpp.

Referenced by checkdelaunay(), locate(), splittriangle(), and triangletraverse().

#define DEADVERTEX   -32768

Definition at line 311 of file triangle.cpp.

Referenced by vertexdealloc(), and vertextraverse().

#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 943 of file triangle.cpp.

Referenced by insertsegment(), printsubseg(), printtriangle(), splittriangle(), sweeplinedelaunay(), and undovertex().

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

Definition at line 1071 of file triangle.cpp.

Referenced by carveholes(), checkdelaunay(), checkmesh(), delaunayfixup(), finddirection(), flip(), highorder(), infecthull(), insertsubseg(), insertvertex(), locate(), mergehulls(), plague(), preciselocate(), printtriangle(), quality_statistics(), regionplague(), rightofhyperbola(), scoutsegment(), segmentintersection(), splay(), splayinsert(), splittriangle(), sweeplinedelaunay(), testtriangle(), triangulatepolygon(), undovertex(), unflip(), writeedges(), writeelements(), writeoff(), and writevoronoi().

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

Definition at line 1097 of file triangle.cpp.

Referenced by plague(), removebox(), and removeghosts().

#define dnext ( otri1,
otri2   ) 

Value:

sym(otri1, otri2);                                                          \
  lprevself(otri2);

Definition at line 1017 of file triangle.cpp.

Referenced by deletevertex(), and undovertex().

#define dnextself ( otri   ) 

Value:

Definition at line 1021 of file triangle.cpp.

Referenced by testtriangle().

#define dprev ( otri1,
otri2   ) 

Value:

lnext(otri1, otri2);                                                        \
  symself(otri2);

Definition at line 1029 of file triangle.cpp.

Referenced by undovertex().

#define dprevself ( otri   ) 

Value:

Definition at line 1033 of file triangle.cpp.

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

Definition at line 1130 of file triangle.cpp.

Referenced by insertvertex(), and writeelements().

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

Definition at line 952 of file triangle.cpp.

Referenced by enqueuebadtri(), makevertexmap(), removebox(), removeghosts(), segmentintersection(), and sweeplinedelaunay().

#define Fast_Two_Sum ( a,
b,
x,
 ) 

Value:

x = (REAL) (a + b); \
  Fast_Two_Sum_Tail(a, b, x, y)

Definition at line 4775 of file triangle.cpp.

Referenced by fast_expansion_sum_zeroelim(), and scale_expansion_zeroelim().

#define Fast_Two_Sum_Tail ( a,
b,
x,
 ) 

Value:

bvirt = x - a; \
  y = b - bvirt

Definition at line 4771 of file triangle.cpp.

#define FILENAMESIZE   2048

Definition at line 280 of file triangle.cpp.

Referenced by parsecommandline().

#define FLIPSTACKERPERBLOCK   252

Definition at line 300 of file triangle.cpp.

Referenced by enforcequality().

#define FREEVERTEX   2

Definition at line 310 of file triangle.cpp.

Referenced by highorder(), splitencsegs(), and splittriangle().

#define INEXACT

Definition at line 275 of file triangle.cpp.

Referenced by counterclockwiseadapt(), fast_expansion_sum_zeroelim(), incircleadapt(), orient3dadapt(), and scale_expansion_zeroelim().

#define infect ( otri   ) 

Value:

(otri).tri[6] = (triangle)                                                  \
                    ((unsigned long) (otri).tri[6] | (unsigned long) 2l)

Definition at line 1115 of file triangle.cpp.

Referenced by carveholes(), infecthull(), plague(), and regionplague().

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

Definition at line 1125 of file triangle.cpp.

Referenced by carveholes(), infecthull(), plague(), and regionplague().

#define INPUTLINESIZE   1024

Definition at line 285 of file triangle.cpp.

Referenced by formskeleton(), readholes(), readline(), readnodes(), and reconstruct().

#define INPUTVERTEX   0

Definition at line 308 of file triangle.cpp.

Referenced by readnodes(), and segmentintersection().

#define killsubseg ( sub   ) 

Value:

(sub)[1] = (subseg) NULL;                                                   \
  (sub)[2] = (subseg) NULL

Definition at line 1273 of file triangle.cpp.

Referenced by subsegdealloc().

#define killtri ( tria   ) 

Value:

(tria)[1] = (triangle) NULL;                                                \
  (tria)[3] = (triangle) NULL

Definition at line 1150 of file triangle.cpp.

Referenced by triangledealloc().

#define lnext ( otri1,
otri2   ) 

Value:

(otri2).tri = (otri1).tri;                                                  \
  (otri2).orient = plus1mod3[(otri1).orient]

Definition at line 973 of file triangle.cpp.

Referenced by constrainededge(), delaunayfixup(), divconqrecurse(), flip(), mergehulls(), preciselocate(), removebox(), removeghosts(), scoutsegment(), splitencsegs(), sweeplinedelaunay(), testtriangle(), and unflip().

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

Definition at line 977 of file triangle.cpp.

Referenced by divconqrecurse(), flip(), infecthull(), insertvertex(), locate(), markhull(), mergehulls(), preciselocate(), removebox(), scoutsegment(), splitencsegs(), sweeplinedelaunay(), undovertex(), and unflip().

#define lprev ( otri1,
otri2   ) 

Value:

(otri2).tri = (otri1).tri;                                                  \
  (otri2).orient = minus1mod3[(otri1).orient]

Definition at line 982 of file triangle.cpp.

Referenced by deletevertex(), divconqrecurse(), flip(), insertvertex(), mergehulls(), preciselocate(), removebox(), removeghosts(), splitencsegs(), sweeplinedelaunay(), testtriangle(), undovertex(), and unflip().

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

Definition at line 986 of file triangle.cpp.

Referenced by constrainededge(), delaunayfixup(), divconqrecurse(), mergehulls(), preciselocate(), removebox(), removeghosts(), scoutsegment(), splitencsegs(), splittriangle(), sweeplinedelaunay(), and undovertex().

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

Definition at line 1237 of file triangle.cpp.

Referenced by highorder(), infecthull(), insertsubseg(), plague(), printsubseg(), segmentintersection(), splitencsegs(), writeedges(), and writepoly().

#define ONETHIRD   0.333333333333333333333333333333333333333333333333333333333333

Definition at line 344 of file triangle.cpp.

#define onext ( otri1,
otri2   ) 

Value:

lprev(otri1, otri2);                                                        \
  symself(otri2);

Definition at line 993 of file triangle.cpp.

Referenced by deletevertex(), finddirection(), plague(), sweeplinedelaunay(), triangulatepolygon(), and undovertex().

#define onextself ( otri   ) 

Value:

Definition at line 997 of file triangle.cpp.

Referenced by deletevertex(), finddirection(), frontlocate(), plague(), segmentintersection(), and triangulatepolygon().

#define oprev ( otri1,
otri2   ) 

Value:

sym(otri1, otri2);                                                          \
  lnextself(otri2);

Definition at line 1005 of file triangle.cpp.

Referenced by constrainededge(), deletevertex(), infecthull(), markhull(), plague(), sweeplinedelaunay(), and triangulatepolygon().

#define oprevself ( otri   ) 

Value:

Definition at line 1009 of file triangle.cpp.

Referenced by constrainededge(), finddirection(), plague(), and testtriangle().

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

Definition at line 1068 of file triangle.cpp.

Referenced by carveholes(), check4deadevent(), checkdelaunay(), checkmesh(), conformingedge(), constrainededge(), delaunayfixup(), deletevertex(), finddirection(), flip(), highorder(), infecthull(), insertsegment(), insertsubseg(), insertvertex(), locate(), makevertexmap(), mergehulls(), plague(), preciselocate(), printtriangle(), quality_statistics(), regionplague(), removebox(), removeghosts(), segmentintersection(), splitencsegs(), splittriangle(), sweeplinedelaunay(), testtriangle(), unflip(), writeedges(), writeelements(), writeoff(), and writevoronoi().

#define otricopy ( otri1,
otri2   ) 

Value:

(otri2).tri = (otri1).tri;                                                  \
  (otri2).orient = (otri1).orient

Definition at line 1102 of file triangle.cpp.

Referenced by conformingedge(), divconqrecurse(), frontlocate(), infecthull(), insertsegment(), insertvertex(), locate(), markhull(), mergehulls(), preciselocate(), removebox(), removeghosts(), scoutsegment(), splay(), splayinsert(), sweeplinedelaunay(), testtriangle(), and triangulatepolygon().

#define otriequal ( otri1,
otri2   ) 

Value:

(((otri1).tri == (otri2).tri) &&                                            \
   ((otri1).orient == (otri2).orient))

Definition at line 1108 of file triangle.cpp.

Referenced by deletevertex(), frontlocate(), infecthull(), markhull(), plague(), removebox(), removeghosts(), and sweeplinedelaunay().

#define PI   3.141592653589793238462643383279502884197169399375105820974944592308

Definition at line 336 of file triangle.cpp.

Referenced by quality_statistics(), and SLOPE().

#define REAL   double

Definition at line 219 of file triangle.cpp.

Referenced by boundingbox(), checkseg4encroach(), circletop(), circletopinsert(), constrainededge(), counterclockwise(), counterclockwiseadapt(), divconqrecurse(), enqueuebadtriang(), estimate(), eventheapdelete(), eventheapify(), eventheapinsert(), exactinit(), fast_expansion_sum_zeroelim(), findcircumcenter(), finddirection(), incircle(), incircleadapt(), initializetrisubpools(), initializevertexpool(), insertvertex(), locate(), orient3d(), orient3dadapt(), parsecommandline(), preciselocate(), quality_statistics(), readholes(), readnodes(), reconstruct(), rightofhyperbola(), scale_expansion_zeroelim(), segmentintersection(), ShewchukTRIANGLE(), splitencsegs(), splittriangle(), sweeplinedelaunay(), testtriangle(), triunsuitable(), vertexmedian(), vertexsort(), writeelements(), writenodes(), and writevoronoi().

#define rnext ( otri1,
otri2   ) 

Value:

sym(otri1, otri2);                                                          \
  lnextself(otri2);                                                           \
  symself(otri2);

Definition at line 1041 of file triangle.cpp.

#define rnextself ( otri   ) 

Value:

Definition at line 1046 of file triangle.cpp.

#define rprev ( otri1,
otri2   ) 

Value:

sym(otri1, otri2);                                                          \
  lprevself(otri2);                                                           \
  symself(otri2);

Definition at line 1055 of file triangle.cpp.

#define rprevself ( otri   ) 

Value:

Definition at line 1060 of file triangle.cpp.

#define SAMPLEFACTOR   11

Definition at line 326 of file triangle.cpp.

Referenced by locate().

#define SAMPLERATE   10

Definition at line 332 of file triangle.cpp.

Referenced by sweeplinedelaunay().

#define sbond ( osub1,
osub2   ) 

Value:

(osub1).ss[(osub1).ssorient] = sencode(osub2);                              \
  (osub2).ss[(osub2).ssorient] = sencode(osub1)

Definition at line 1244 of file triangle.cpp.

#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 1163 of file triangle.cpp.

Referenced by printsubseg(), printtriangle(), and splitencsegs().

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

Definition at line 1212 of file triangle.cpp.

Referenced by checkseg4encroach(), insertvertex(), printsubseg(), splitencsegs(), and writepoly().

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

Definition at line 1251 of file triangle.cpp.

Referenced by segmentintersection().

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

Definition at line 1224 of file triangle.cpp.

Referenced by printsubseg(), and testtriangle().

#define SEGMENTVERTEX   1

Definition at line 309 of file triangle.cpp.

Referenced by conformingedge(), highorder(), splitencsegs(), and testtriangle().

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

Definition at line 1221 of file triangle.cpp.

Referenced by printsubseg(), and testtriangle().

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

Definition at line 1172 of file triangle.cpp.

Referenced by checkseg4encroach(), and insertvertex().

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

Definition at line 1083 of file triangle.cpp.

Referenced by boundingbox(), divconqrecurse(), flip(), insertvertex(), mergehulls(), sweeplinedelaunay(), undovertex(), and unflip().

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

Definition at line 1140 of file triangle.cpp.

Referenced by insertvertex(), maketriangle(), and regionplague().

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

Definition at line 1080 of file triangle.cpp.

Referenced by boundingbox(), divconqrecurse(), flip(), insertvertex(), mergehulls(), sweeplinedelaunay(), and unflip().

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

Definition at line 1133 of file triangle.cpp.

Referenced by insertvertex(), maketriangle(), and regionplague().

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

Definition at line 1239 of file triangle.cpp.

Referenced by infecthull(), insertsubseg(), makesubseg(), and plague().

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

Definition at line 1077 of file triangle.cpp.

Referenced by boundingbox(), check4deadevent(), deletevertex(), divconqrecurse(), flip(), insertvertex(), mergehulls(), plague(), sweeplinedelaunay(), undovertex(), and unflip().

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

Definition at line 1218 of file triangle.cpp.

Referenced by insertsubseg().

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

Definition at line 1230 of file triangle.cpp.

Referenced by insertsubseg().

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

Definition at line 1227 of file triangle.cpp.

Referenced by insertsubseg(), and segmentintersection().

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

Definition at line 1215 of file triangle.cpp.

Referenced by insertsubseg().

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

Definition at line 1326 of file triangle.cpp.

Referenced by makevertexmap(), and segmentintersection().

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

Definition at line 1316 of file triangle.cpp.

Referenced by conformingedge(), highorder(), infecthull(), insertsubseg(), numbernodes(), plague(), readnodes(), removebox(), removeghosts(), segmentintersection(), splitencsegs(), splittriangle(), and writenodes().

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

Definition at line 1321 of file triangle.cpp.

Referenced by conformingedge(), divconqdelaunay(), highorder(), incrementaldelaunay(), plague(), readnodes(), segmentintersection(), splitencsegs(), splittriangle(), sweeplinedelaunay(), and vertexdealloc().

#define snext ( osub1,
osub2   ) 

Value:

sptr = (osub1).ss[1 - (osub1).ssorient];                                    \
  sdecode(sptr, osub2)

Definition at line 1198 of file triangle.cpp.

#define snextself ( osub   ) 

Value:

sptr = (osub).ss[1 - (osub).ssorient];                                      \
  sdecode(sptr, osub)

Definition at line 1202 of file triangle.cpp.

Referenced by segmentintersection(), and splitencsegs().

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

Definition at line 1209 of file triangle.cpp.

Referenced by checkseg4encroach(), insertvertex(), printsubseg(), splitencsegs(), and writepoly().

#define spivot ( osub1,
osub2   ) 

Value:

sptr = (osub1).ss[(osub1).ssorient];                                        \
  sdecode(sptr, osub2)

Definition at line 1187 of file triangle.cpp.

Referenced by segmentintersection().

#define spivotself ( osub   ) 

Value:

sptr = (osub).ss[(osub).ssorient];                                          \
  sdecode(sptr, osub)

Definition at line 1191 of file triangle.cpp.

#define SPLAYNODEPERBLOCK   508

Definition at line 302 of file triangle.cpp.

Referenced by sweeplinedelaunay().

#define Split ( a,
ahi,
alo   ) 

Value:

c = (REAL) (splitter * a); \
  abig = (REAL) (c - a); \
  ahi = c - abig; \
  alo = a - ahi

Definition at line 4801 of file triangle.cpp.

Referenced by scale_expansion_zeroelim().

#define Square ( a,
x,
 ) 

Value:

x = (REAL) (a * a); \
  Square_Tail(a, x, y)

Definition at line 4838 of file triangle.cpp.

Referenced by incircleadapt().

#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 4832 of file triangle.cpp.

#define SQUAREROOTTWO   1.4142135623730950488016887242096980785696718753769480732

Definition at line 340 of file triangle.cpp.

Referenced by enqueuebadtriang().

#define ssym ( osub1,
osub2   ) 

Value:

(osub2).ss = (osub1).ss;                                                    \
  (osub2).ssorient = 1 - (osub1).ssorient

Definition at line 1177 of file triangle.cpp.

Referenced by checkseg4encroach().

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

Definition at line 1181 of file triangle.cpp.

Referenced by insertsubseg(), and segmentintersection().

#define STARTINDEX   1

Referenced by parsecommandline().

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

Definition at line 1307 of file triangle.cpp.

Referenced by plague().

#define stpivot ( osub,
otri   ) 

Value:

ptr = (triangle) (osub).ss[6 + (osub).ssorient];                            \
  decode(ptr, otri)

Definition at line 1290 of file triangle.cpp.

Referenced by checkseg4encroach(), and splitencsegs().

#define subsegcopy ( osub1,
osub2   ) 

Value:

(osub2).ss = (osub1).ss;                                                    \
  (osub2).ssorient = (osub1).ssorient

Definition at line 1256 of file triangle.cpp.

#define subsegequal ( osub1,
osub2   ) 

Value:

(((osub1).ss == (osub2).ss) &&                                              \
   ((osub1).ssorient == (osub2).ssorient))

Definition at line 1262 of file triangle.cpp.

#define SUBSEGPERBLOCK   508

Definition at line 292 of file triangle.cpp.

Referenced by initializetrisubpools().

#define sym ( otri1,
otri2   ) 

Value:

ptr = (otri1).tri[(otri1).orient];                                          \
  decode(ptr, otri2);

Definition at line 963 of file triangle.cpp.

Referenced by checkdelaunay(), checkmesh(), delaunayfixup(), deletevertex(), flip(), highorder(), insertsubseg(), insertvertex(), mergehulls(), plague(), preciselocate(), regionplague(), removebox(), removeghosts(), splitencsegs(), sweeplinedelaunay(), triangulatepolygon(), undovertex(), unflip(), writeedges(), writeneighbors(), and writevoronoi().

#define symself ( otri   ) 

Value:

ptr = (otri).tri[(otri).orient];                                            \
  decode(ptr, otri);

Definition at line 967 of file triangle.cpp.

Referenced by carveholes(), infecthull(), insertsegment(), insertvertex(), locate(), markhull(), mergehulls(), removebox(), removeghosts(), and sweeplinedelaunay().

#define TRIPERBLOCK   4092

Definition at line 291 of file triangle.cpp.

Referenced by initializetrisubpools(), and locate().

#define tsbond ( otri,
osub   ) 

Value:

(otri).tri[6 + (otri).orient] = (triangle) sencode(osub);                   \
  (osub).ss[6 + (osub).ssorient] = (subseg) encode(otri)

Definition at line 1296 of file triangle.cpp.

Referenced by deletevertex(), flip(), insertsubseg(), undovertex(), and unflip().

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

Definition at line 1302 of file triangle.cpp.

Referenced by flip(), plague(), and unflip().

#define tspivot ( otri,
osub   ) 

Value:

sptr = (subseg) (otri).tri[6 + (otri).orient];                              \
  sdecode(sptr, osub)

Definition at line 1283 of file triangle.cpp.

Referenced by checkdelaunay(), conformingedge(), constrainededge(), delaunayfixup(), deletevertex(), flip(), highorder(), infecthull(), insertsubseg(), insertvertex(), plague(), preciselocate(), regionplague(), scoutsegment(), splitencsegs(), testtriangle(), undovertex(), unflip(), and writeedges().

#define Two_Diff ( a,
b,
x,
 ) 

Value:

x = (REAL) (a - b); \
  Two_Diff_Tail(a, b, x, y)

Definition at line 4797 of file triangle.cpp.

#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 4790 of file triangle.cpp.

Referenced by counterclockwiseadapt(), incircleadapt(), and orient3dadapt().

#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 4849 of file triangle.cpp.

#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 4863 of file triangle.cpp.

Referenced by orient3dadapt().

#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 4845 of file triangle.cpp.

#define Two_Product ( a,
b,
x,
 ) 

Value:

x = (REAL) (a * b); \
  Two_Product_Tail(a, b, x, y)

Definition at line 4815 of file triangle.cpp.

Referenced by counterclockwiseadapt(), incircleadapt(), and orient3dadapt().

#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 4822 of file triangle.cpp.

Referenced by scale_expansion_zeroelim().

#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 4807 of file triangle.cpp.

#define Two_Sum ( a,
b,
x,
 ) 

Value:

x = (REAL) (a + b); \
  Two_Sum_Tail(a, b, x, y)

Definition at line 4786 of file triangle.cpp.

Referenced by fast_expansion_sum_zeroelim(), and scale_expansion_zeroelim().

#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 4779 of file triangle.cpp.

#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 4857 of file triangle.cpp.

Referenced by counterclockwiseadapt(), incircleadapt(), and orient3dadapt().

#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 4853 of file triangle.cpp.

Referenced by incircleadapt().

#define UNDEADVERTEX   -32767

Definition at line 312 of file triangle.cpp.

Referenced by divconqdelaunay(), incrementaldelaunay(), numbernodes(), plague(), sweeplinedelaunay(), writenodes(), and writeoff().

#define uninfect ( otri   ) 

Value:

(otri).tri[6] = (triangle)                                                  \
                    ((unsigned long) (otri).tri[6] & ~ (unsigned long) 2l)

Definition at line 1119 of file triangle.cpp.

Referenced by plague(), and regionplague().

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

Definition at line 1324 of file triangle.cpp.

Referenced by insertsegment().

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

Definition at line 1314 of file triangle.cpp.

Referenced by infecthull(), insertsubseg(), plague(), removebox(), removeghosts(), writeedges(), writeelements(), writenodes(), writeoff(), and writepoly().

#define VERTEXPERBLOCK   4092

Definition at line 293 of file triangle.cpp.

Referenced by initializevertexpool().

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

Definition at line 1319 of file triangle.cpp.

Referenced by numbernodes(), splitencsegs(), testtriangle(), vertextraverse(), writenodes(), and writeoff().

#define VIRUSPERBLOCK   1020

Definition at line 294 of file triangle.cpp.

Referenced by carveholes().

#define VOID   int

Definition at line 318 of file triangle.cpp.

Referenced by badsubsegdealloc(), check4deadevent(), createeventheap(), enforcequality(), getvertex(), highorder(), locate(), poolalloc(), pooldealloc(), pooldeinit(), poolinit(), poolrestart(), poolzero(), removebox(), ShewchukTRIANGLE(), splay(), subsegdealloc(), sweeplinedelaunay(), traversalinit(), traverse(), triangledealloc(), triangledeinit(), trimalloc(), and vertexdealloc().


Typedef Documentation

typedef REAL** subseg

Definition at line 526 of file triangle.cpp.

typedef REAL** triangle

Definition at line 509 of file triangle.cpp.

typedef REAL* vertex

Definition at line 543 of file triangle.cpp.


Enumeration Type Documentation

enum finddirectionresult

Enumerator:
WITHIN 
LEFTCOLLINEAR 
RIGHTCOLLINEAR 

Definition at line 390 of file triangle.cpp.

enum insertvertexresult

Enumerator:
SUCCESSFULVERTEX 
ENCROACHINGVERTEX 
VIOLATINGVERTEX 
DUPLICATEVERTEX 

Definition at line 382 of file triangle.cpp.

enum locateresult

Enumerator:
INTRIANGLE 
ONEDGE 
ONVERTEX 
OUTSIDE 

Definition at line 374 of file triangle.cpp.


Function Documentation

void alternateaxes ( vertex sortarray,
int  arraysize,
int  axis 
)

Definition at line 9357 of file triangle.cpp.

References vertexmedian().

Here is the call graph for this function:

void badsubsegdealloc ( struct mesh m,
struct badsubseg dyingseg 
)

Definition at line 4523 of file triangle.cpp.

References NULL, pooldealloc(), badsubseg::subsegorg, and VOID.

Referenced by splitencsegs().

Here is the call graph for this function:

struct badsubseg* badsubsegtraverse ( struct mesh m  )  [read]

Definition at line 4548 of file triangle.cpp.

References mesh::badsubsegs, NULL, badsubseg::subsegorg, and traverse().

Referenced by splitencsegs().

Here is the call graph for this function:

void boundingbox ( struct mesh m,
struct behavior b 
)

Definition at line 10062 of file triangle.cpp.

References if(), maketriangle(), printtriangle(), REAL, setapex, setdest, setorg, otri::tri, trimalloc(), and behavior::verbose.

Referenced by incrementaldelaunay().

Here is the call graph for this function:

void carveholes ( struct mesh m,
struct behavior b,
REAL *  holelist,
int  holes,
REAL *  regionlist,
int  regions 
)

Definition at line 12984 of file triangle.cpp.

References behavior::convex, counterclockwise(), dest, infect, infected, infecthull(), locate(), behavior::noholes, org, otri::orient, OUTSIDE, poolalloc(), poolinit(), behavior::quiet, symself, otri::tri, trimalloc(), behavior::verbose, and VIRUSPERBLOCK.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void check4deadevent ( struct otri checktri,
struct event **  freeevents,
struct event **  eventheap,
int *  heapsize 
)

Definition at line 10528 of file triangle.cpp.

References eventheapdelete(), event::eventptr, event::heapposition, org, setorg, and VOID.

Referenced by sweeplinedelaunay().

Here is the call graph for this function:

void checkdelaunay ( struct mesh m,
struct behavior b 
)

Definition at line 6796 of file triangle.cpp.

References apex, deadtri, dest, behavior::noexact, nonregular(), NULL, org, otri::orient, printtriangle(), behavior::quiet, osub::ss, sym, traversalinit(), otri::tri, triangletraverse(), tspivot, and behavior::weighted.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void checkmesh ( struct mesh m,
struct behavior b 
)

Definition at line 6697 of file triangle.cpp.

References apex, counterclockwise(), dest, behavior::noexact, NULL, org, otri::orient, printtriangle(), behavior::quiet, sym, traversalinit(), otri::tri, and triangletraverse().

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

int checkseg4encroach ( struct mesh m,
struct behavior b,
struct osub testsubseg 
)

Definition at line 7102 of file triangle.cpp.

References apex, behavior::conformdel, badsubseg::encsubseg, behavior::goodangle, behavior::nobisect, poolalloc(), REAL, sdest, sencode, sorg, ssym, stpivot, badsubseg::subsegdest, badsubseg::subsegorg, otri::tri, and behavior::verbose.

Referenced by splitencsegs(), and tallyencs().

Here is the call graph for this function:

REAL circletop ( struct mesh m,
vertex  pa,
vertex  pb,
vertex  pc,
REAL  ccwabc 
)

Definition at line 10494 of file triangle.cpp.

References REAL.

Referenced by sweeplinedelaunay().

struct splaynode* circletopinsert ( struct mesh m,
struct behavior b,
struct splaynode splayroot,
struct otri newkey,
vertex  pa,
vertex  pb,
vertex  pc,
REAL  topy 
) [read]

Definition at line 10715 of file triangle.cpp.

References counterclockwise(), REAL, splay(), and splayinsert().

Referenced by sweeplinedelaunay().

Here is the call graph for this function:

void conformingedge ( struct mesh m,
struct behavior b,
vertex  endpoint1,
vertex  endpoint2,
int  newmark 
)

Definition at line 11902 of file triangle.cpp.

References DUPLICATEVERTEX, finddirection(), insertvertex(), internalerror(), org, otricopy, poolalloc(), scoutsegment(), SEGMENTVERTEX, setvertexmark, setvertextype, SUCCESSFULVERTEX, otri::tri, tspivot, behavior::verbose, vertexdealloc(), and VIOLATINGVERTEX.

Referenced by insertsegment().

Here is the call graph for this function:

void constrainededge ( struct mesh m,
struct behavior b,
struct otri starttri,
vertex  endpoint2,
int  newmark 
)

Definition at line 12152 of file triangle.cpp.

References counterclockwise(), delaunayfixup(), flip(), insertsubseg(), lnext, lprevself, oprev, oprevself, org, REAL, scoutsegment(), segmentintersection(), osub::ss, and tspivot.

Referenced by insertsegment().

Here is the call graph for this function:

REAL counterclockwise ( struct mesh m,
struct behavior b,
vertex  pa,
vertex  pb,
vertex  pc 
)

Definition at line 5241 of file triangle.cpp.

References ccwerrboundA, counterclockwiseadapt(), behavior::noexact, and REAL.

Referenced by carveholes(), checkmesh(), circletopinsert(), constrainededge(), delaunayfixup(), divconqrecurse(), findcircumcenter(), finddirection(), locate(), mergehulls(), preciselocate(), quality_statistics(), splitencsegs(), and sweeplinedelaunay().

Here is the call graph for this function:

REAL counterclockwiseadapt ( vertex  pa,
vertex  pb,
vertex  pc,
REAL  detsum 
)

Definition at line 5152 of file triangle.cpp.

References Absolute, ccwerrboundB, ccwerrboundC, estimate(), fast_expansion_sum_zeroelim(), INEXACT, REAL, resulterrbound, Two_Diff_Tail, Two_Product, and Two_Two_Diff.

Referenced by counterclockwise().

Here is the call graph for this function:

void createeventheap ( struct mesh m,
struct event ***  eventheap,
struct event **  events,
struct event **  freeevents 
)

Definition at line 10416 of file triangle.cpp.

References eventheapinsert(), event::eventptr, traversalinit(), trimalloc(), vertextraverse(), and VOID.

Referenced by sweeplinedelaunay().

Here is the call graph for this function:

long delaunay ( struct mesh m,
struct behavior b 
)

Definition at line 11019 of file triangle.cpp.

References divconqdelaunay(), behavior::incremental, incrementaldelaunay(), initializetrisubpools(), behavior::quiet, behavior::sweepline, and sweeplinedelaunay().

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void delaunayfixup ( struct mesh m,
struct behavior b,
struct otri fixuptri,
int  leftside 
)

Definition at line 12032 of file triangle.cpp.

References apex, counterclockwise(), dest, flip(), incircle(), lnext, lprevself, org, osub::ss, sym, otri::tri, and tspivot.

Referenced by constrainededge().

Here is the call graph for this function:

void deletevertex ( struct mesh m,
struct behavior b,
struct otri deltri 
)

Definition at line 8955 of file triangle.cpp.

References bond, dnext, internalerror(), lprev, behavior::nobisect, onext, onextself, oprev, org, otriequal, setorg, osub::ss, sym, testtriangle(), otri::tri, triangledealloc(), triangulatepolygon(), tsbond, tspivot, behavior::verbose, and vertexdealloc().

Referenced by splitencsegs().

Here is the call graph for this function:

struct badtriang* dequeuebadtriang ( struct mesh m  )  [read]

Definition at line 7049 of file triangle.cpp.

References mesh::firstnonemptyq, mesh::nextnonemptyq, badtriang::nexttriang, NULL, mesh::queuefront, and mesh::queuetail.

Referenced by enforcequality().

long divconqdelaunay ( struct mesh m,
struct behavior b 
)

Definition at line 9975 of file triangle.cpp.

References behavior::quiet, setvertextype, traversalinit(), trimalloc(), UNDEADVERTEX, behavior::verbose, vertexsort(), and vertextraverse().

Referenced by delaunay().

Here is the call graph for this function:

void divconqrecurse ( struct mesh m,
struct behavior b,
vertex sortarray,
int  vertices,
int  axis,
struct otri farleft,
struct otri farright 
)

Definition at line 9748 of file triangle.cpp.

References bond, counterclockwise(), lnext, lnextself, lprev, lprevself, maketriangle(), mergehulls(), otricopy, printtriangle(), REAL, setapex, setdest, setorg, and behavior::verbose.

Here is the call graph for this function:

void dummyinit ( struct mesh m,
struct behavior b,
int  trianglebytes,
int  subsegbytes 
)

Definition at line 4192 of file triangle.cpp.

References NULL, trimalloc(), and behavior::usesegments.

Referenced by initializetrisubpools().

Here is the call graph for this function:

void enforcequality ( struct mesh m,
struct behavior b 
)

Definition at line 13616 of file triangle.cpp.

References BADSUBSEGPERBLOCK, BADTRIPERBLOCK, behavior::conformdel, dequeuebadtriang(), enqueuebadtriang(), behavior::fixedarea, FLIPSTACKERPERBLOCK, behavior::minangle, pooldealloc(), poolinit(), behavior::quiet, splitencsegs(), splittriangle(), tallyencs(), tallyfaces(), behavior::usertest, behavior::vararea, behavior::verbose, and VOID.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void enqueuebadtri ( struct mesh m,
struct behavior b,
struct otri enqtri,
REAL  minedge,
vertex  enqapex,
vertex  enqorg,
vertex  enqdest 
)

Definition at line 7012 of file triangle.cpp.

References encode, enqueuebadtriang(), badtriang::key, poolalloc(), badtriang::poortri, badtriang::triangapex, badtriang::triangdest, and badtriang::triangorg.

Referenced by testtriangle().

Here is the call graph for this function:

void enqueuebadtriang ( struct mesh m,
struct behavior b,
struct badtriang badtri 
)

Definition at line 6906 of file triangle.cpp.

References badtriang::key, badtriang::nexttriang, NULL, REAL, SQUAREROOTTWO, badtriang::triangapex, badtriang::triangdest, badtriang::triangorg, and behavior::verbose.

Referenced by enforcequality(), and enqueuebadtri().

REAL estimate ( int  elen,
REAL *  e 
)

Definition at line 5113 of file triangle.cpp.

References REAL.

Referenced by counterclockwiseadapt(), incircleadapt(), and orient3dadapt().

void eventheapdelete ( struct event **  heap,
int  heapsize,
int  eventnum 
)

Definition at line 10373 of file triangle.cpp.

References eventheapify(), event::heapposition, REAL, event::xkey, and event::ykey.

Referenced by check4deadevent(), and sweeplinedelaunay().

Here is the call graph for this function:

void eventheapify ( struct event **  heap,
int  heapsize,
int  eventnum 
)

Definition at line 10317 of file triangle.cpp.

References event::heapposition, REAL, event::xkey, and event::ykey.

Referenced by eventheapdelete().

void eventheapinsert ( struct event **  heap,
int  heapsize,
struct event newevent 
)

Definition at line 10276 of file triangle.cpp.

References event::heapposition, REAL, event::xkey, and event::ykey.

Referenced by createeventheap(), and sweeplinedelaunay().

void exactinit (  ) 

Definition at line 4889 of file triangle.cpp.

References ccwerrboundA, ccwerrboundB, ccwerrboundC, epsilon, iccerrboundA, iccerrboundB, iccerrboundC, o3derrboundA, o3derrboundB, o3derrboundC, REAL, resulterrbound, and splitter.

Referenced by triangleinit().

int fast_expansion_sum_zeroelim ( int  elen,
REAL *  e,
int  flen,
REAL *  f,
REAL *  h 
)

Definition at line 4963 of file triangle.cpp.

References Fast_Two_Sum, INEXACT, REAL, and Two_Sum.

Referenced by counterclockwiseadapt(), incircleadapt(), and orient3dadapt().

void findcircumcenter ( struct mesh m,
struct behavior b,
vertex  torg,
vertex  tdest,
vertex  tapex,
vertex  circumcenter,
REAL *  xi,
REAL *  eta,
int  offcenter 
)

Definition at line 6520 of file triangle.cpp.

References counterclockwise(), dx, dy, behavior::noexact, behavior::offconstant, and REAL.

Referenced by splittriangle(), and writevoronoi().

Here is the call graph for this function:

enum finddirectionresult finddirection ( struct mesh m,
struct behavior b,
struct otri searchtri,
vertex  searchpoint 
)

Definition at line 11596 of file triangle.cpp.

References apex, counterclockwise(), dest, internalerror(), LEFTCOLLINEAR, onext, onextself, oprevself, org, REAL, RIGHTCOLLINEAR, otri::tri, and WITHIN.

Referenced by conformingedge(), scoutsegment(), and segmentintersection().

Here is the call graph for this function:

char * findfield ( char *  string  ) 

Definition at line 13850 of file triangle.cpp.

Referenced by formskeleton(), readholes(), readnodes(), and reconstruct().

void finishfile ( FILE *  outfile,
int  argc,
char **  argv 
)

Definition at line 14292 of file triangle.cpp.

Referenced by writeedges(), writeelements(), writeneighbors(), writeoff(), writepoly(), and writevoronoi().

void flip ( struct mesh m,
struct behavior b,
struct otri flipedge 
)

Definition at line 7915 of file triangle.cpp.

References apex, bond, dest, lnext, lnextself, lprev, org, printtriangle(), setapex, setdest, setorg, osub::ss, sym, otri::tri, tsbond, tsdissolve, tspivot, and behavior::verbose.

Referenced by constrainededge(), delaunayfixup(), sweeplinedelaunay(), and triangulatepolygon().

Here is the call graph for this function:

void formskeleton ( struct mesh m,
struct behavior b,
FILE *  polyfile,
char *  polyfilename 
)

Definition at line 12426 of file triangle.cpp.

References behavior::convex, findfield(), behavior::firstnumber, getvertex(), behavior::inpolyfilename, INPUTLINESIZE, insertsegment(), makevertexmap(), markhull(), behavior::poly, behavior::quiet, readline(), triexit(), and behavior::verbose.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

struct splaynode* frontlocate ( struct mesh m,
struct splaynode splayroot,
struct otri bottommost,
vertex  searchvertex,
struct otri searchtri,
int *  farright 
) [read]

Definition at line 10756 of file triangle.cpp.

References onextself, otricopy, otriequal, rightofhyperbola(), and splay().

Referenced by sweeplinedelaunay().

Here is the call graph for this function:

vertex getvertex ( struct mesh m,
struct behavior b,
int  number 
)

Definition at line 4581 of file triangle.cpp.

References behavior::firstnumber, and VOID.

Referenced by formskeleton().

void highorder ( struct mesh m,
struct behavior b 
)

Definition at line 13715 of file triangle.cpp.

References dest, FREEVERTEX, mark, org, otri::orient, poolalloc(), behavior::quiet, SEGMENTVERTEX, setvertexmark, setvertextype, osub::ss, sym, traversalinit(), otri::tri, triangletraverse(), tspivot, behavior::usesegments, behavior::verbose, and VOID.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

REAL incircle ( struct mesh m,
struct behavior b,
vertex  pa,
vertex  pb,
vertex  pc,
vertex  pd 
)

Definition at line 5889 of file triangle.cpp.

References Absolute, iccerrboundA, incircleadapt(), behavior::noexact, and REAL.

Referenced by delaunayfixup(), mergehulls(), nonregular(), and triangulatepolygon().

Here is the call graph for this function:

REAL incircleadapt ( vertex  pa,
vertex  pb,
vertex  pc,
vertex  pd,
REAL  permanent 
)

Definition at line 5310 of file triangle.cpp.

References Absolute, estimate(), fast_expansion_sum_zeroelim(), iccerrboundB, iccerrboundC, INEXACT, REAL, resulterrbound, scale_expansion_zeroelim(), Square, Two_Diff_Tail, Two_Product, Two_Two_Diff, and Two_Two_Sum.

Referenced by incircle().

Here is the call graph for this function:

long incrementaldelaunay ( struct mesh m,
struct behavior b 
)

Definition at line 10227 of file triangle.cpp.

References boundingbox(), DUPLICATEVERTEX, insertvertex(), behavior::quiet, removebox(), setvertextype, traversalinit(), otri::tri, UNDEADVERTEX, behavior::verbose, and vertextraverse().

Referenced by delaunay().

Here is the call graph for this function:

void infecthull ( struct mesh m,
struct behavior b 
)

Definition at line 12579 of file triangle.cpp.

References dest, infect, infected, lnextself, mark, oprev, org, otri::orient, otricopy, otriequal, poolalloc(), setmark, setvertexmark, osub::ss, symself, otri::tri, tspivot, behavior::verbose, and vertexmark.

Referenced by carveholes().

Here is the call graph for this function:

void info (  ) 

Definition at line 1549 of file triangle.cpp.

References triexit().

Referenced by parsecommandline().

Here is the call graph for this function:

void initializetrisubpools ( struct mesh m,
struct behavior b 
)

Definition at line 4315 of file triangle.cpp.

References dummyinit(), behavior::neighbors, behavior::order, poolinit(), REAL, behavior::regionattrib, SUBSEGPERBLOCK, TRIPERBLOCK, behavior::usesegments, behavior::vararea, and behavior::voronoi.

Referenced by delaunay(), and reconstruct().

Here is the call graph for this function:

void initializevertexpool ( struct mesh m,
struct behavior b 
)

Definition at line 4272 of file triangle.cpp.

References behavior::poly, poolinit(), REAL, and VERTEXPERBLOCK.

Referenced by readnodes().

Here is the call graph for this function:

void insertsegment ( struct mesh m,
struct behavior b,
vertex  endpoint1,
vertex  endpoint2,
int  newmark 
)

Definition at line 12254 of file triangle.cpp.

References conformingedge(), constrainededge(), decode, internalerror(), locate(), ONVERTEX, org, otri::orient, otricopy, scoutsegment(), behavior::splitseg, symself, otri::tri, behavior::verbose, and vertex2tri.

Referenced by formskeleton().

Here is the call graph for this function:

void insertsubseg ( struct mesh m,
struct behavior b,
struct otri tri,
int  subsegmark 
)

Definition at line 7811 of file triangle.cpp.

References dest, makesubseg(), mark, org, printsubseg(), setmark, setsdest, setsegdest, setsegorg, setsorg, setvertexmark, osub::ss, ssymself, sym, tsbond, tspivot, behavior::verbose, and vertexmark.

Referenced by constrainededge(), markhull(), and scoutsegment().

Here is the call graph for this function:

enum insertvertexresult insertvertex ( struct mesh m,
struct behavior b,
vertex  newvertex,
struct otri searchtri,
struct osub splitseg,
int  segmentflaws,
int  triflaws 
)

Definition at line 8199 of file triangle.cpp.

References apex, areabound, dest, DUPLICATEVERTEX, elemattribute, badsubseg::encsubseg, lnextself, locate(), lprev, maketriangle(), behavior::nobisect, NULL, ONEDGE, ONVERTEX, org, otri::orient, otricopy, OUTSIDE, poolalloc(), preciselocate(), REAL, sdest, sencode, setapex, setareabound, setdest, setelemattribute, setorg, sorg, osub::ss, badsubseg::subsegdest, badsubseg::subsegorg, sym, symself, otri::tri, tspivot, behavior::vararea, behavior::verbose, and VIOLATINGVERTEX.

Referenced by conformingedge(), incrementaldelaunay(), segmentintersection(), splitencsegs(), splittriangle(), and undovertex().

Here is the call graph for this function:

void internalerror (  ) 

Definition at line 3270 of file triangle.cpp.

References triexit().

Referenced by conformingedge(), deletevertex(), finddirection(), insertsegment(), segmentintersection(), and splitencsegs().

Here is the call graph for this function:

enum locateresult locate ( struct mesh m,
struct behavior b,
vertex  searchpoint,
struct otri searchtri 
)

Definition at line 7640 of file triangle.cpp.

References counterclockwise(), deadtri, dest, dist, lnextself, NULL, ONEDGE, ONVERTEX, org, otri::orient, otricopy, preciselocate(), randomnation(), REAL, SAMPLEFACTOR, symself, otri::tri, TRIPERBLOCK, behavior::verbose, and VOID.

Referenced by carveholes(), insertsegment(), and insertvertex().

Here is the call graph for this function:

void makesubseg ( struct mesh m,
struct osub newsubseg 
)

Definition at line 4707 of file triangle.cpp.

References NULL, poolalloc(), setmark, osub::ss, and osub::ssorient.

Referenced by insertsubseg(), and reconstruct().

Here is the call graph for this function:

void maketriangle ( struct mesh m,
struct behavior b,
struct otri newotri 
)

Definition at line 4663 of file triangle.cpp.

References NULL, poolalloc(), setareabound, setelemattribute, otri::tri, behavior::usesegments, and behavior::vararea.

Referenced by boundingbox(), divconqrecurse(), insertvertex(), mergehulls(), reconstruct(), and sweeplinedelaunay().

Here is the call graph for this function:

void makevertexmap ( struct mesh m,
struct behavior b 
)

Definition at line 7401 of file triangle.cpp.

References encode, NULL, org, otri::orient, setvertex2tri, traversalinit(), otri::tri, triangletraverse(), and behavior::verbose.

Referenced by formskeleton().

Here is the call graph for this function:

void markhull ( struct mesh m,
struct behavior b 
)

Definition at line 12366 of file triangle.cpp.

References insertsubseg(), lnextself, oprev, otri::orient, otricopy, otriequal, symself, and otri::tri.

Referenced by formskeleton().

Here is the call graph for this function:

void mergehulls ( struct mesh m,
struct behavior b,
struct otri farleft,
struct otri innerleft,
struct otri innerright,
struct otri farright,
int  axis 
)

Definition at line 9421 of file triangle.cpp.

References apex, bond, counterclockwise(), dest, behavior::dwyer, incircle(), lnext, lnextself, lprev, lprevself, maketriangle(), org, otricopy, printtriangle(), setapex, setdest, setorg, sym, symself, and behavior::verbose.

Referenced by divconqrecurse().

Here is the call graph for this function:

REAL nonregular ( struct mesh m,
struct behavior b,
vertex  pa,
vertex  pb,
vertex  pc,
vertex  pd 
)

Definition at line 6479 of file triangle.cpp.

References incircle(), orient3d(), and behavior::weighted.

Referenced by checkdelaunay().

Here is the call graph for this function:

void numbernodes ( struct mesh m,
struct behavior b 
)

Definition at line 14466 of file triangle.cpp.

References behavior::firstnumber, behavior::jettison, setvertexmark, traversalinit(), UNDEADVERTEX, vertextraverse(), and vertextype.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

REAL orient3d ( struct mesh m,
struct behavior b,
vertex  pa,
vertex  pb,
vertex  pc,
vertex  pd,
REAL  aheight,
REAL  bheight,
REAL  cheight,
REAL  dheight 
)

Definition at line 6396 of file triangle.cpp.

References Absolute, behavior::noexact, o3derrboundA, orient3dadapt(), and REAL.

Referenced by nonregular().

Here is the call graph for this function:

REAL orient3dadapt ( vertex  pa,
vertex  pb,
vertex  pc,
vertex  pd,
REAL  aheight,
REAL  bheight,
REAL  cheight,
REAL  dheight,
REAL  permanent 
)

Definition at line 5971 of file triangle.cpp.

References Absolute, estimate(), fast_expansion_sum_zeroelim(), INEXACT, o3derrboundB, o3derrboundC, REAL, resulterrbound, scale_expansion_zeroelim(), Two_Diff_Tail, Two_One_Product, Two_Product, and Two_Two_Diff.

Referenced by orient3d().

Here is the call graph for this function:

void parsecommandline ( int  argc,
char **  argv,
struct behavior b 
)

Definition at line 3286 of file triangle.cpp.

References behavior::conformdel, behavior::convex, behavior::docheck, behavior::dwyer, behavior::edgesout, FILENAMESIZE, behavior::firstnumber, behavior::fixedarea, behavior::geomview, if(), behavior::incremental, info(), behavior::innodefilename, behavior::jettison, behavior::maxarea, behavior::minangle, behavior::neighbors, behavior::nobisect, behavior::nobound, behavior::noelewritten, behavior::noexact, behavior::noholes, behavior::noiterationnum, behavior::nonodewritten, behavior::nopolywritten, NULL, behavior::order, behavior::poly, behavior::quality, behavior::quiet, REAL, behavior::refine, behavior::regionattrib, behavior::splitseg, STARTINDEX, behavior::steiner, behavior::sweepline, triexit(), behavior::usertest, behavior::vararea, behavior::verbose, behavior::voronoi, and behavior::weighted.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void plague ( struct mesh m,
struct behavior b 
)

Definition at line 12661 of file triangle.cpp.

References apex, dest, dissolve, infect, infected, mark, onext, onextself, oprev, oprevself, org, otri::orient, otriequal, poolalloc(), poolrestart(), setmark, setorg, setvertexmark, setvertextype, osub::ss, stdissolve, subsegdealloc(), sym, traversalinit(), traverse(), otri::tri, triangledealloc(), tsdissolve, tspivot, UNDEADVERTEX, uninfect, behavior::verbose, and vertexmark.

Here is the call graph for this function:

VOID* poolalloc ( struct memorypool pool  ) 

Definition at line 4005 of file triangle.cpp.

References NULL, pool(), trimalloc(), and VOID.

Referenced by carveholes(), checkseg4encroach(), conformingedge(), enqueuebadtri(), highorder(), infecthull(), insertvertex(), makesubseg(), maketriangle(), plague(), readnodes(), regionplague(), segmentintersection(), splayinsert(), splitencsegs(), and splittriangle().

Here is the call graph for this function:

void pooldealloc ( struct memorypool pool,
VOID *  dyingitem 
)

Definition at line 4068 of file triangle.cpp.

References VOID.

Referenced by badsubsegdealloc(), enforcequality(), splay(), subsegdealloc(), triangledealloc(), and vertexdealloc().

void pooldeinit ( struct memorypool pool  ) 

Definition at line 3984 of file triangle.cpp.

References NULL, pool(), trifree(), and VOID.

Referenced by sweeplinedelaunay(), and triangledeinit().

Here is the call graph for this function:

void poolinit ( struct memorypool pool,
int  bytecount,
int  itemcount,
int  firstitemcount,
int  alignment 
)

Definition at line 3936 of file triangle.cpp.

References NULL, poolrestart(), trimalloc(), and VOID.

Referenced by carveholes(), enforcequality(), initializetrisubpools(), initializevertexpool(), and sweeplinedelaunay().

Here is the call graph for this function:

void poolrestart ( struct memorypool pool  ) 

Definition at line 3890 of file triangle.cpp.

References NULL, pool(), and VOID.

Referenced by plague(), poolinit(), and regionplague().

Here is the call graph for this function:

void poolzero ( struct memorypool pool  ) 

Definition at line 3856 of file triangle.cpp.

References NULL, pool(), and VOID.

Referenced by triangleinit().

Here is the call graph for this function:

enum locateresult preciselocate ( struct mesh m,
struct behavior b,
vertex  searchpoint,
struct otri searchtri,
int  stopatsubsegment 
)

Definition at line 7496 of file triangle.cpp.

References apex, counterclockwise(), dest, INTRIANGLE, lnext, lnextself, lprev, lprevself, ONEDGE, ONVERTEX, org, otricopy, OUTSIDE, REAL, osub::ss, sym, otri::tri, tspivot, and behavior::verbose.

Referenced by insertvertex(), and locate().

Here is the call graph for this function:

void precisionerror (  ) 

Definition at line 13209 of file triangle.cpp.

Referenced by splitencsegs(), and splittriangle().

void printsubseg ( struct mesh m,
struct behavior b,
struct osub s 
)

Definition at line 3762 of file triangle.cpp.

References decode, mark, NULL, otri::orient, sdecode, sdest, segdest, segorg, sorg, osub::ss, osub::ssorient, and otri::tri.

Referenced by insertsubseg().

void printtriangle ( struct mesh m,
struct behavior b,
struct otri t 
)

Definition at line 3668 of file triangle.cpp.

References apex, areabound, decode, dest, NULL, org, otri::orient, sdecode, osub::ss, osub::ssorient, otri::tri, behavior::usesegments, and behavior::vararea.

Referenced by boundingbox(), checkdelaunay(), checkmesh(), divconqrecurse(), flip(), mergehulls(), and unflip().

void quality_statistics ( struct mesh m,
struct behavior b 
)

Definition at line 15345 of file triangle.cpp.

References apex, counterclockwise(), dest, dx, dy, minus1mod3, org, otri::orient, PI, plus1mod3, REAL, traversalinit(), otri::tri, and triangletraverse().

Referenced by statistics().

Here is the call graph for this function:

unsigned long randomnation ( unsigned int  choices  ) 

Definition at line 6673 of file triangle.cpp.

References randomseed.

Referenced by locate(), sweeplinedelaunay(), vertexmedian(), and vertexsort().

void readholes ( struct mesh m,
struct behavior b,
FILE *  polyfile,
char *  polyfilename,
REAL **  hlist,
int *  holes,
REAL **  rlist,
int *  regions 
)

Definition at line 14173 of file triangle.cpp.

References findfield(), behavior::firstnumber, INPUTLINESIZE, readline(), REAL, behavior::refine, behavior::regionattrib, triexit(), trimalloc(), and behavior::vararea.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

char * readline ( char *  string,
FILE *  infile,
char *  infilename 
)

Definition at line 13806 of file triangle.cpp.

References INPUTLINESIZE, and triexit().

Referenced by formskeleton(), gridread(), readholes(), readnodes(), and reconstruct().

Here is the call graph for this function:

void readnodes ( struct mesh m,
struct behavior b,
char *  nodefilename,
char *  polyfilename,
FILE **  polyfile 
)

Definition at line 13891 of file triangle.cpp.

References findfield(), behavior::firstnumber, initializevertexpool(), INPUTLINESIZE, INPUTVERTEX, behavior::poly, poolalloc(), behavior::quiet, readline(), REAL, setvertexmark, setvertextype, triexit(), and behavior::weighted.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

long reconstruct ( struct mesh m,
struct behavior b,
char *  elefilename,
char *  areafilename,
char *  polyfilename,
FILE *  polyfile 
)

Definition at line 11120 of file triangle.cpp.

References findfield(), initializetrisubpools(), behavior::inpolyfilename, INPUTLINESIZE, makesubseg(), maketriangle(), behavior::poly, behavior::quiet, readline(), REAL, osub::ss, otri::tri, and triexit().

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void regionplague ( struct mesh m,
struct behavior b,
REAL  attribute,
REAL  area 
)

Definition at line 12871 of file triangle.cpp.

References apex, dest, infect, infected, org, otri::orient, poolalloc(), poolrestart(), behavior::regionattrib, setareabound, setelemattribute, osub::ss, sym, traversalinit(), traverse(), otri::tri, tspivot, uninfect, behavior::vararea, and behavior::verbose.

Here is the call graph for this function:

long removebox ( struct mesh m,
struct behavior b 
)

Definition at line 10128 of file triangle.cpp.

References dissolve, encode, lnext, lnextself, lprev, lprevself, org, otri::orient, otricopy, otriequal, behavior::poly, setvertexmark, sym, symself, otri::tri, triangledealloc(), trifree(), behavior::verbose, vertexmark, and VOID.

Referenced by incrementaldelaunay().

Here is the call graph for this function:

long removeghosts ( struct mesh m,
struct behavior b,
struct otri startghost 
)

Definition at line 9912 of file triangle.cpp.

References dissolve, encode, lnext, lprev, lprevself, org, otricopy, otriequal, behavior::poly, setvertexmark, sym, symself, otri::tri, triangledealloc(), behavior::verbose, and vertexmark.

Referenced by sweeplinedelaunay().

Here is the call graph for this function:

int rightofhyperbola ( struct mesh m,
struct otri fronttri,
vertex  newsite 
)

Definition at line 10455 of file triangle.cpp.

References apex, dest, and REAL.

Referenced by frontlocate(), splay(), and splayinsert().

int scale_expansion_zeroelim ( int  elen,
REAL *  e,
REAL  b,
REAL *  h 
)

Definition at line 5057 of file triangle.cpp.

References Fast_Two_Sum, INEXACT, REAL, Split, Two_Product_Presplit, and Two_Sum.

Referenced by incircleadapt(), and orient3dadapt().

int scoutsegment ( struct mesh m,
struct behavior b,
struct otri searchtri,
vertex  endpoint2,
int  newmark 
)

Definition at line 11818 of file triangle.cpp.

References apex, dest, finddirection(), insertsubseg(), LEFTCOLLINEAR, lnext, lnextself, lprevself, otricopy, RIGHTCOLLINEAR, segmentintersection(), osub::ss, and tspivot.

Referenced by conformingedge(), constrainededge(), and insertsegment().

Here is the call graph for this function:

void segmentintersection ( struct mesh m,
struct behavior b,
struct otri splittri,
struct osub splitsubseg,
vertex  endpoint2 
)

Definition at line 11691 of file triangle.cpp.

References apex, dest, encode, finddirection(), INPUTVERTEX, insertvertex(), internalerror(), mark, onextself, org, poolalloc(), REAL, sdissolve, setsegorg, setvertex2tri, setvertexmark, setvertextype, snextself, spivot, osub::ss, ssymself, SUCCESSFULVERTEX, and behavior::verbose.

Referenced by constrainededge(), and scoutsegment().

Here is the call graph for this function:

int ShewchukTRIANGLE ( int  argc,
char **  argv 
)

Definition at line 15687 of file triangle.cpp.

References behavior::areafilename, carveholes(), checkdelaunay(), checkmesh(), mesh::checksegments, behavior::convex, delaunay(), behavior::docheck, behavior::edgefilename, mesh::edges, behavior::edgesout, mesh::eextras, enforcequality(), formskeleton(), behavior::geomview, highorder(), mesh::holes, mesh::hullsize, behavior::inelefilename, mesh::infvertex1, mesh::infvertex2, mesh::infvertex3, behavior::innodefilename, behavior::inpolyfilename, memorypool::items, behavior::jettison, behavior::neighborfilename, behavior::neighbors, mesh::nextras, behavior::noelewritten, behavior::noiterationnum, behavior::nonodewritten, behavior::nopolywritten, numbernodes(), behavior::offfilename, behavior::order, behavior::outelefilename, behavior::outnodefilename, behavior::outpolyfilename, parsecommandline(), behavior::poly, behavior::quality, behavior::quiet, readholes(), mesh::readnodefile, readnodes(), REAL, reconstruct(), behavior::refine, mesh::regions, statistics(), behavior::steiner, mesh::steinerleft, mesh::subsegs, triangledeinit(), triangleinit(), mesh::triangles, trifree(), mesh::undeads, behavior::usesegments, behavior::vedgefilename, mesh::vertices, behavior::vnodefilename, VOID, behavior::voronoi, writeedges(), writeelements(), writeneighbors(), writenodes(), writeoff(), writepoly(), and writevoronoi().

Referenced by runTriangleDlg::run().

Here is the call graph for this function:

struct splaynode* splay ( struct mesh m,
struct splaynode splaytree,
vertex  searchpoint,
struct otri searchtri 
) [read]

Definition at line 10560 of file triangle.cpp.

References dest, splaynode::keydest, splaynode::keyedge, splaynode::lchild, NULL, otricopy, pooldealloc(), splaynode::rchild, rightofhyperbola(), and VOID.

Referenced by circletopinsert(), and frontlocate().

Here is the call graph for this function:

struct splaynode* splayinsert ( struct mesh m,
struct splaynode splayroot,
struct otri newkey,
vertex  searchpoint 
) [read]

Definition at line 10679 of file triangle.cpp.

References dest, splaynode::keydest, splaynode::keyedge, splaynode::lchild, NULL, otricopy, poolalloc(), splaynode::rchild, and rightofhyperbola().

Referenced by circletopinsert(), and sweeplinedelaunay().

Here is the call graph for this function:

void splitencsegs ( struct mesh m,
struct behavior b,
int  triflaws 
)

Definition at line 13239 of file triangle.cpp.

References apex, badsubsegdealloc(), badsubsegtraverse(), checkseg4encroach(), behavior::conformdel, counterclockwise(), deadsubseg, deletevertex(), ENCROACHINGVERTEX, badsubseg::encsubseg, FREEVERTEX, insertvertex(), internalerror(), lnext, lnextself, lprev, lprevself, mark, behavior::noexact, org, poolalloc(), precisionerror(), REAL, sdecode, sdest, SEGMENTVERTEX, setvertexmark, setvertextype, snextself, sorg, osub::ss, stpivot, badsubseg::subsegdest, badsubseg::subsegorg, SUCCESSFULVERTEX, sym, traversalinit(), otri::tri, triexit(), tspivot, behavior::verbose, and vertextype.

Referenced by enforcequality().

Here is the call graph for this function:

void splittriangle ( struct mesh m,
struct behavior b,
struct badtriang badtri 
)

Definition at line 13487 of file triangle.cpp.

References apex, deadtri, decode, dest, ENCROACHINGVERTEX, findcircumcenter(), FREEVERTEX, insertvertex(), lprevself, org, poolalloc(), badtriang::poortri, precisionerror(), behavior::quiet, REAL, setvertexmark, setvertextype, SUCCESSFULVERTEX, otri::tri, badtriang::triangapex, badtriang::triangdest, badtriang::triangorg, undovertex(), behavior::verbose, vertexdealloc(), and VIOLATINGVERTEX.

Referenced by enforcequality().

Here is the call graph for this function:

void statistics ( struct mesh m,
struct behavior b 
)

Definition at line 15552 of file triangle.cpp.

References behavior::poly, quality_statistics(), behavior::refine, behavior::verbose, and behavior::weighted.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void subsegdealloc ( struct mesh m,
subseg dyingsubseg 
)

Definition at line 4428 of file triangle.cpp.

References killsubseg, pooldealloc(), and VOID.

Referenced by plague().

Here is the call graph for this function:

subseg* subsegtraverse ( struct mesh m  ) 

Definition at line 4449 of file triangle.cpp.

References deadsubseg, NULL, mesh::subsegs, and traverse().

Referenced by tallyencs(), and writepoly().

Here is the call graph for this function:

long sweeplinedelaunay ( struct mesh m,
struct behavior b 
)

Definition at line 10791 of file triangle.cpp.

References apex, bond, check4deadevent(), circletop(), circletopinsert(), counterclockwise(), createeventheap(), decode, dest, encode, eventheapdelete(), eventheapinsert(), event::eventptr, flip(), frontlocate(), if(), lnext, lnextself, lprev, lprevself, maketriangle(), onext, oprev, org, otricopy, otriequal, pooldeinit(), poolinit(), behavior::quiet, randomnation(), REAL, removeghosts(), SAMPLERATE, setapex, setdest, setorg, setvertextype, splayinsert(), SPLAYNODEPERBLOCK, sym, symself, triexit(), UNDEADVERTEX, behavior::verbose, VOID, event::xkey, and event::ykey.

Referenced by delaunay().

Here is the call graph for this function:

void syntax (  ) 

Definition at line 1469 of file triangle.cpp.

References triexit().

Here is the call graph for this function:

void tallyencs ( struct mesh m,
struct behavior b 
)

Definition at line 13178 of file triangle.cpp.

References checkseg4encroach(), osub::ss, osub::ssorient, subsegtraverse(), and traversalinit().

Referenced by enforcequality().

Here is the call graph for this function:

void tallyfaces ( struct mesh m,
struct behavior b 
)

Definition at line 13451 of file triangle.cpp.

References otri::orient, testtriangle(), traversalinit(), otri::tri, triangletraverse(), and behavior::verbose.

Referenced by enforcequality().

Here is the call graph for this function:

void testtriangle ( struct mesh m,
struct behavior b,
struct otri testtri 
)

Definition at line 7215 of file triangle.cpp.

References apex, areabound, dest, dnextself, enqueuebadtri(), behavior::fixedarea, behavior::goodangle, lnext, lprev, behavior::maxarea, NULL, oprevself, org, otricopy, REAL, segdest, SEGMENTVERTEX, segorg, osub::ss, triunsuitable(), tspivot, behavior::usertest, behavior::vararea, and vertextype.

Referenced by deletevertex(), tallyfaces(), and triangulatepolygon().

Here is the call graph for this function:

void traversalinit ( struct memorypool pool  ) 

Definition at line 4091 of file triangle.cpp.

References pool(), and VOID.

Referenced by checkdelaunay(), checkmesh(), createeventheap(), divconqdelaunay(), highorder(), incrementaldelaunay(), makevertexmap(), numbernodes(), plague(), quality_statistics(), regionplague(), splitencsegs(), tallyencs(), tallyfaces(), writeedges(), writeelements(), writeneighbors(), writenodes(), writeoff(), writepoly(), and writevoronoi().

Here is the call graph for this function:

VOID* traverse ( struct memorypool pool  ) 

Definition at line 4127 of file triangle.cpp.

References NULL, pool(), and VOID.

Referenced by badsubsegtraverse(), plague(), regionplague(), subsegtraverse(), triangletraverse(), and vertextraverse().

Here is the call graph for this function:

void triangledealloc ( struct mesh m,
triangle dyingtriangle 
)

Definition at line 4382 of file triangle.cpp.

References killtri, pooldealloc(), and VOID.

Referenced by deletevertex(), plague(), removebox(), removeghosts(), and undovertex().

Here is the call graph for this function:

void triangledeinit ( struct mesh m,
struct behavior b 
)

Definition at line 4622 of file triangle.cpp.

References behavior::fixedarea, behavior::minangle, pooldeinit(), behavior::quality, trifree(), behavior::usertest, behavior::usesegments, behavior::vararea, and VOID.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void triangleinit ( struct mesh m  ) 

Definition at line 6634 of file triangle.cpp.

References mesh::badsubsegs, mesh::badtriangles, mesh::checkquality, mesh::checksegments, mesh::circletopcount, mesh::circumcentercount, mesh::counterclockcount, exactinit(), mesh::flipstackers, mesh::hyperbolacount, mesh::incirclecount, NULL, mesh::orient3dcount, poolzero(), randomseed, mesh::recenttri, mesh::samples, mesh::splaynodes, mesh::subsegs, otri::tri, mesh::triangles, mesh::undeads, mesh::vertices, and mesh::viri.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

triangle* triangletraverse ( struct mesh m  ) 

Definition at line 4403 of file triangle.cpp.

References deadtri, NULL, traverse(), and mesh::triangles.

Referenced by checkdelaunay(), checkmesh(), highorder(), makevertexmap(), quality_statistics(), tallyfaces(), writeedges(), writeelements(), writeneighbors(), writeoff(), and writevoronoi().

Here is the call graph for this function:

void triangulatepolygon ( struct mesh m,
struct behavior b,
struct otri firstedge,
struct otri lastedge,
int  edgecount,
int  doflip,
int  triflaws 
)

Definition at line 8856 of file triangle.cpp.

References apex, dest, flip(), incircle(), onext, onextself, oprev, otricopy, sym, testtriangle(), and behavior::verbose.

Referenced by deletevertex().

Here is the call graph for this function:

void triexit ( int  status  ) 

Definition at line 1414 of file triangle.cpp.

Referenced by formskeleton(), info(), internalerror(), parsecommandline(), readholes(), readline(), readnodes(), reconstruct(), splitencsegs(), sweeplinedelaunay(), syntax(), trimalloc(), writeedges(), writeelements(), writeneighbors(), writenodes(), writeoff(), writepoly(), and writevoronoi().

void trifree ( VOID *  memptr  ) 

Definition at line 1443 of file triangle.cpp.

Referenced by pooldeinit(), removebox(), ShewchukTRIANGLE(), and triangledeinit().

VOID* trimalloc ( int  size  ) 

Definition at line 1425 of file triangle.cpp.

References NULL, triexit(), and VOID.

Referenced by boundingbox(), carveholes(), createeventheap(), divconqdelaunay(), dummyinit(), poolalloc(), poolinit(), readholes(), writeedges(), writeelements(), writeneighbors(), writenodes(), writepoly(), and writevoronoi().

Here is the call graph for this function:

int triunsuitable ( vertex  triorg,
vertex  tridest,
vertex  triapex,
REAL  area 
)

Definition at line 1367 of file triangle.cpp.

References REAL.

Referenced by testtriangle().

void undovertex ( struct mesh m,
struct behavior b 
)

Definition at line 9058 of file triangle.cpp.

References bond, decode, dest, dnext, dprev, insertvertex(), lnextself, lprev, lprevself, NULL, onext, setapex, setorg, sym, otri::tri, triangledealloc(), tsbond, tspivot, and unflip().

Referenced by splittriangle().

Here is the call graph for this function:

void unflip ( struct mesh m,
struct behavior b,
struct otri flipedge 
)

Definition at line 8050 of file triangle.cpp.

References apex, bond, dest, lnext, lnextself, lprev, org, printtriangle(), setapex, setdest, setorg, osub::ss, sym, otri::tri, tsbond, tsdissolve, tspivot, and behavior::verbose.

Referenced by undovertex().

Here is the call graph for this function:

void vertexdealloc ( struct mesh m,
vertex  dyingvertex 
)

Definition at line 4474 of file triangle.cpp.

References DEADVERTEX, pooldealloc(), setvertextype, and VOID.

Referenced by conformingedge(), deletevertex(), and splittriangle().

Here is the call graph for this function:

void vertexmedian ( vertex sortarray,
int  arraysize,
int  median,
int  axis 
)

Definition at line 9279 of file triangle.cpp.

References randomnation(), and REAL.

Referenced by alternateaxes().

Here is the call graph for this function:

void vertexsort ( vertex sortarray,
int  arraysize 
)

Definition at line 9205 of file triangle.cpp.

References randomnation(), and REAL.

Referenced by divconqdelaunay().

Here is the call graph for this function:

vertex vertextraverse ( struct mesh m  ) 

Definition at line 4495 of file triangle.cpp.

References DEADVERTEX, NULL, traverse(), vertextype, and mesh::vertices.

Referenced by createeventheap(), divconqdelaunay(), incrementaldelaunay(), numbernodes(), writenodes(), and writeoff().

Here is the call graph for this function:

void writeedges ( struct mesh m,
struct behavior b,
char *  edgefilename,
int  argc,
char **  argv 
)

Definition at line 14798 of file triangle.cpp.

References dest, finishfile(), behavior::firstnumber, mark, behavior::nobound, org, otri::orient, behavior::quiet, osub::ss, sym, traversalinit(), otri::tri, triangletraverse(), triexit(), trimalloc(), tspivot, behavior::usesegments, and vertexmark.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void writeelements ( struct mesh m,
struct behavior b,
char *  elefilename,
int  argc,
char **  argv 
)

Definition at line 14511 of file triangle.cpp.

References apex, dest, elemattribute, finishfile(), behavior::firstnumber, behavior::order, org, otri::orient, behavior::quiet, REAL, traversalinit(), otri::tri, triangletraverse(), triexit(), trimalloc(), and vertexmark.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void writeneighbors ( struct mesh m,
struct behavior b,
char *  neighborfilename,
int  argc,
char **  argv 
)

Definition at line 15163 of file triangle.cpp.

References finishfile(), behavior::firstnumber, otri::orient, behavior::quiet, sym, traversalinit(), otri::tri, triangletraverse(), triexit(), and trimalloc().

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void writenodes ( struct mesh m,
struct behavior b,
char *  nodefilename,
int  argc,
char **  argv 
)

Definition at line 14340 of file triangle.cpp.

References behavior::firstnumber, behavior::jettison, behavior::nobound, behavior::quiet, REAL, setvertexmark, traversalinit(), triexit(), trimalloc(), UNDEADVERTEX, vertexmark, vertextraverse(), and vertextype.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void writeoff ( struct mesh m,
struct behavior b,
char *  offfilename,
int  argc,
char **  argv 
)

Definition at line 15267 of file triangle.cpp.

References apex, dest, finishfile(), behavior::firstnumber, behavior::jettison, org, otri::orient, behavior::quiet, traversalinit(), otri::tri, triangletraverse(), triexit(), UNDEADVERTEX, vertexmark, vertextraverse(), and vertextype.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void writepoly ( struct mesh m,
struct behavior b,
char *  polyfilename,
REAL *  holelist,
int  holes,
REAL *  regionlist,
int  regions,
int  argc,
char **  argv 
)

Definition at line 14652 of file triangle.cpp.

References finishfile(), behavior::firstnumber, mark, behavior::nobound, behavior::quiet, sdest, sorg, osub::ss, osub::ssorient, subsegtraverse(), traversalinit(), triexit(), trimalloc(), and vertexmark.

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:

void writevoronoi ( struct mesh m,
struct behavior b,
char *  vnodefilename,
char *  vedgefilename,
int  argc,
char **  argv 
)

Definition at line 14958 of file triangle.cpp.

References apex, dest, findcircumcenter(), finishfile(), behavior::firstnumber, org, otri::orient, behavior::quiet, REAL, sym, traversalinit(), otri::tri, triangletraverse(), triexit(), and trimalloc().

Referenced by ShewchukTRIANGLE().

Here is the call graph for this function:


Variable Documentation

REAL ccwerrboundA

Definition at line 650 of file triangle.cpp.

Referenced by counterclockwise(), and exactinit().

REAL ccwerrboundB

Definition at line 650 of file triangle.cpp.

Referenced by counterclockwiseadapt(), and exactinit().

REAL ccwerrboundC

Definition at line 650 of file triangle.cpp.

Referenced by counterclockwiseadapt(), and exactinit().

REAL epsilon

Definition at line 648 of file triangle.cpp.

Referenced by exactinit().

REAL iccerrboundA

Definition at line 651 of file triangle.cpp.

Referenced by exactinit(), and incircle().

REAL iccerrboundB

Definition at line 651 of file triangle.cpp.

Referenced by exactinit(), and incircleadapt().

REAL iccerrboundC

Definition at line 651 of file triangle.cpp.

Referenced by exactinit(), and incircleadapt().

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

Definition at line 934 of file triangle.cpp.

Referenced by quality_statistics().

REAL o3derrboundA

Definition at line 652 of file triangle.cpp.

Referenced by exactinit(), and orient3d().

REAL o3derrboundB

Definition at line 652 of file triangle.cpp.

Referenced by exactinit(), and orient3dadapt().

REAL o3derrboundC

Definition at line 652 of file triangle.cpp.

Referenced by exactinit(), and orient3dadapt().

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

Definition at line 933 of file triangle.cpp.

Referenced by quality_statistics().

unsigned long randomseed

Definition at line 656 of file triangle.cpp.

Referenced by randomnation(), and triangleinit().

REAL resulterrbound

Definition at line 649 of file triangle.cpp.

Referenced by counterclockwiseadapt(), exactinit(), incircleadapt(), and orient3dadapt().

REAL splitter

Definition at line 647 of file triangle.cpp.

Referenced by exactinit().


Generated on Sun Aug 5 17:34:11 2007 for PIHMgis by  doxygen 1.5.2