Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef qhDEFqhulla
00025 #define qhDEFqhulla 1
00026
00027 #include "libqhull.h"
00028
00029 #include "stat.h"
00030 #include "random.h"
00031 #include "mem.h"
00032 #include "qset.h"
00033 #include "geom.h"
00034 #include "merge.h"
00035 #include "poly.h"
00036 #include "io.h"
00037
00038 #include <setjmp.h>
00039 #include <string.h>
00040 #include <math.h>
00041 #include <float.h>
00042 #include <limits.h>
00043 #include <time.h>
00044 #include <ctype.h>
00045 #include <stdio.h>
00046 #include <stdlib.h>
00047
00048
00049
00050
00051
00052 #if qh_CLOCKtype == 2
00053 #include <sys/types.h>
00054 #include <sys/times.h>
00055 #include <unistd.h>
00056 #endif
00057
00058 #ifdef _MSC_VER
00059 #pragma warning( disable : 4100)
00060 #pragma warning( disable : 4127)
00061 #pragma warning( disable : 4706)
00062 #pragma warning( disable : 4996)
00063 #endif
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 #ifndef qh_NOtrace
00079 #define trace0(args) {if (qh IStracing) qh_fprintf args;}
00080 #define trace1(args) {if (qh IStracing >= 1) qh_fprintf args;}
00081 #define trace2(args) {if (qh IStracing >= 2) qh_fprintf args;}
00082 #define trace3(args) {if (qh IStracing >= 3) qh_fprintf args;}
00083 #define trace4(args) {if (qh IStracing >= 4) qh_fprintf args;}
00084 #define trace5(args) {if (qh IStracing >= 5) qh_fprintf args;}
00085 #else
00086 #define trace0(args) {}
00087 #define trace1(args) {}
00088 #define trace2(args) {}
00089 #define trace3(args) {}
00090 #define trace4(args) {}
00091 #define trace5(args) {}
00092 #endif
00093
00094
00095
00096
00097
00098
00099
00100 #if !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))
00101 # define QHULL_OS_WIN
00102 #elif defined(__MWERKS__) && defined(__INTEL__)
00103 # define QHULL_OS_WIN
00104 #endif
00105 #if defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN)
00106 template <typename T>
00107 inline void qhullUnused(T &x) { (void)x; }
00108 # define QHULL_UNUSED(x) qhullUnused(x);
00109 #else
00110 # define QHULL_UNUSED(x) (void)x;
00111 #endif
00112
00113
00114
00115 void qh_qhull(void);
00116 boolT qh_addpoint(pointT *furthest, facetT *facet, boolT checkdist);
00117 void qh_buildhull(void);
00118 void qh_buildtracing(pointT *furthest, facetT *facet);
00119 void qh_build_withrestart(void);
00120 void qh_errexit2(int exitcode, facetT *facet, facetT *otherfacet);
00121 void qh_findhorizon(pointT *point, facetT *facet, int *goodvisible,int *goodhorizon);
00122 pointT *qh_nextfurthest(facetT **visible);
00123 void qh_partitionall(setT *vertices, pointT *points,int npoints);
00124 void qh_partitioncoplanar(pointT *point, facetT *facet, realT *dist);
00125 void qh_partitionpoint(pointT *point, facetT *facet);
00126 void qh_partitionvisible(boolT allpoints, int *numpoints);
00127 void qh_precision(const char *reason);
00128 void qh_printsummary(FILE *fp);
00129
00130
00131
00132 void qh_appendprint(qh_PRINT format);
00133 void qh_freebuild(boolT allmem);
00134 void qh_freebuffers(void);
00135 void qh_initbuffers(coordT *points, int numpoints, int dim, boolT ismalloc);
00136
00137
00138
00139 void qh_allstatA(void);
00140 void qh_allstatB(void);
00141 void qh_allstatC(void);
00142 void qh_allstatD(void);
00143 void qh_allstatE(void);
00144 void qh_allstatE2 (void);
00145 void qh_allstatF(void);
00146 void qh_allstatG(void);
00147 void qh_allstatH(void);
00148 void qh_freebuffers(void);
00149 void qh_initbuffers(coordT *points, int numpoints, int dim, boolT ismalloc);
00150
00151 #endif