libmove3d
3.13.0
|
00001 /*<html><pre> -<a href="qh-qhull.htm" 00002 >-------------------------------</a><a name="TOP">-</a> 00003 00004 qhull_a.h 00005 all header files for compiling qhull 00006 00007 see qh-qhull.htm 00008 00009 see libqhull.h for user-level definitions 00010 00011 see user.h for user-defineable constants 00012 00013 defines internal functions for libqhull.c global.c 00014 00015 copyright (c) 1993-2010 The Geometry Center. 00016 $Id: //product/qhull/main/rel/src/qhull_a.h#27 $$Change: 1164 $ 00017 $DateTime: 2010/01/07 21:52:00 $$Author: bbarber $ 00018 00019 Notes: grep for ((" and (" to catch fprintf("lkasdjf"); 00020 full parens around (x?y:z) 00021 use '#include qhull/qhull_a.h' to avoid name clashes 00022 */ 00023 00024 #ifndef qhDEFqhulla 00025 #define qhDEFqhulla 1 00026 00027 #include "libqhull.h" /* Defines data types */ 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> /* some compilers will not need float.h */ 00042 #include <limits.h> 00043 #include <time.h> 00044 #include <ctype.h> 00045 #include <stdio.h> 00046 #include <stdlib.h> 00047 /*** uncomment here and qset.c 00048 if string.h does not define memcpy() 00049 #include <memory.h> 00050 */ 00051 00052 #if qh_CLOCKtype == 2 /* defined in user.h from libqhull.h */ 00053 #include <sys/types.h> 00054 #include <sys/times.h> 00055 #include <unistd.h> 00056 #endif 00057 00058 #ifdef _MSC_VER /* Microsoft Visual C++ -- warning level 4 */ 00059 #pragma warning( disable : 4100) /* unreferenced formal parameter */ 00060 #pragma warning( disable : 4127) /* conditional expression is constant */ 00061 #pragma warning( disable : 4706) /* assignment within conditional function */ 00062 #pragma warning( disable : 4996) /* function was declared deprecated(strcpy, localtime, etc.) */ 00063 #endif 00064 00065 /* ======= -macros- =========== */ 00066 00067 /*-<a href="qh-qhull.htm#TOC" 00068 >--------------------------------</a><a name="traceN">-</a> 00069 00070 traceN((qh ferr, 0Nnnn, "format\n", vars)); 00071 calls qh_fprintf if qh.IStracing >= N 00072 00073 Add debugging traps to the end of qh_fprintf 00074 00075 notes: 00076 removing tracing reduces code size but doesn't change execution speed 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 /* qh_NOtrace */ 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 /* qh_NOtrace */ 00093 00094 /*-<a href="qh-qhull.htm#TOC" 00095 >--------------------------------</a><a name="QHULL_UNUSED">-</a> 00096 00097 */ 00098 00099 /* See Qt's qglobal.h */ 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 /***** -libqhull.c prototypes (alphabetical after qhull) ********************/ 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 /***** -global.c internal prototypes (alphabetical) ***********************/ 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 /***** -stat.c internal prototypes (alphabetical) ***********************/ 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 /* qhDEFqhulla */