Go to the source code of this file.
Classes | |
struct | badsubseg |
struct | badtriang |
struct | behavior |
struct | event |
struct | flipstacker |
struct | memorypool |
struct | mesh |
struct | osub |
struct | otri |
struct | splaynode |
Defines | |
#define | Absolute(a) ((a) >= 0.0 ? (a) : -(a)) |
#define | apex(otri, vertexptr) vertexptr = (vertex) (otri).tri[(otri).orient + 3] |
#define | areabound(otri) ((float *) (otri).tri)[m->areaboundindex] |
#define | BADSUBSEGPERBLOCK 252 /* Number of encroached subsegments allocated at once. */ |
#define | BADTRIPERBLOCK 4092 /* Number of skinny triangles allocated at once. */ |
#define | bond(otri1, otri2) |
#define | deadsubseg(sub) ((sub)[1] == (subseg) NULL) |
#define | deadtri(tria) ((tria)[1] == (triangle) NULL) |
#define | DEADVERTEX -32768 |
#define | decode(ptr, otri) |
#define | dest(otri, vertexptr) vertexptr = (vertex) (otri).tri[minus1mod3[(otri).orient] + 3] |
#define | dissolve(otri) (otri).tri[(otri).orient] = (triangle) m->dummytri |
#define | dnext(otri1, otri2) |
#define | dnextself(otri) |
#define | dprev(otri1, otri2) |
#define | dprevself(otri) |
#define | elemattribute(otri, attnum) ((float *) (otri).tri)[m->elemattribindex + (attnum)] |
#define | encode(otri) (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient) |
#define | Fast_Two_Sum(a, b, x, y) |
#define | Fast_Two_Sum_Tail(a, b, x, y) |
#define | FILENAMESIZE 2048 |
#define | FLIPSTACKERPERBLOCK 252 /* Number of flipped triangles allocated at once. */ |
#define | FREEVERTEX 2 |
#define | infect(otri) |
#define | infected(otri) (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l) |
#define | INPUTLINESIZE 1024 |
#define | INPUTVERTEX 0 |
#define | killsubseg(sub) |
#define | killtri(tria) |
#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 | mark(osub) (* (int *) ((osub).ss + 8)) |
#define | ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333 |
#define | onext(otri1, otri2) |
#define | onextself(otri) |
#define | oprev(otri1, otri2) |
#define | oprevself(otri) |
#define | org(otri, vertexptr) vertexptr = (vertex) (otri).tri[plus1mod3[(otri).orient] + 3] |
#define | otricopy(otri1, otri2) |
#define | otriequal(otri1, otri2) |
#define | PI 3.141592653589793238462643383279502884197169399375105820974944592308 |
#define | rnext(otri1, otri2) |
#define | rnextself(otri) |
#define | rprev(otri1, otri2) |
#define | rprevself(otri) |
#define | SAMPLEFACTOR 11 |
#define | SAMPLERATE 10 |
#define | sbond(osub1, osub2) |
#define | sdecode(sptr, osub) |
#define | sdest(osub, vertexptr) vertexptr = (vertex) (osub).ss[3 - (osub).ssorient] |
#define | sdissolve(osub) (osub).ss[(osub).ssorient] = (subseg) m->dummysub |
#define | segdest(osub, vertexptr) vertexptr = (vertex) (osub).ss[5 - (osub).ssorient] |
#define | SEGMENTVERTEX 1 |
#define | segorg(osub, vertexptr) vertexptr = (vertex) (osub).ss[4 + (osub).ssorient] |
#define | sencode(osub) (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient) |
#define | setapex(otri, vertexptr) (otri).tri[(otri).orient + 3] = (triangle) vertexptr |
#define | setareabound(otri, value) ((float *) (otri).tri)[m->areaboundindex] = value |
#define | setdest(otri, vertexptr) (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr |
#define | setelemattribute(otri, attnum, value) ((float *) (otri).tri)[m->elemattribindex + (attnum)] = value |
#define | setmark(osub, value) * (int *) ((osub).ss + 8) = value |
#define | setorg(otri, vertexptr) (otri).tri[plus1mod3[(otri).orient] + 3] = (triangle) vertexptr |
#define | setsdest(osub, vertexptr) (osub).ss[3 - (osub).ssorient] = (subseg) vertexptr |
#define | setsegdest(osub, vertexptr) (osub).ss[5 - (osub).ssorient] = (subseg) vertexptr |
#define | setsegorg(osub, vertexptr) (osub).ss[4 + (osub).ssorient] = (subseg) vertexptr |
#define | setsorg(osub, vertexptr) (osub).ss[2 + (osub).ssorient] = (subseg) vertexptr |
#define | setvertex2tri(vx, value) ((triangle *) (vx))[m->vertex2triindex] = value |
#define | setvertexmark(vx, value) ((int *) (vx))[m->vertexmarkindex] = value |
#define | setvertextype(vx, value) ((int *) (vx))[m->vertexmarkindex + 1] = value |
#define | snext(osub1, osub2) |
#define | snextself(osub) |
#define | sorg(osub, vertexptr) vertexptr = (vertex) (osub).ss[2 + (osub).ssorient] |
#define | spivot(osub1, osub2) |
#define | spivotself(osub) |
#define | SPLAYNODEPERBLOCK 508 /* Number of splay tree nodes allocated at once. */ |
#define | Split(a, ahi, alo) |
#define | Square(a, x, y) |
#define | Square_Tail(a, x, y) |
#define | SQUAREROOTTWO 1.4142135623730950488016887242096980785696718753769480732 |
#define | ssym(osub1, osub2) |
#define | ssymself(osub) (osub).ssorient = 1 - (osub).ssorient |
#define | stdissolve(osub) (osub).ss[6 + (osub).ssorient] = (subseg) m->dummytri |
#define | stpivot(osub, otri) |
#define | subsegcopy(osub1, osub2) |
#define | subsegequal(osub1, osub2) |
#define | SUBSEGPERBLOCK 508 /* Number of subsegments allocated at once. */ |
#define | sym(otri1, otri2) |
#define | symself(otri) |
#define | TRIPERBLOCK 4092 /* Number of triangles allocated at once. */ |
#define | tsbond(otri, osub) |
#define | tsdissolve(otri) (otri).tri[6 + (otri).orient] = (triangle) m->dummysub |
#define | tspivot(otri, osub) |
#define | Two_Diff(a, b, x, y) |
#define | Two_Diff_Tail(a, b, x, y) |
#define | Two_One_Diff(a1, a0, b, x2, x1, x0) |
#define | Two_One_Product(a1, a0, b, x3, x2, x1, x0) |
#define | Two_One_Sum(a1, a0, b, x2, x1, x0) |
#define | Two_Product(a, b, x, y) |
#define | Two_Product_Presplit(a, b, bhi, blo, x, y) |
#define | Two_Product_Tail(a, b, x, y) |
#define | Two_Sum(a, b, x, y) |
#define | Two_Sum_Tail(a, b, x, y) |
#define | Two_Two_Diff(a1, a0, b1, b0, x3, x2, x1, x0) |
#define | Two_Two_Sum(a1, a0, b1, b0, x3, x2, x1, x0) |
#define | UNDEADVERTEX -32767 |
#define | uninfect(otri) |
#define | vertex2tri(vx) ((triangle *) (vx))[m->vertex2triindex] |
#define | vertexmark(vx) ((int *) (vx))[m->vertexmarkindex] |
#define | VERTEXPERBLOCK 4092 /* Number of vertices allocated at once. */ |
#define | vertextype(vx) ((int *) (vx))[m->vertexmarkindex + 1] |
#define | VIRUSPERBLOCK 1020 /* Number of virus triangles allocated at once. */ |
Typedefs | |
typedef float ** | subseg |
typedef float ** | triangle |
typedef float * | vertex |
Enumerations | |
enum | finddirectionresult { WITHIN, LEFTCOLLINEAR, RIGHTCOLLINEAR } |
enum | insertvertexresult { SUCCESSFULVERTEX, ENCROACHINGVERTEX, VIOLATINGVERTEX, DUPLICATEVERTEX } |
enum | locateresult { INTRIANGLE, ONEDGE, ONVERTEX, OUTSIDE } |
Functions | |
void | alternateaxes (vertex *sortarray, int arraysize, int axis) |
void | carveholes (struct mesh *m, struct behavior *b, float *holelist, int holes, float *regionlist, int regions) |
void | constrainededge (struct mesh *m, struct behavior *b, struct otri *starttri, vertex endpoint2, int newmark) |
float | counterclockwise (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc) |
float | counterclockwiseadapt (vertex pa, vertex pb, vertex pc, float detsum) |
long | delaunay (struct mesh *m, struct behavior *b) |
void | delaunayfixup (struct mesh *m, struct behavior *b, struct otri *fixuptri, int leftside) |
long | divconqdelaunay (struct mesh *m, struct behavior *b) |
void | divconqrecurse (struct mesh *m, struct behavior *b, vertex *sortarray, int vertices, int axis, struct otri *farleft, struct otri *farright) |
void | dummyinit (struct mesh *m, struct behavior *b, int trianglebytes, int subsegbytes) |
float | estimate (int elen, float *e) |
void | exactinit () |
int | fast_expansion_sum_zeroelim (int elen, float *e, int flen, float *f, float *h) |
void | findcircumcenter (struct mesh *m, struct behavior *b, vertex torg, vertex tdest, vertex tapex, vertex circumcenter, float *xi, float *eta, int offcenter) |
enum finddirectionresult | finddirection (struct mesh *m, struct behavior *b, struct otri *searchtri, vertex searchpoint) |
void | flip (struct mesh *m, struct behavior *b, struct otri *flipedge) |
void | formskeleton (struct mesh *m, struct behavior *b, int *segmentlist, int *segmentmarkerlist, int numberofsegments) |
vertex | getvertex (struct mesh *m, struct behavior *b, int number) |
void | highorder (struct mesh *m, struct behavior *b) |
float | incircle (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd) |
float | incircleadapt (vertex pa, vertex pb, vertex pc, vertex pd, float permanent) |
void | infecthull (struct mesh *m, struct behavior *b) |
void | initializetrisubpools (struct mesh *m, struct behavior *b) |
void | initializevertexpool (struct mesh *m, struct behavior *b) |
void | insertsegment (struct mesh *m, struct behavior *b, vertex endpoint1, vertex endpoint2, int newmark) |
void | insertsubseg (struct mesh *m, struct behavior *b, struct otri *tri, int subsegmark) |
enum insertvertexresult | insertvertex (struct mesh *m, struct behavior *b, vertex newvertex, struct otri *searchtri, struct osub *splitseg, int segmentflaws, int triflaws) |
void | internalerror () |
enum locateresult | locate (struct mesh *m, struct behavior *b, vertex searchpoint, struct otri *searchtri) |
void | makesubseg (struct mesh *m, struct osub *newsubseg) |
void | maketriangle (struct mesh *m, struct behavior *b, struct otri *newotri) |
void | makevertexmap (struct mesh *m, struct behavior *b) |
void | markhull (struct mesh *m, struct behavior *b) |
void | mergehulls (struct mesh *m, struct behavior *b, struct otri *farleft, struct otri *innerleft, struct otri *innerright, struct otri *farright, int axis) |
float | nonregular (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd) |
void | numbernodes (struct mesh *m, struct behavior *b) |
float | orient3d (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd, float aheight, float bheight, float cheight, float dheight) |
float | orient3dadapt (vertex pa, vertex pb, vertex pc, vertex pd, float aheight, float bheight, float cheight, float dheight, float permanent) |
void | parsecommandline (int argc, char **argv, struct behavior *b) |
void | plague (struct mesh *m, struct behavior *b) |
int * | poolalloc (struct memorypool *pool) |
void | pooldealloc (struct memorypool *pool, int *dyingitem) |
void | pooldeinit (struct memorypool *pool) |
void | poolinit (struct memorypool *pool, int bytecount, int itemcount, int firstitemcount, int alignment) |
void | poolrestart (struct memorypool *pool) |
void | poolzero (struct memorypool *pool) |
enum locateresult | preciselocate (struct mesh *m, struct behavior *b, vertex searchpoint, struct otri *searchtri, int stopatsubsegment) |
void | printsubseg (struct mesh *m, struct behavior *b, struct osub *s) |
void | printtriangle (struct mesh *m, struct behavior *b, struct otri *t) |
void | quality_statistics (struct mesh *m, struct behavior *b) |
unsigned long | randomnation (unsigned int choices) |
void | regionplague (struct mesh *m, struct behavior *b, float attribute, float area) |
long | removeghosts (struct mesh *m, struct behavior *b, struct otri *startghost) |
int | scale_expansion_zeroelim (int elen, float *e, float b, float *h) |
int | scoutsegment (struct mesh *m, struct behavior *b, struct otri *searchtri, vertex endpoint2, int newmark) |
void | segmentintersection (struct mesh *m, struct behavior *b, struct otri *splittri, struct osub *splitsubseg, vertex endpoint2) |
void | statistics (struct mesh *m, struct behavior *b) |
void | subsegdealloc (struct mesh *m, subseg *dyingsubseg) |
subseg * | subsegtraverse (struct mesh *m) |
void | transfernodes (struct mesh *m, struct behavior *b, float *pointlist, float *pointattriblist, int *pointmarkerlist, int numberofpoints, int numberofpointattribs) |
void | traversalinit (struct memorypool *pool) |
int * | traverse (struct memorypool *pool) |
void | triangledealloc (struct mesh *m, triangle *dyingtriangle) |
void | triangledeinit (struct mesh *m, struct behavior *b) |
void | triangleinit (struct mesh *m) |
triangle * | triangletraverse (struct mesh *m) |
void | triangulate (char *triswitches, struct triangulateio *in, struct triangulateio *out, struct triangulateio *vorout) |
void | triangulatepolygon (struct mesh *m, struct behavior *b, struct otri *firstedge, struct otri *lastedge, int edgecount, int doflip, int triflaws) |
void | triexit (int status) |
void | trifree (int *memptr) |
int * | trimalloc (int size) |
void | unflip (struct mesh *m, struct behavior *b, struct otri *flipedge) |
void | vertexdealloc (struct mesh *m, vertex dyingvertex) |
void | vertexmedian (vertex *sortarray, int arraysize, int median, int axis) |
void | vertexsort (vertex *sortarray, int arraysize) |
vertex | vertextraverse (struct mesh *m) |
void | writeedges (struct mesh *m, struct behavior *b, int **edgelist, int **edgemarkerlist) |
void | writeelements (struct mesh *m, struct behavior *b, int **trianglelist, float **triangleattriblist) |
void | writeneighbors (struct mesh *m, struct behavior *b, int **neighborlist) |
void | writenodes (struct mesh *m, struct behavior *b, float **pointlist, float **pointattriblist, int **pointmarkerlist) |
void | writepoly (struct mesh *m, struct behavior *b, int **segmentlist, int **segmentmarkerlist) |
void | writevoronoi (struct mesh *m, struct behavior *b, float **vpointlist, float **vpointattriblist, int **vpointmarkerlist, int **vedgelist, int **vedgemarkerlist, float **vnormlist) |
Variables | |
float | ccwerrboundA |
float | ccwerrboundB |
float | ccwerrboundC |
float | epsilon |
float | iccerrboundA |
float | iccerrboundB |
float | iccerrboundC |
int | minus1mod3 [3] = {2, 0, 1} |
float | o3derrboundA |
float | o3derrboundB |
float | o3derrboundC |
int | plus1mod3 [3] = {1, 2, 0} |
unsigned long | randomseed |
float | resulterrbound |
float | splitter |
#define Absolute | ( | a | ) | ((a) >= 0.0 ? (a) : -(a)) |
Definition at line 2278 of file triangle.cpp.
Definition at line 953 of file triangle.cpp.
Definition at line 1017 of file triangle.cpp.
#define BADSUBSEGPERBLOCK 252 /* Number of encroached subsegments allocated at once. */ |
Definition at line 216 of file triangle.cpp.
#define BADTRIPERBLOCK 4092 /* Number of skinny triangles allocated at once. */ |
Definition at line 217 of file triangle.cpp.
#define bond | ( | otri1, | |
otri2 | |||
) |
Definition at line 967 of file triangle.cpp.
#define deadsubseg | ( | sub | ) | ((sub)[1] == (subseg) NULL) |
Definition at line 1150 of file triangle.cpp.
Definition at line 1027 of file triangle.cpp.
#define DEADVERTEX -32768 |
Definition at line 228 of file triangle.cpp.
Definition at line 950 of file triangle.cpp.
Definition at line 976 of file triangle.cpp.
#define dnext | ( | otri1, | |
otri2 | |||
) |
sym(otri1, otri2); \ lprevself(otri2);
Definition at line 896 of file triangle.cpp.
Definition at line 900 of file triangle.cpp.
#define dprev | ( | otri1, | |
otri2 | |||
) |
lnext(otri1, otri2); \ symself(otri2);
Definition at line 908 of file triangle.cpp.
Definition at line 912 of file triangle.cpp.
#define elemattribute | ( | otri, | |
attnum | |||
) | ((float *) (otri).tri)[m->elemattribindex + (attnum)] |
Definition at line 1009 of file triangle.cpp.
Definition at line 831 of file triangle.cpp.
#define Fast_Two_Sum | ( | a, | |
b, | |||
x, | |||
y | |||
) |
x = (float) (a + b); \ Fast_Two_Sum_Tail(a, b, x, y)
Definition at line 2298 of file triangle.cpp.
#define Fast_Two_Sum_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
bvirt = x - a; \ y = b - bvirt
Definition at line 2294 of file triangle.cpp.
#define FILENAMESIZE 2048 |
Definition at line 201 of file triangle.cpp.
#define FLIPSTACKERPERBLOCK 252 /* Number of flipped triangles allocated at once. */ |
Definition at line 218 of file triangle.cpp.
#define FREEVERTEX 2 |
Definition at line 227 of file triangle.cpp.
Definition at line 994 of file triangle.cpp.
Definition at line 1004 of file triangle.cpp.
#define INPUTLINESIZE 1024 |
Definition at line 206 of file triangle.cpp.
#define INPUTVERTEX 0 |
Definition at line 225 of file triangle.cpp.
#define killsubseg | ( | sub | ) |
Definition at line 1152 of file triangle.cpp.
#define killtri | ( | tria | ) |
Definition at line 1029 of file triangle.cpp.
#define lnext | ( | otri1, | |
otri2 | |||
) |
(otri2).tri = (otri1).tri; \ (otri2).orient = plus1mod3[(otri1).orient]
Definition at line 852 of file triangle.cpp.
Definition at line 856 of file triangle.cpp.
#define lprev | ( | otri1, | |
otri2 | |||
) |
(otri2).tri = (otri1).tri; \ (otri2).orient = minus1mod3[(otri1).orient]
Definition at line 861 of file triangle.cpp.
#define lprevself | ( | otri | ) | (otri).orient = minus1mod3[(otri).orient] |
Definition at line 865 of file triangle.cpp.
Definition at line 1116 of file triangle.cpp.
#define ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333 |
Definition at line 255 of file triangle.cpp.
#define onext | ( | otri1, | |
otri2 | |||
) |
lprev(otri1, otri2); \ symself(otri2);
Definition at line 872 of file triangle.cpp.
Definition at line 876 of file triangle.cpp.
#define oprev | ( | otri1, | |
otri2 | |||
) |
sym(otri1, otri2); \ lnextself(otri2);
Definition at line 884 of file triangle.cpp.
Definition at line 888 of file triangle.cpp.
Definition at line 947 of file triangle.cpp.
#define otricopy | ( | otri1, | |
otri2 | |||
) |
(otri2).tri = (otri1).tri; \ (otri2).orient = (otri1).orient
Definition at line 981 of file triangle.cpp.
#define otriequal | ( | otri1, | |
otri2 | |||
) |
(((otri1).tri == (otri2).tri) && \ ((otri1).orient == (otri2).orient))
Definition at line 987 of file triangle.cpp.
#define PI 3.141592653589793238462643383279502884197169399375105820974944592308 |
Definition at line 247 of file triangle.cpp.
#define rnext | ( | otri1, | |
otri2 | |||
) |
sym(otri1, otri2); \ lnextself(otri2); \ symself(otri2);
Definition at line 920 of file triangle.cpp.
#define rprev | ( | otri1, | |
otri2 | |||
) |
sym(otri1, otri2); \ lprevself(otri2); \ symself(otri2);
Definition at line 934 of file triangle.cpp.
#define SAMPLEFACTOR 11 |
Definition at line 237 of file triangle.cpp.
#define SAMPLERATE 10 |
Definition at line 243 of file triangle.cpp.
#define sbond | ( | osub1, | |
osub2 | |||
) |
Definition at line 1123 of file triangle.cpp.
(osub).ssorient = (int) ((unsigned long) (sptr) & (unsigned long) 1l); \ (osub).ss = (subseg *) \ ((unsigned long) (sptr) & ~ (unsigned long) 3l)
Definition at line 1042 of file triangle.cpp.
Definition at line 1091 of file triangle.cpp.
Definition at line 1130 of file triangle.cpp.
Definition at line 1103 of file triangle.cpp.
#define SEGMENTVERTEX 1 |
Definition at line 226 of file triangle.cpp.
Definition at line 1100 of file triangle.cpp.
Definition at line 1051 of file triangle.cpp.
Definition at line 962 of file triangle.cpp.
#define setareabound | ( | otri, | |
value | |||
) | ((float *) (otri).tri)[m->areaboundindex] = value |
Definition at line 1019 of file triangle.cpp.
#define setdest | ( | otri, | |
vertexptr | |||
) | (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr |
Definition at line 959 of file triangle.cpp.
#define setelemattribute | ( | otri, | |
attnum, | |||
value | |||
) | ((float *) (otri).tri)[m->elemattribindex + (attnum)] = value |
Definition at line 1012 of file triangle.cpp.
Definition at line 1118 of file triangle.cpp.
Definition at line 956 of file triangle.cpp.
Definition at line 1097 of file triangle.cpp.
#define setsegdest | ( | osub, | |
vertexptr | |||
) | (osub).ss[5 - (osub).ssorient] = (subseg) vertexptr |
Definition at line 1109 of file triangle.cpp.
Definition at line 1106 of file triangle.cpp.
Definition at line 1094 of file triangle.cpp.
#define setvertex2tri | ( | vx, | |
value | |||
) | ((triangle *) (vx))[m->vertex2triindex] = value |
Definition at line 1205 of file triangle.cpp.
#define setvertexmark | ( | vx, | |
value | |||
) | ((int *) (vx))[m->vertexmarkindex] = value |
Definition at line 1195 of file triangle.cpp.
#define setvertextype | ( | vx, | |
value | |||
) | ((int *) (vx))[m->vertexmarkindex + 1] = value |
Definition at line 1200 of file triangle.cpp.
#define snext | ( | osub1, | |
osub2 | |||
) |
sptr = (osub1).ss[1 - (osub1).ssorient]; \ sdecode(sptr, osub2)
Definition at line 1077 of file triangle.cpp.
Definition at line 1081 of file triangle.cpp.
Definition at line 1088 of file triangle.cpp.
#define spivot | ( | osub1, | |
osub2 | |||
) |
sptr = (osub1).ss[(osub1).ssorient]; \ sdecode(sptr, osub2)
Definition at line 1066 of file triangle.cpp.
#define spivotself | ( | osub | ) |
Definition at line 1070 of file triangle.cpp.
#define SPLAYNODEPERBLOCK 508 /* Number of splay tree nodes allocated at once. */ |
Definition at line 219 of file triangle.cpp.
#define Split | ( | a, | |
ahi, | |||
alo | |||
) |
c = (float) (splitter * a); \ abig = (float) (c - a); \ ahi = c - abig; \ alo = a - ahi
Definition at line 2324 of file triangle.cpp.
#define Square | ( | a, | |
x, | |||
y | |||
) |
x = (float) (a * a); \ Square_Tail(a, x, y)
Definition at line 2361 of file triangle.cpp.
#define Square_Tail | ( | a, | |
x, | |||
y | |||
) |
Split(a, ahi, alo); \ err1 = x - (ahi * ahi); \ err3 = err1 - ((ahi + ahi) * alo); \ y = (alo * alo) - err3
Definition at line 2355 of file triangle.cpp.
#define SQUAREROOTTWO 1.4142135623730950488016887242096980785696718753769480732 |
Definition at line 251 of file triangle.cpp.
#define ssym | ( | osub1, | |
osub2 | |||
) |
(osub2).ss = (osub1).ss; \ (osub2).ssorient = 1 - (osub1).ssorient
Definition at line 1056 of file triangle.cpp.
Definition at line 1060 of file triangle.cpp.
#define stdissolve | ( | osub | ) | (osub).ss[6 + (osub).ssorient] = (subseg) m->dummytri |
Definition at line 1186 of file triangle.cpp.
#define subsegcopy | ( | osub1, | |
osub2 | |||
) |
(osub2).ss = (osub1).ss; \ (osub2).ssorient = (osub1).ssorient
Definition at line 1135 of file triangle.cpp.
#define subsegequal | ( | osub1, | |
osub2 | |||
) |
(((osub1).ss == (osub2).ss) && \ ((osub1).ssorient == (osub2).ssorient))
Definition at line 1141 of file triangle.cpp.
#define SUBSEGPERBLOCK 508 /* Number of subsegments allocated at once. */ |
Definition at line 213 of file triangle.cpp.
#define sym | ( | otri1, | |
otri2 | |||
) |
ptr = (otri1).tri[(otri1).orient]; \ decode(ptr, otri2);
Definition at line 842 of file triangle.cpp.
Definition at line 846 of file triangle.cpp.
#define TRIPERBLOCK 4092 /* Number of triangles allocated at once. */ |
Definition at line 212 of file triangle.cpp.
#define tsdissolve | ( | otri | ) | (otri).tri[6 + (otri).orient] = (triangle) m->dummysub |
Definition at line 1181 of file triangle.cpp.
#define Two_Diff | ( | a, | |
b, | |||
x, | |||
y | |||
) |
x = (float) (a - b); \ Two_Diff_Tail(a, b, x, y)
Definition at line 2320 of file triangle.cpp.
#define Two_Diff_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
bvirt = (float) (a - x); \ avirt = x + bvirt; \ bround = bvirt - b; \ around = a - avirt; \ y = around + bround
Definition at line 2313 of file triangle.cpp.
#define Two_One_Diff | ( | a1, | |
a0, | |||
b, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_Diff(a0, b , _i, x0); \ Two_Sum( a1, _i, x2, x1)
Definition at line 2372 of file triangle.cpp.
#define Two_One_Product | ( | a1, | |
a0, | |||
b, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 2386 of file triangle.cpp.
#define Two_One_Sum | ( | a1, | |
a0, | |||
b, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_Sum(a0, b , _i, x0); \ Two_Sum(a1, _i, x2, x1)
Definition at line 2368 of file triangle.cpp.
#define Two_Product | ( | a, | |
b, | |||
x, | |||
y | |||
) |
x = (float) (a * b); \ Two_Product_Tail(a, b, x, y)
Definition at line 2338 of file triangle.cpp.
#define Two_Product_Presplit | ( | a, | |
b, | |||
bhi, | |||
blo, | |||
x, | |||
y | |||
) |
x = (float) (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 2345 of file triangle.cpp.
#define Two_Product_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
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 2330 of file triangle.cpp.
#define Two_Sum | ( | a, | |
b, | |||
x, | |||
y | |||
) |
x = (float) (a + b); \ Two_Sum_Tail(a, b, x, y)
Definition at line 2309 of file triangle.cpp.
#define Two_Sum_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
bvirt = (float) (x - a); \ avirt = x - bvirt; \ bround = b - bvirt; \ around = a - avirt; \ y = around + bround
Definition at line 2302 of file triangle.cpp.
#define Two_Two_Diff | ( | a1, | |
a0, | |||
b1, | |||
b0, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_One_Diff(a1, a0, b0, _j, _0, x0); \ Two_One_Diff(_j, _0, b1, x3, x2, x1)
Definition at line 2380 of file triangle.cpp.
#define Two_Two_Sum | ( | a1, | |
a0, | |||
b1, | |||
b0, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_One_Sum(a1, a0, b0, _j, _0, x0); \ Two_One_Sum(_j, _0, b1, x3, x2, x1)
Definition at line 2376 of file triangle.cpp.
#define UNDEADVERTEX -32767 |
Definition at line 229 of file triangle.cpp.
Definition at line 998 of file triangle.cpp.
#define vertex2tri | ( | vx | ) | ((triangle *) (vx))[m->vertex2triindex] |
Definition at line 1203 of file triangle.cpp.
#define vertexmark | ( | vx | ) | ((int *) (vx))[m->vertexmarkindex] |
Definition at line 1193 of file triangle.cpp.
#define VERTEXPERBLOCK 4092 /* Number of vertices allocated at once. */ |
Definition at line 214 of file triangle.cpp.
#define vertextype | ( | vx | ) | ((int *) (vx))[m->vertexmarkindex + 1] |
Definition at line 1198 of file triangle.cpp.
#define VIRUSPERBLOCK 1020 /* Number of virus triangles allocated at once. */ |
Definition at line 215 of file triangle.cpp.
typedef float** subseg |
Definition at line 420 of file triangle.cpp.
typedef float** triangle |
Definition at line 403 of file triangle.cpp.
typedef float* vertex |
Definition at line 437 of file triangle.cpp.
enum finddirectionresult |
Definition at line 284 of file triangle.cpp.
enum insertvertexresult |
Definition at line 276 of file triangle.cpp.
enum locateresult |
Definition at line 268 of file triangle.cpp.
void alternateaxes | ( | vertex * | sortarray, |
int | arraysize, | ||
int | axis | ||
) |
Definition at line 5581 of file triangle.cpp.
void carveholes | ( | struct mesh * | m, |
struct behavior * | b, | ||
float * | holelist, | ||
int | holes, | ||
float * | regionlist, | ||
int | regions | ||
) |
Definition at line 7378 of file triangle.cpp.
void constrainededge | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | starttri, | ||
vertex | endpoint2, | ||
int | newmark | ||
) |
Definition at line 6682 of file triangle.cpp.
Definition at line 2705 of file triangle.cpp.
float counterclockwiseadapt | ( | vertex | pa, |
vertex | pb, | ||
vertex | pc, | ||
float | detsum | ||
) |
Definition at line 2625 of file triangle.cpp.
Definition at line 6232 of file triangle.cpp.
void delaunayfixup | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | fixuptri, | ||
int | leftside | ||
) |
Definition at line 6571 of file triangle.cpp.
long divconqdelaunay | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 6159 of file triangle.cpp.
void divconqrecurse | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex * | sortarray, | ||
int | vertices, | ||
int | axis, | ||
struct otri * | farleft, | ||
struct otri * | farright | ||
) |
Definition at line 5952 of file triangle.cpp.
Definition at line 1870 of file triangle.cpp.
float estimate | ( | int | elen, |
float * | e | ||
) |
Definition at line 2594 of file triangle.cpp.
void exactinit | ( | ) |
Definition at line 2412 of file triangle.cpp.
int fast_expansion_sum_zeroelim | ( | int | elen, |
float * | e, | ||
int | flen, | ||
float * | f, | ||
float * | h | ||
) |
Definition at line 2463 of file triangle.cpp.
void findcircumcenter | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | torg, | ||
vertex | tdest, | ||
vertex | tapex, | ||
vertex | circumcenter, | ||
float * | xi, | ||
float * | eta, | ||
int | offcenter | ||
) |
Definition at line 3912 of file triangle.cpp.
enum finddirectionresult finddirection | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | searchtri, | ||
vertex | searchpoint | ||
) |
Definition at line 6278 of file triangle.cpp.
Definition at line 4547 of file triangle.cpp.
void formskeleton | ( | struct mesh * | m, |
struct behavior * | b, | ||
int * | segmentlist, | ||
int * | segmentmarkerlist, | ||
int | numberofsegments | ||
) |
Definition at line 6900 of file triangle.cpp.
Definition at line 2142 of file triangle.cpp.
Definition at line 7554 of file triangle.cpp.
Definition at line 3333 of file triangle.cpp.
float incircleadapt | ( | vertex | pa, |
vertex | pb, | ||
vertex | pc, | ||
vertex | pd, | ||
float | permanent | ||
) |
Definition at line 2764 of file triangle.cpp.
void infecthull | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 6996 of file triangle.cpp.
void initializetrisubpools | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 1977 of file triangle.cpp.
void initializevertexpool | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 1941 of file triangle.cpp.
void insertsegment | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | endpoint1, | ||
vertex | endpoint2, | ||
int | newmark | ||
) |
Definition at line 6774 of file triangle.cpp.
void insertsubseg | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | tri, | ||
int | subsegmark | ||
) |
Definition at line 4452 of file triangle.cpp.
enum insertvertexresult insertvertex | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | newvertex, | ||
struct otri * | searchtri, | ||
struct osub * | splitseg, | ||
int | segmentflaws, | ||
int | triflaws | ||
) |
Definition at line 4785 of file triangle.cpp.
void internalerror | ( | ) |
Definition at line 1248 of file triangle.cpp.
enum locateresult locate | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | searchpoint, | ||
struct otri * | searchtri | ||
) |
Definition at line 4290 of file triangle.cpp.
void makesubseg | ( | struct mesh * | m, |
struct osub * | newsubseg | ||
) |
Definition at line 2236 of file triangle.cpp.
void maketriangle | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | newotri | ||
) |
Definition at line 2200 of file triangle.cpp.
void makevertexmap | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 4068 of file triangle.cpp.
Definition at line 6863 of file triangle.cpp.
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 5637 of file triangle.cpp.
float nonregular | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | pa, | ||
vertex | pb, | ||
vertex | pc, | ||
vertex | pd | ||
) |
Definition at line 3882 of file triangle.cpp.
void numbernodes | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 7776 of file triangle.cpp.
float orient3d | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | pa, | ||
vertex | pb, | ||
vertex | pc, | ||
vertex | pd, | ||
float | aheight, | ||
float | bheight, | ||
float | cheight, | ||
float | dheight | ||
) |
Definition at line 3814 of file triangle.cpp.
float orient3dadapt | ( | vertex | pa, |
vertex | pb, | ||
vertex | pc, | ||
vertex | pd, | ||
float | aheight, | ||
float | bheight, | ||
float | cheight, | ||
float | dheight, | ||
float | permanent | ||
) |
Definition at line 3404 of file triangle.cpp.
void parsecommandline | ( | int | argc, |
char ** | argv, | ||
struct behavior * | b | ||
) |
Definition at line 1263 of file triangle.cpp.
Definition at line 7071 of file triangle.cpp.
int* poolalloc | ( | struct memorypool * | pool | ) |
Definition at line 1708 of file triangle.cpp.
void pooldealloc | ( | struct memorypool * | pool, |
int * | dyingitem | ||
) |
Definition at line 1765 of file triangle.cpp.
void pooldeinit | ( | struct memorypool * | pool | ) |
Definition at line 1693 of file triangle.cpp.
void poolinit | ( | struct memorypool * | pool, |
int | bytecount, | ||
int | itemcount, | ||
int | firstitemcount, | ||
int | alignment | ||
) |
Definition at line 1655 of file triangle.cpp.
void poolrestart | ( | struct memorypool * | pool | ) |
Definition at line 1615 of file triangle.cpp.
void poolzero | ( | struct memorypool * | pool | ) |
Definition at line 1587 of file triangle.cpp.
enum locateresult preciselocate | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | searchpoint, | ||
struct otri * | searchtri, | ||
int | stopatsubsegment | ||
) |
Definition at line 4156 of file triangle.cpp.
void printsubseg | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct osub * | s | ||
) |
Definition at line 1501 of file triangle.cpp.
void printtriangle | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | t | ||
) |
Definition at line 1415 of file triangle.cpp.
void quality_statistics | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 8187 of file triangle.cpp.
unsigned long randomnation | ( | unsigned int | choices | ) |
Definition at line 4044 of file triangle.cpp.
void regionplague | ( | struct mesh * | m, |
struct behavior * | b, | ||
float | attribute, | ||
float | area | ||
) |
Definition at line 7274 of file triangle.cpp.
long removeghosts | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | startghost | ||
) |
Definition at line 6104 of file triangle.cpp.
int scale_expansion_zeroelim | ( | int | elen, |
float * | e, | ||
float | b, | ||
float * | h | ||
) |
Definition at line 2547 of file triangle.cpp.
int scoutsegment | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | searchtri, | ||
vertex | endpoint2, | ||
int | newmark | ||
) |
Definition at line 6481 of file triangle.cpp.
void segmentintersection | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | splittri, | ||
struct osub * | splitsubseg, | ||
vertex | endpoint2 | ||
) |
Definition at line 6364 of file triangle.cpp.
void statistics | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 8387 of file triangle.cpp.
void subsegdealloc | ( | struct mesh * | m, |
subseg * | dyingsubseg | ||
) |
Definition at line 2070 of file triangle.cpp.
subseg* subsegtraverse | ( | struct mesh * | m | ) |
Definition at line 2084 of file triangle.cpp.
void transfernodes | ( | struct mesh * | m, |
struct behavior * | b, | ||
float * | pointlist, | ||
float * | pointattriblist, | ||
int * | pointmarkerlist, | ||
int | numberofpoints, | ||
int | numberofpointattribs | ||
) |
Definition at line 7633 of file triangle.cpp.
void traversalinit | ( | struct memorypool * | pool | ) |
Definition at line 1781 of file triangle.cpp.
int* traverse | ( | struct memorypool * | pool | ) |
Definition at line 1811 of file triangle.cpp.
void triangledealloc | ( | struct mesh * | m, |
triangle * | dyingtriangle | ||
) |
Definition at line 2037 of file triangle.cpp.
void triangledeinit | ( | struct mesh * | m, |
struct behavior * | b | ||
) |
Definition at line 2175 of file triangle.cpp.
void triangleinit | ( | struct mesh * | m | ) |
Definition at line 4011 of file triangle.cpp.
triangle* triangletraverse | ( | struct mesh * | m | ) |
Definition at line 2051 of file triangle.cpp.
void triangulate | ( | char * | triswitches, |
struct triangulateio * | in, | ||
struct triangulateio * | out, | ||
struct triangulateio * | vorout | ||
) |
Definition at line 8498 of file triangle.cpp.
void triangulatepolygon | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | firstedge, | ||
struct otri * | lastedge, | ||
int | edgecount, | ||
int | doflip, | ||
int | triflaws | ||
) |
Definition at line 5332 of file triangle.cpp.
void triexit | ( | int | status | ) |
Definition at line 1216 of file triangle.cpp.
void trifree | ( | int * | memptr | ) |
Definition at line 1233 of file triangle.cpp.
int* trimalloc | ( | int | size | ) |
Definition at line 1221 of file triangle.cpp.
Definition at line 4659 of file triangle.cpp.
void vertexdealloc | ( | struct mesh * | m, |
vertex | dyingvertex | ||
) |
Definition at line 2103 of file triangle.cpp.
void vertexmedian | ( | vertex * | sortarray, |
int | arraysize, | ||
int | median, | ||
int | axis | ||
) |
Definition at line 5512 of file triangle.cpp.
void vertexsort | ( | vertex * | sortarray, |
int | arraysize | ||
) |
Definition at line 5445 of file triangle.cpp.
vertex vertextraverse | ( | struct mesh * | m | ) |
Definition at line 2117 of file triangle.cpp.
void writeedges | ( | struct mesh * | m, |
struct behavior * | b, | ||
int ** | edgelist, | ||
int ** | edgemarkerlist | ||
) |
Definition at line 7921 of file triangle.cpp.
void writeelements | ( | struct mesh * | m, |
struct behavior * | b, | ||
int ** | trianglelist, | ||
float ** | triangleattriblist | ||
) |
Definition at line 7799 of file triangle.cpp.
void writeneighbors | ( | struct mesh * | m, |
struct behavior * | b, | ||
int ** | neighborlist | ||
) |
Definition at line 8124 of file triangle.cpp.
void writenodes | ( | struct mesh * | m, |
struct behavior * | b, | ||
float ** | pointlist, | ||
float ** | pointattriblist, | ||
int ** | pointmarkerlist | ||
) |
Definition at line 7703 of file triangle.cpp.
void writepoly | ( | struct mesh * | m, |
struct behavior * | b, | ||
int ** | segmentlist, | ||
int ** | segmentmarkerlist | ||
) |
Definition at line 7869 of file triangle.cpp.
void writevoronoi | ( | struct mesh * | m, |
struct behavior * | b, | ||
float ** | vpointlist, | ||
float ** | vpointattriblist, | ||
int ** | vpointmarkerlist, | ||
int ** | vedgelist, | ||
int ** | vedgemarkerlist, | ||
float ** | vnormlist | ||
) |
Definition at line 8005 of file triangle.cpp.
float ccwerrboundA |
Definition at line 544 of file triangle.cpp.
float ccwerrboundB |
Definition at line 544 of file triangle.cpp.
float ccwerrboundC |
Definition at line 544 of file triangle.cpp.
float epsilon |
Definition at line 542 of file triangle.cpp.
float iccerrboundA |
Definition at line 545 of file triangle.cpp.
float iccerrboundB |
Definition at line 545 of file triangle.cpp.
float iccerrboundC |
Definition at line 545 of file triangle.cpp.
int minus1mod3[3] = {2, 0, 1} |
Definition at line 813 of file triangle.cpp.
float o3derrboundA |
Definition at line 546 of file triangle.cpp.
float o3derrboundB |
Definition at line 546 of file triangle.cpp.
float o3derrboundC |
Definition at line 546 of file triangle.cpp.
int plus1mod3[3] = {1, 2, 0} |
Definition at line 812 of file triangle.cpp.
unsigned long randomseed |
Definition at line 550 of file triangle.cpp.
float resulterrbound |
Definition at line 543 of file triangle.cpp.
float splitter |
Definition at line 541 of file triangle.cpp.