#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdint.h>
#include "triangle.h"
Classes | |
struct | badsubseg |
struct | badtriang |
struct | behavior |
struct | event |
struct | flipstacker |
struct | memorypool |
struct | mesh |
struct | osub |
struct | otri |
struct | splaynode |
Macros | |
#define | Absolute(a) ((a) >= 0.0 ? (a) : -(a)) |
#define | apex(otri, vertexptr) vertexptr = (vertex) (otri).tri[(otri).orient + 3] |
#define | areabound(otri) ((REAL *) (otri).tri)[m->areaboundindex] |
#define | BADSUBSEGPERBLOCK 252 |
#define | BADTRIPERBLOCK 4092 |
#define | bond(otri1, otri2) |
#define | CDT_ONLY |
#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) ((REAL *) (otri).tri)[m->elemattribindex + (attnum)] |
#define | encode(otri) (triangle) ((uintptr_t) (otri).tri | (uintptr_t) (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 |
#define | FREEVERTEX 2 |
#define | INEXACT /* Nothing */ |
#define | infect(otri) |
#define | infected(otri) (((uintptr_t) (otri).tri[6] & (uintptr_t) 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 | NO_TIMER |
#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 | REDUCED |
#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) ((uintptr_t) (osub).ss | (uintptr_t) (osub).ssorient) |
#define | setapex(otri, vertexptr) (otri).tri[(otri).orient + 3] = (triangle) vertexptr |
#define | setareabound(otri, value) ((REAL *) (otri).tri)[m->areaboundindex] = value |
#define | setdest(otri, vertexptr) (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr |
#define | setelemattribute(otri, attnum, value) ((REAL *) (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 |
#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 | STARTINDEX 0 |
#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 | TRILIBRARY |
#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 double ** | subseg |
typedef double ** | triangle |
typedef double * | 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, double *holelist, int holes, double *regionlist, int regions) |
void | constrainededge (struct mesh *m, struct behavior *b, struct otri *starttri, vertex endpoint2, int newmark) |
double | counterclockwise (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc) |
double | counterclockwiseadapt (vertex pa, vertex pb, vertex pc, double 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) |
double | estimate (int elen, double *e) |
void | exactinit () |
int | fast_expansion_sum_zeroelim (int elen, double *e, int flen, double *f, double *h) |
void | findcircumcenter (struct mesh *m, struct behavior *b, vertex torg, vertex tdest, vertex tapex, vertex circumcenter, double *xi, double *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) |
double | incircle (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd) |
double | incircleadapt (vertex pa, vertex pb, vertex pc, vertex pd, double 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) |
double | nonregular (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd) |
void | numbernodes (struct mesh *m, struct behavior *b) |
double | orient3d (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd, double aheight, double bheight, double cheight, double dheight) |
double | orient3dadapt (vertex pa, vertex pb, vertex pc, vertex pd, double aheight, double bheight, double cheight, double dheight, double permanent) |
void | parsecommandline (int argc, char **argv, struct behavior *b) |
void | plague (struct mesh *m, struct behavior *b) |
void * | poolalloc (struct memorypool *pool) |
void | pooldealloc (struct memorypool *pool, void *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) |
uintptr_t | randomnation (unsigned int choices) |
void | regionplague (struct mesh *m, struct behavior *b, double attribute, double area) |
long | removeghosts (struct mesh *m, struct behavior *b, struct otri *startghost) |
int | scale_expansion_zeroelim (int elen, double *e, double b, double *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, double *pointlist, double *pointattriblist, int *pointmarkerlist, int numberofpoints, int numberofpointattribs) |
void | traversalinit (struct memorypool *pool) |
void * | 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 (void *memptr) |
void * | trimalloc (int size) |
int | triunsuitable (vertex triorg, vertex tridest, vertex triapex, double area) |
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, double **triangleattriblist) |
void | writeneighbors (struct mesh *m, struct behavior *b, int **neighborlist) |
void | writenodes (struct mesh *m, struct behavior *b, double **pointlist, double **pointattriblist, int **pointmarkerlist) |
void | writepoly (struct mesh *m, struct behavior *b, int **segmentlist, int **segmentmarkerlist) |
void | writevoronoi (struct mesh *m, struct behavior *b, double **vpointlist, double **vpointattriblist, int **vpointmarkerlist, int **vedgelist, int **vedgemarkerlist, double **vnormlist) |
Variables | |
double | ccwerrboundA |
double | ccwerrboundB |
double | ccwerrboundC |
double | epsilon |
double | iccerrboundA |
double | iccerrboundB |
double | iccerrboundC |
int | minus1mod3 [3] = {2, 0, 1} |
double | o3derrboundA |
double | o3derrboundB |
double | o3derrboundC |
int | plus1mod3 [3] = {1, 2, 0} |
uintptr_t | randomseed |
double | resulterrbound |
double | splitter |
Definition at line 1044 of file triangle.c.
Definition at line 1108 of file triangle.c.
#define BADSUBSEGPERBLOCK 252 |
Definition at line 271 of file triangle.c.
#define BADTRIPERBLOCK 4092 |
Definition at line 273 of file triangle.c.
#define bond | ( | otri1, | |
otri2 | |||
) |
Definition at line 1058 of file triangle.c.
#define CDT_ONLY |
Definition at line 227 of file triangle.c.
#define deadsubseg | ( | sub | ) | ((sub)[1] == (subseg) NULL) |
Definition at line 1241 of file triangle.c.
#define deadtri | ( | tria | ) | ((tria)[1] == (triangle) NULL) |
Definition at line 1118 of file triangle.c.
#define DEADVERTEX -32768 |
Definition at line 286 of file triangle.c.
#define decode | ( | ptr, | |
otri | |||
) |
Definition at line 913 of file triangle.c.
#define dest | ( | otri, | |
vertexptr | |||
) | vertexptr = (vertex) (otri).tri[minus1mod3[(otri).orient] + 3] |
Definition at line 1041 of file triangle.c.
Definition at line 1067 of file triangle.c.
#define dnext | ( | otri1, | |
otri2 | |||
) |
Definition at line 987 of file triangle.c.
#define dnextself | ( | otri | ) |
Definition at line 991 of file triangle.c.
#define dprev | ( | otri1, | |
otri2 | |||
) |
Definition at line 999 of file triangle.c.
#define dprevself | ( | otri | ) |
Definition at line 1003 of file triangle.c.
Definition at line 1100 of file triangle.c.
Definition at line 922 of file triangle.c.
Definition at line 4750 of file triangle.c.
#define FILENAMESIZE 2048 |
Definition at line 255 of file triangle.c.
#define FLIPSTACKERPERBLOCK 252 |
Definition at line 275 of file triangle.c.
#define FREEVERTEX 2 |
Definition at line 285 of file triangle.c.
#define INEXACT /* Nothing */ |
Definition at line 250 of file triangle.c.
#define infect | ( | otri | ) |
Definition at line 1085 of file triangle.c.
Definition at line 1095 of file triangle.c.
#define INPUTLINESIZE 1024 |
Definition at line 260 of file triangle.c.
#define INPUTVERTEX 0 |
Definition at line 283 of file triangle.c.
#define killsubseg | ( | sub | ) |
Definition at line 1243 of file triangle.c.
#define killtri | ( | tria | ) |
Definition at line 1120 of file triangle.c.
#define lnext | ( | otri1, | |
otri2 | |||
) |
Definition at line 943 of file triangle.c.
Definition at line 947 of file triangle.c.
#define lprev | ( | otri1, | |
otri2 | |||
) |
Definition at line 952 of file triangle.c.
#define lprevself | ( | otri | ) | (otri).orient = minus1mod3[(otri).orient] |
Definition at line 956 of file triangle.c.
Definition at line 1207 of file triangle.c.
#define NO_TIMER |
Definition at line 200 of file triangle.c.
#define ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333 |
Definition at line 313 of file triangle.c.
#define onext | ( | otri1, | |
otri2 | |||
) |
Definition at line 963 of file triangle.c.
#define onextself | ( | otri | ) |
Definition at line 967 of file triangle.c.
#define oprev | ( | otri1, | |
otri2 | |||
) |
Definition at line 975 of file triangle.c.
#define oprevself | ( | otri | ) |
Definition at line 979 of file triangle.c.
Definition at line 1038 of file triangle.c.
#define otricopy | ( | otri1, | |
otri2 | |||
) |
Definition at line 1072 of file triangle.c.
#define otriequal | ( | otri1, | |
otri2 | |||
) |
Definition at line 1078 of file triangle.c.
#define PI 3.141592653589793238462643383279502884197169399375105820974944592308 |
Definition at line 305 of file triangle.c.
#define REDUCED |
Definition at line 226 of file triangle.c.
#define rnext | ( | otri1, | |
otri2 | |||
) |
Definition at line 1011 of file triangle.c.
#define rnextself | ( | otri | ) |
#define rprev | ( | otri1, | |
otri2 | |||
) |
Definition at line 1025 of file triangle.c.
#define rprevself | ( | otri | ) |
#define SAMPLEFACTOR 11 |
Definition at line 295 of file triangle.c.
#define SAMPLERATE 10 |
Definition at line 301 of file triangle.c.
#define sbond | ( | osub1, | |
osub2 | |||
) |
Definition at line 1214 of file triangle.c.
#define sdecode | ( | sptr, | |
osub | |||
) |
Definition at line 1133 of file triangle.c.
Definition at line 1182 of file triangle.c.
Definition at line 1221 of file triangle.c.
Definition at line 1194 of file triangle.c.
#define SEGMENTVERTEX 1 |
Definition at line 284 of file triangle.c.
Definition at line 1191 of file triangle.c.
Definition at line 1142 of file triangle.c.
Definition at line 1053 of file triangle.c.
Definition at line 1110 of file triangle.c.
#define setdest | ( | otri, | |
vertexptr | |||
) | (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr |
Definition at line 1050 of file triangle.c.
#define setelemattribute | ( | otri, | |
attnum, | |||
value | |||
) | ((REAL *) (otri).tri)[m->elemattribindex + (attnum)] = value |
Definition at line 1103 of file triangle.c.
Definition at line 1209 of file triangle.c.
Definition at line 1047 of file triangle.c.
Definition at line 1188 of file triangle.c.
Definition at line 1200 of file triangle.c.
Definition at line 1197 of file triangle.c.
Definition at line 1185 of file triangle.c.
Definition at line 1296 of file triangle.c.
Definition at line 1286 of file triangle.c.
Definition at line 1291 of file triangle.c.
#define snext | ( | osub1, | |
osub2 | |||
) |
Definition at line 1168 of file triangle.c.
#define snextself | ( | osub | ) |
Definition at line 1172 of file triangle.c.
Definition at line 1179 of file triangle.c.
#define spivot | ( | osub1, | |
osub2 | |||
) |
Definition at line 1157 of file triangle.c.
#define spivotself | ( | osub | ) |
Definition at line 1161 of file triangle.c.
#define SPLAYNODEPERBLOCK 508 |
Definition at line 277 of file triangle.c.
#define Split | ( | a, | |
ahi, | |||
alo | |||
) |
Definition at line 4776 of file triangle.c.
Definition at line 4807 of file triangle.c.
#define SQUAREROOTTWO 1.4142135623730950488016887242096980785696718753769480732 |
Definition at line 309 of file triangle.c.
#define ssym | ( | osub1, | |
osub2 | |||
) |
Definition at line 1147 of file triangle.c.
Definition at line 1151 of file triangle.c.
#define STARTINDEX 0 |
Definition at line 1277 of file triangle.c.
Definition at line 1260 of file triangle.c.
#define subsegcopy | ( | osub1, | |
osub2 | |||
) |
Definition at line 1226 of file triangle.c.
#define subsegequal | ( | osub1, | |
osub2 | |||
) |
Definition at line 1232 of file triangle.c.
#define SUBSEGPERBLOCK 508 /* Number of subsegments allocated at once. */ |
Definition at line 267 of file triangle.c.
#define sym | ( | otri1, | |
otri2 | |||
) |
Definition at line 933 of file triangle.c.
#define symself | ( | otri | ) |
Definition at line 937 of file triangle.c.
#define TRILIBRARY |
Definition at line 214 of file triangle.c.
#define TRIPERBLOCK 4092 /* Number of triangles allocated at once. */ |
Definition at line 266 of file triangle.c.
Definition at line 1272 of file triangle.c.
Definition at line 4824 of file triangle.c.
Definition at line 4838 of file triangle.c.
Definition at line 4820 of file triangle.c.
Definition at line 4832 of file triangle.c.
Definition at line 4828 of file triangle.c.
#define UNDEADVERTEX -32767 |
Definition at line 287 of file triangle.c.
#define uninfect | ( | otri | ) |
Definition at line 1089 of file triangle.c.
Definition at line 1294 of file triangle.c.
Definition at line 1284 of file triangle.c.
#define VERTEXPERBLOCK 4092 /* Number of vertices allocated at once. */ |
Definition at line 268 of file triangle.c.
Definition at line 1289 of file triangle.c.
#define VIRUSPERBLOCK 1020 /* Number of virus triangles allocated at once. */ |
Definition at line 269 of file triangle.c.
Definition at line 496 of file triangle.c.
Definition at line 479 of file triangle.c.
Definition at line 513 of file triangle.c.
enum finddirectionresult |
Enumerator | |
---|---|
WITHIN | |
LEFTCOLLINEAR | |
RIGHTCOLLINEAR |
Definition at line 360 of file triangle.c.
enum insertvertexresult |
Enumerator | |
---|---|
SUCCESSFULVERTEX | |
ENCROACHINGVERTEX | |
VIOLATINGVERTEX | |
DUPLICATEVERTEX |
Definition at line 352 of file triangle.c.
enum locateresult |
Enumerator | |
---|---|
INTRIANGLE | |
ONEDGE | |
ONVERTEX | |
OUTSIDE |
Definition at line 344 of file triangle.c.
Definition at line 9336 of file triangle.c.
void carveholes | ( | struct mesh * | m, |
struct behavior * | b, | ||
double * | holelist, | ||
int | holes, | ||
double * | regionlist, | ||
int | regions | ||
) |
Definition at line 12964 of file triangle.c.
void constrainededge | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | starttri, | ||
vertex | endpoint2, | ||
int | newmark | ||
) |
Definition at line 12132 of file triangle.c.
Definition at line 5216 of file triangle.c.
Definition at line 5127 of file triangle.c.
Definition at line 10998 of file triangle.c.
Definition at line 12012 of file triangle.c.
Definition at line 9954 of file triangle.c.
void divconqrecurse | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex * | sortarray, | ||
int | vertices, | ||
int | axis, | ||
struct otri * | farleft, | ||
struct otri * | farright | ||
) |
Definition at line 9727 of file triangle.c.
Definition at line 4167 of file triangle.c.
Definition at line 5088 of file triangle.c.
void exactinit | ( | ) |
Definition at line 4864 of file triangle.c.
Definition at line 4938 of file triangle.c.
void findcircumcenter | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | torg, | ||
vertex | tdest, | ||
vertex | tapex, | ||
vertex | circumcenter, | ||
double * | xi, | ||
double * | eta, | ||
int | offcenter | ||
) |
Definition at line 6495 of file triangle.c.
enum finddirectionresult finddirection | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | searchtri, | ||
vertex | searchpoint | ||
) |
Definition at line 11575 of file triangle.c.
Definition at line 7890 of file triangle.c.
void formskeleton | ( | struct mesh * | m, |
struct behavior * | b, | ||
int * | segmentlist, | ||
int * | segmentmarkerlist, | ||
int | numberofsegments | ||
) |
Definition at line 12392 of file triangle.c.
Definition at line 4556 of file triangle.c.
Definition at line 13695 of file triangle.c.
double incircle | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | pa, | ||
vertex | pb, | ||
vertex | pc, | ||
vertex | pd | ||
) |
Definition at line 5864 of file triangle.c.
Definition at line 5285 of file triangle.c.
Definition at line 12559 of file triangle.c.
Definition at line 4290 of file triangle.c.
Definition at line 4247 of file triangle.c.
void insertsegment | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | endpoint1, | ||
vertex | endpoint2, | ||
int | newmark | ||
) |
Definition at line 12234 of file triangle.c.
Definition at line 7786 of file triangle.c.
enum insertvertexresult insertvertex | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | newvertex, | ||
struct otri * | searchtri, | ||
struct osub * | splitseg, | ||
int | segmentflaws, | ||
int | triflaws | ||
) |
Definition at line 8174 of file triangle.c.
void internalerror | ( | ) |
Definition at line 3242 of file triangle.c.
enum locateresult locate | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | searchpoint, | ||
struct otri * | searchtri | ||
) |
Definition at line 7615 of file triangle.c.
Definition at line 4682 of file triangle.c.
Definition at line 4638 of file triangle.c.
Definition at line 7376 of file triangle.c.
Definition at line 12346 of file triangle.c.
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 9400 of file triangle.c.
double nonregular | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | pa, | ||
vertex | pb, | ||
vertex | pc, | ||
vertex | pd | ||
) |
Definition at line 6454 of file triangle.c.
Definition at line 14446 of file triangle.c.
double orient3d | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | pa, | ||
vertex | pb, | ||
vertex | pc, | ||
vertex | pd, | ||
double | aheight, | ||
double | bheight, | ||
double | cheight, | ||
double | dheight | ||
) |
Definition at line 6371 of file triangle.c.
double orient3dadapt | ( | vertex | pa, |
vertex | pb, | ||
vertex | pc, | ||
vertex | pd, | ||
double | aheight, | ||
double | bheight, | ||
double | cheight, | ||
double | dheight, | ||
double | permanent | ||
) |
Definition at line 5946 of file triangle.c.
Definition at line 3258 of file triangle.c.
Definition at line 12641 of file triangle.c.
void * poolalloc | ( | struct memorypool * | pool | ) |
Definition at line 3980 of file triangle.c.
void pooldealloc | ( | struct memorypool * | pool, |
void * | dyingitem | ||
) |
Definition at line 4043 of file triangle.c.
void pooldeinit | ( | struct memorypool * | pool | ) |
Definition at line 3959 of file triangle.c.
void poolinit | ( | struct memorypool * | pool, |
int | bytecount, | ||
int | itemcount, | ||
int | firstitemcount, | ||
int | alignment | ||
) |
Definition at line 3911 of file triangle.c.
void poolrestart | ( | struct memorypool * | pool | ) |
Definition at line 3865 of file triangle.c.
void poolzero | ( | struct memorypool * | pool | ) |
Definition at line 3831 of file triangle.c.
enum locateresult preciselocate | ( | struct mesh * | m, |
struct behavior * | b, | ||
vertex | searchpoint, | ||
struct otri * | searchtri, | ||
int | stopatsubsegment | ||
) |
Definition at line 7471 of file triangle.c.
Definition at line 3735 of file triangle.c.
Definition at line 3641 of file triangle.c.
Definition at line 15338 of file triangle.c.
uintptr_t randomnation | ( | unsigned int | choices | ) |
Definition at line 6648 of file triangle.c.
Definition at line 12851 of file triangle.c.
Definition at line 9891 of file triangle.c.
Definition at line 5032 of file triangle.c.
int scoutsegment | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | searchtri, | ||
vertex | endpoint2, | ||
int | newmark | ||
) |
Definition at line 11798 of file triangle.c.
void segmentintersection | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | splittri, | ||
struct osub * | splitsubseg, | ||
vertex | endpoint2 | ||
) |
Definition at line 11670 of file triangle.c.
Definition at line 15546 of file triangle.c.
Definition at line 4403 of file triangle.c.
Definition at line 4424 of file triangle.c.
void transfernodes | ( | struct mesh * | m, |
struct behavior * | b, | ||
double * | pointlist, | ||
double * | pointattriblist, | ||
int * | pointmarkerlist, | ||
int | numberofpoints, | ||
int | numberofpointattribs | ||
) |
Definition at line 14068 of file triangle.c.
void traversalinit | ( | struct memorypool * | pool | ) |
Definition at line 4066 of file triangle.c.
void * traverse | ( | struct memorypool * | pool | ) |
Definition at line 4102 of file triangle.c.
Definition at line 4357 of file triangle.c.
Definition at line 4597 of file triangle.c.
void triangleinit | ( | struct mesh * | m | ) |
Definition at line 6609 of file triangle.c.
Definition at line 4378 of file triangle.c.
void triangulate | ( | char * | triswitches, |
struct triangulateio * | in, | ||
struct triangulateio * | out, | ||
struct triangulateio * | vorout | ||
) |
Definition at line 15666 of file triangle.c.
void triangulatepolygon | ( | struct mesh * | m, |
struct behavior * | b, | ||
struct otri * | firstedge, | ||
struct otri * | lastedge, | ||
int | edgecount, | ||
int | doflip, | ||
int | triflaws | ||
) |
Definition at line 8835 of file triangle.c.
void triexit | ( | int | status | ) |
Definition at line 1386 of file triangle.c.
void trifree | ( | void * | memptr | ) |
Definition at line 1415 of file triangle.c.
void * trimalloc | ( | int | size | ) |
Definition at line 1397 of file triangle.c.
Definition at line 1337 of file triangle.c.
Definition at line 8025 of file triangle.c.
Definition at line 4449 of file triangle.c.
Definition at line 9258 of file triangle.c.
Definition at line 9184 of file triangle.c.
Definition at line 4470 of file triangle.c.
Definition at line 14771 of file triangle.c.
void writeelements | ( | struct mesh * | m, |
struct behavior * | b, | ||
int ** | trianglelist, | ||
double ** | triangleattriblist | ||
) |
Definition at line 14478 of file triangle.c.
Definition at line 15145 of file triangle.c.
void writenodes | ( | struct mesh * | m, |
struct behavior * | b, | ||
double ** | pointlist, | ||
double ** | pointattriblist, | ||
int ** | pointmarkerlist | ||
) |
Definition at line 14306 of file triangle.c.
void writepoly | ( | struct mesh * | m, |
struct behavior * | b, | ||
int ** | segmentlist, | ||
int ** | segmentmarkerlist | ||
) |
Definition at line 14625 of file triangle.c.
void writevoronoi | ( | struct mesh * | m, |
struct behavior * | b, | ||
double ** | vpointlist, | ||
double ** | vpointattriblist, | ||
int ** | vpointmarkerlist, | ||
int ** | vedgelist, | ||
int ** | vedgemarkerlist, | ||
double ** | vnormlist | ||
) |
Definition at line 14925 of file triangle.c.
double ccwerrboundA |
Definition at line 620 of file triangle.c.
double ccwerrboundB |
Definition at line 620 of file triangle.c.
double ccwerrboundC |
Definition at line 620 of file triangle.c.
double epsilon |
Definition at line 618 of file triangle.c.
double iccerrboundA |
Definition at line 621 of file triangle.c.
double iccerrboundB |
Definition at line 621 of file triangle.c.
double iccerrboundC |
Definition at line 621 of file triangle.c.
int minus1mod3[3] = {2, 0, 1} |
Definition at line 904 of file triangle.c.
double o3derrboundA |
Definition at line 622 of file triangle.c.
double o3derrboundB |
Definition at line 622 of file triangle.c.
double o3derrboundC |
Definition at line 622 of file triangle.c.
int plus1mod3[3] = {1, 2, 0} |
Definition at line 903 of file triangle.c.
uintptr_t randomseed |
Definition at line 626 of file triangle.c.
double resulterrbound |
Definition at line 619 of file triangle.c.
double splitter |
Definition at line 617 of file triangle.c.