24 #define qhDEFlibqhull 1 43 #error Neither __STDC__ nor __cplusplus is defined. Please use strict ANSI C or C++ to compile 44 #error Qhull. You may need to turn off compiler extensions in your project configuration. If 45 #error your compiler is a standard C compiler, you can delete this warning from libqhull_r.h 97 #define flagT unsigned int 109 #define boolT unsigned int 169 #define qh_NOupper True 170 #define qh_IScheckmax True 171 #define qh_ISnewfacets True 172 #define qh_RESETvisible True 182 #define qh_ERRinput 1 183 #define qh_ERRsingular 2 186 #define qh_ERRqhull 5 195 #define qh_FILEstderr ((FILE*)1) 259 #if !qh_COMPUTEfurthest 309 #define qh_MAXnummerge 511 423 #define QHULL_NON_REENTRANT 0 424 #define QHULL_QH_POINTER 1 425 #define QHULL_REENTRANT 2 427 #define QHULL_LIB_TYPE QHULL_REENTRANT 429 #define QHULL_LIB_CHECK qh_lib_check(QHULL_LIB_TYPE, sizeof(qhT), sizeof(vertexT), sizeof(ridgeT), sizeof(facetT), sizeof(setT), sizeof(qhmemT)); 430 #define QHULL_LIB_CHECK_RBOX qh_lib_check(QHULL_LIB_TYPE, sizeof(qhT), sizeof(vertexT), sizeof(ridgeT), sizeof(facetT), 0, 0); 448 boolT ANNOTATEoutput;
455 boolT CHECKfrequently;
459 boolT DOintersections;
479 boolT MERGEindependent;
481 realT premerge_centrum;
482 realT postmerge_centrum;
501 boolT PRINTneighbors;
503 boolT PRINToptions1st;
505 boolT PRINTprecision;
509 boolT PRINTstatistics;
511 boolT PRINTtransparent;
512 boolT PROJECTdelaunay;
530 boolT SPLITthresholds;
537 boolT TESTvneighbors;
554 char *feasible_string;
557 boolT KEEPnearinside;
565 char qhull_command[256];
566 int qhull_commandsiz2;
567 char rbox_command[256];
568 char qhull_options[512];
571 int qhull_optionsiz2;
573 boolT VERTEXneighbors;
575 realT *upper_threshold;
578 realT *lower_threshold;
595 realT centrum_radius;
622 char qhull[
sizeof(
"qhull")];
653 unsigned tracefacet_id;
655 unsigned tracevertex_id;
679 unsigned long hulltime;
687 boolT hasTriangulation;
703 boolT findbest_notsharp;
713 unsigned int visit_id;
714 unsigned int vertex_visit;
725 setT *facet_mergeset;
726 setT *degen_mergeset;
760 boolT old_randomdist;
761 setT *coplanarfacetset;
798 #define otherfacet_(ridge, facet) \ 799 (((ridge)->top == (facet)) ? (ridge)->bottom : (ridge)->top) 808 #define getid_(p) ((p) ? (int)((p)->id) : qh_IDunknown) 826 #define FORALLfacets for (facet=qh->facet_list;facet && facet->next;facet=facet->next) 840 #define FORALLpoints FORALLpoint_(qh, qh->first_point, qh->num_points) 851 #define FORALLpoint_(qh, points, num) for (point= (points), \ 852 pointtemp= (points)+qh->hull_dim*(num); point < pointtemp; point += qh->hull_dim) 867 #define FORALLvertices for (vertex=qh->vertex_list;vertex && vertex->next;vertex= vertex->next) 881 #define FOREACHfacet_(facets) FOREACHsetelement_(facetT, facets, facet) 898 #define FOREACHneighbor_(facet) FOREACHsetelement_(facetT, facet->neighbors, neighbor) 912 #define FOREACHpoint_(points) FOREACHsetelement_(pointT, points, point) 926 #define FOREACHridge_(ridges) FOREACHsetelement_(ridgeT, ridges, ridge) 940 #define FOREACHvertex_(vertices) FOREACHsetelement_(vertexT, vertices,vertex) 955 #define FOREACHfacet_i_(qh, facets) FOREACHsetelement_i_(qh, facetT, facets, facet) 973 #define FOREACHneighbor_i_(qh, facet) FOREACHsetelement_i_(qh, facetT, facet->neighbors, neighbor) 988 #define FOREACHpoint_i_(qh, points) FOREACHsetelement_i_(qh, pointT, points, point) 1003 #define FOREACHridge_i_(qh, ridges) FOREACHsetelement_i_(qh, ridgeT, ridges, ridge) 1018 #define FOREACHvertex_i_(qh, vertices) FOREACHsetelement_i_(qh, vertexT, vertices,vertex) 1031 char *qhull_cmd, FILE *outfile, FILE *errfile);
1052 realT *dist,
boolT *isoutside,
int *numpart);
1072 void qh_init_A(
qhT *
qh, FILE *infile, FILE *outfile, FILE *errfile,
int argc,
char *argv[]);
1084 void qh_lib_check(
int qhullLibraryType,
int qhTsize,
int vertexTsize,
int ridgeTsize,
int facetTsize,
int setTsize,
int qhmemTsize);
void qh_setdelaunay(qhT *qh, int dim, int count, pointT *points)
void qh_dfacet(qhT *qh, unsigned id)
void qh_rotateinput(qhT *qh, realT **rows)
void qh_initqhull_mem(qhT *qh)
facetT * qh_findbestnew(qhT *qh, pointT *point, facetT *startfacet, realT *dist, boolT bestoutside, boolT *isoutside, int *numpart)
void qh_initbuffers(qhT *qh, coordT *points, int numpoints, int dim, boolT ismalloc)
void qh_checkflags(qhT *qh, char *command, char *hiddenflags)
void qh_printhelp_narrowhull(qhT *qh, FILE *fp, realT minangle)
int qh_rboxpoints(qhT *qh, char *rbox_command)
void qh_fprintf_stderr(int msgcode, const char *fmt,...)
facetT * qh_findbestfacet(qhT *qh, pointT *point, boolT bestoutside, realT *bestdist, boolT *isoutside)
void qh_outerinner(qhT *qh, facetT *facet, realT *outerplane, realT *innerplane)
void qh_initqhull_buffers(qhT *qh)
void qh_scaleinput(qhT *qh)
void qh_initqhull_outputflags(qhT *qh)
void qh_freeqhull(qhT *qh, boolT allmem)
void qh_fprintf(qhT *qh, FILE *fp, int msgcode, const char *fmt,...)
void qh_user_memsizes(qhT *qh)
void qh_init_qhull_command(qhT *qh, int argc, char *argv[])
void qh_lib_check(int qhullLibraryType, int qhTsize, int vertexTsize, int ridgeTsize, int facetTsize, int setTsize, int qhmemTsize)
void qh_initqhull_start2(qhT *qh, FILE *infile, FILE *outfile, FILE *errfile)
boolT qh_addpoint(qhT *qh, pointT *furthest, facetT *facet, boolT checkdist)
void qh_errexit(qhT *qh, int exitcode, facetT *facet, ridgeT *ridge)
pointT * qh_point(qhT *qh, int id)
void qh_printhelp_singular(qhT *qh, FILE *fp)
void qh_check_points(qhT *qh)
void qh_dvertex(qhT *qh, unsigned id)
void qh_option(qhT *qh, const char *option, int *i, realT *r)
setT * qh_facetvertices(qhT *qh, facetT *facetlist, setT *facets, boolT allfacets)
void qh_collectstatistics(qhT *qh)
void qh_produce_output(qhT *qh)
void qh_meminit(qhT *qh, FILE *ferr)
unsigned long qh_clock(qhT *qh)
void qh_setvoronoi_all(qhT *qh)
void qh_freebuffers(qhT *qh)
int qh_pointid(qhT *qh, pointT *point)
void qh_memfreeshort(qhT *qh, int *curlong, int *totlong)
void qh_exit(int exitcode)
void qh_projectinput(qhT *qh)
void qh_printhelp_degenerate(qhT *qh, FILE *fp)
void qh_initflags(qhT *qh, char *command)
void qh_clear_outputflags(qhT *qh)
facetT * qh_findbest(qhT *qh, pointT *point, facetT *startfacet, boolT bestoutside, boolT newfacets, boolT noupper, realT *dist, boolT *isoutside, int *numpart)
void qh_triangulate(qhT *qh)
boolT qh_gram_schmidt(qhT *qh, int dim, realT **rows)
void qh_printneighborhood(qhT *qh, FILE *fp, qh_PRINT format, facetT *facetA, facetT *facetB, boolT printall)
void * qh_malloc(size_t size)
int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc, char *qhull_cmd, FILE *outfile, FILE *errfile)
void qh_check_output(qhT *qh)
void qh_fprintf_rbox(qhT *qh, FILE *fp, int msgcode, const char *fmt,...)
void qh_initthresholds(qhT *qh, char *command)
vertexT * qh_nearvertex(qhT *qh, facetT *facet, pointT *point, realT *bestdistp)
void qh_errprint(qhT *qh, const char *string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex)
void qh_zero(qhT *qh, FILE *errfile)
coordT * qh_readpoints(qhT *qh, int *numpoints, int *dimension, boolT *ismalloc)
setT * qh_pointvertex(qhT *qh)
void qh_init_B(qhT *qh, coordT *points, int numpoints, int dim, boolT ismalloc)
void qh_printallstatistics(qhT *qh, FILE *fp, const char *string)
void qh_init_A(qhT *qh, FILE *infile, FILE *outfile, FILE *errfile, int argc, char *argv[])
void qh_errexit_rbox(qhT *qh, int exitcode)
setT * qh_pointfacet(qhT *qh)
void qh_initqhull_globals(qhT *qh, coordT *points, int numpoints, int dim, boolT ismalloc)
coordT * qh_sethalfspace_all(qhT *qh, int dim, int count, coordT *halfspaces, pointT *feasible)
void qh_initqhull_start(qhT *qh, FILE *infile, FILE *outfile, FILE *errfile)
void qh_printsummary(qhT *qh, FILE *fp)
void qh_printfacetlist(qhT *qh, facetT *facetlist, setT *facets, boolT printall)
void qh_randommatrix(qhT *qh, realT *buffer, int dim, realT **row)