#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) |
triangle * | triangletraverse (struct mesh *m) |
void | subsegdealloc (struct mesh *m, subseg *dyingsubseg) |
subseg * | subsegtraverse (struct mesh *m) |
void | vertexdealloc (struct mesh *m, vertex dyingvertex) |
vertex | vertextraverse (struct mesh *m) |
void | badsubsegdealloc (struct mesh *m, struct badsubseg *dyingseg) |
badsubseg * | badsubsegtraverse (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) |
badtriang * | dequeuebadtriang (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) |
splaynode * | splay (struct mesh *m, struct splaynode *splaytree, vertex searchpoint, struct otri *searchtri) |
splaynode * | splayinsert (struct mesh *m, struct splaynode *splayroot, struct otri *newkey, vertex searchpoint) |
splaynode * | circletopinsert (struct mesh *m, struct behavior *b, struct splaynode *splayroot, struct otri *newkey, vertex pa, vertex pb, vertex pc, REAL topy) |
splaynode * | frontlocate (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 Absolute | ( | a | ) | ((a) >= 0.0 ? (a) : -(a)) |
Definition at line 4755 of file triangle.cpp.
Referenced by counterclockwiseadapt(), incircle(), incircleadapt(), orient3d(), and orient3dadapt().
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().
Definition at line 1138 of file triangle.cpp.
Referenced by insertvertex(), printtriangle(), and testtriangle().
#define BADSUBSEGPERBLOCK 252 |
#define BADTRIPERBLOCK 4092 |
#define bond | ( | otri1, | |||
otri2 | ) |
Value:
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) |
#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 |
#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().
Definition at line 1097 of file triangle.cpp.
Referenced by plague(), removebox(), and removeghosts().
#define dnext | ( | otri1, | |||
otri2 | ) |
Value:
Definition at line 1017 of file triangle.cpp.
Referenced by deletevertex(), and undovertex().
#define dnextself | ( | otri | ) |
#define dprev | ( | otri1, | |||
otri2 | ) |
#define dprevself | ( | otri | ) |
Definition at line 952 of file triangle.cpp.
Referenced by enqueuebadtri(), makevertexmap(), removebox(), removeghosts(), segmentintersection(), and sweeplinedelaunay().
#define Fast_Two_Sum | ( | a, | |||
b, | |||||
x, | |||||
y | ) |
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, | |||||
y | ) |
#define FILENAMESIZE 2048 |
#define FLIPSTACKERPERBLOCK 252 |
#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:
Definition at line 1115 of file triangle.cpp.
Referenced by carveholes(), infecthull(), plague(), and regionplague().
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 |
#define killsubseg | ( | sub | ) |
#define killtri | ( | tria | ) |
#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().
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().
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:
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:
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().
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 |
#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:
Definition at line 1041 of file triangle.cpp.
#define rnextself | ( | otri | ) |
#define rprev | ( | otri1, | |||
otri2 | ) |
Value:
Definition at line 1055 of file triangle.cpp.
#define rprevself | ( | otri | ) |
#define SAMPLEFACTOR 11 |
#define SAMPLERATE 10 |
#define sbond | ( | osub1, | |||
osub2 | ) |
Value:
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().
Definition at line 1212 of file triangle.cpp.
Referenced by checkseg4encroach(), insertvertex(), printsubseg(), splitencsegs(), and writepoly().
#define SEGMENTVERTEX 1 |
Definition at line 309 of file triangle.cpp.
Referenced by conformingedge(), highorder(), splitencsegs(), and testtriangle().
Definition at line 1172 of file triangle.cpp.
Referenced by checkseg4encroach(), and insertvertex().
Definition at line 1083 of file triangle.cpp.
Referenced by boundingbox(), divconqrecurse(), flip(), insertvertex(), mergehulls(), sweeplinedelaunay(), undovertex(), and unflip().
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().
Definition at line 1239 of file triangle.cpp.
Referenced by infecthull(), insertsubseg(), makesubseg(), and plague().
Definition at line 1077 of file triangle.cpp.
Referenced by boundingbox(), check4deadevent(), deletevertex(), divconqrecurse(), flip(), insertvertex(), mergehulls(), plague(), sweeplinedelaunay(), undovertex(), and unflip().
Definition at line 1227 of file triangle.cpp.
Referenced by insertsubseg(), and segmentintersection().
#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:
Definition at line 1202 of file triangle.cpp.
Referenced by segmentintersection(), and splitencsegs().
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:
Definition at line 1191 of file triangle.cpp.
#define SPLAYNODEPERBLOCK 508 |
#define Split | ( | a, | |||
ahi, | |||||
alo | ) |
#define Square | ( | a, | |||
x, | |||||
y | ) |
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, | |||||
y | ) |
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 |
#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().
Definition at line 1181 of file triangle.cpp.
Referenced by insertsubseg(), and segmentintersection().
#define STARTINDEX 1 |
Referenced by parsecommandline().
Value:
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 |
#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:
Definition at line 967 of file triangle.cpp.
Referenced by carveholes(), infecthull(), insertsegment(), insertvertex(), locate(), markhull(), mergehulls(), removebox(), removeghosts(), and sweeplinedelaunay().
#define TRIPERBLOCK 4092 |
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().
Value:
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, | |||||
y | ) |
#define Two_Diff_Tail | ( | a, | |||
b, | |||||
x, | |||||
y | ) |
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:
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:
Definition at line 4845 of file triangle.cpp.
#define Two_Product | ( | a, | |||
b, | |||||
x, | |||||
y | ) |
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, | |||||
y | ) |
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, | |||||
y | ) |
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, | |||||
y | ) |
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, | |||||
y | ) |
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 | ) |
#define vertex2tri | ( | vx | ) | ((triangle *) (vx))[m->vertex2triindex] |
#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 |
#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 |
#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 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.
enum finddirectionresult |
enum insertvertexresult |
Definition at line 382 of file triangle.cpp.
enum locateresult |
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
Definition at line 7049 of file triangle.cpp.
References mesh::firstnonemptyq, mesh::nextnonemptyq, badtriang::nexttriang, NULL, mesh::queuefront, and mesh::queuetail.
Referenced by enforcequality().
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:
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:
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:
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().
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().
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:
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:
Definition at line 4581 of file triangle.cpp.
References behavior::firstnumber, and VOID.
Referenced by formskeleton().
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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 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().
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().
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:
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:
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:
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:
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:
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:
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:
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:
Definition at line 4428 of file triangle.cpp.
References killsubseg, pooldealloc(), and VOID.
Referenced by plague().
Here is the call graph for this function:
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:
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:
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:
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:
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.
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:
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:
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:
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:
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:
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:
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:
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:
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:
REAL ccwerrboundA |
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 |
REAL iccerrboundA |
REAL iccerrboundB |
REAL iccerrboundC |
int minus1mod3[3] = {2, 0, 1} |
REAL o3derrboundA |
REAL o3derrboundB |
REAL o3derrboundC |
int plus1mod3[3] = {1, 2, 0} |
unsigned long randomseed |
REAL resulterrbound |
Definition at line 649 of file triangle.cpp.
Referenced by counterclockwiseadapt(), exactinit(), incircleadapt(), and orient3dadapt().
REAL splitter |