1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/*<html><pre> -<a href="qh-qhull_r.htm"
>-------------------------------</a><a name="TOP">-</a>
qhull_ra.h
all header files for compiling qhull with reentrant code
included before C++ headers for user_r.h:QHULL_CRTDBG
see qh-qhull.htm
see libqhull_r.h for user-level definitions
see user_r.h for user-definable constants
defines internal functions for libqhull_r.c global_r.c
Copyright (c) 1993-2020 The Geometry Center.
$Id: //main/2019/qhull/src/libqhull_r/qhull_ra.h#2 $$Change: 2953 $
$DateTime: 2020/05/21 22:05:32 $$Author: bbarber $
Notes: grep for ((" and (" to catch fprintf("lkasdjf");
full parens around (x?y:z)
use '#include "libqhull_r/qhull_ra.h"' to avoid name clashes
*/
#ifndef qhDEFqhulla
#define qhDEFqhulla 1
#include "libqhull_r.h" /* Includes user_r.h and data types */
#include "stat_r.h"
#include "random_r.h"
#include "mem_r.h"
#include "qset_r.h"
#include "geom_r.h"
#include "merge_r.h"
#include "poly_r.h"
#include "io_r.h"
#include <setjmp.h>
#include <string.h>
#include <math.h>
#include <float.h> /* some compilers will not need float.h */
#include <limits.h>
#include <time.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
/*** uncomment here and qset_r.c
if string.h does not define memcpy()
#include <memory.h>
*/
#if qh_CLOCKtype == 2 /* defined in user_r.h from libqhull_r.h */
#include <sys/types.h>
#include <sys/times.h>
#include <unistd.h>
#endif
#ifdef _MSC_VER /* Microsoft Visual C++ -- warning level 4 */
#pragma warning( disable : 4100) /* unreferenced formal parameter */
#pragma warning( disable : 4127) /* conditional expression is constant */
#pragma warning( disable : 4706) /* assignment within conditional function */
#pragma warning( disable : 4996) /* function was declared deprecated(strcpy, localtime, etc.) */
#endif
/* ======= -macros- =========== */
/*-<a href="qh-qhull_r.htm#TOC"
>--------------------------------</a><a name="traceN">-</a>
traceN((qh, qh->ferr, 0Nnnn, "format\n", vars));
calls qh_fprintf if qh.IStracing >= N
Add debugging traps to the end of qh_fprintf
notes:
removing tracing reduces code size but doesn't change execution speed
*/
#ifndef qh_NOtrace
#define trace0(args) {if (qh->IStracing) qh_fprintf args;}
#define trace1(args) {if (qh->IStracing >= 1) qh_fprintf args;}
#define trace2(args) {if (qh->IStracing >= 2) qh_fprintf args;}
#define trace3(args) {if (qh->IStracing >= 3) qh_fprintf args;}
#define trace4(args) {if (qh->IStracing >= 4) qh_fprintf args;}
#define trace5(args) {if (qh->IStracing >= 5) qh_fprintf args;}
#else /* qh_NOtrace */
#define trace0(args) {}
#define trace1(args) {}
#define trace2(args) {}
#define trace3(args) {}
#define trace4(args) {}
#define trace5(args) {}
#endif /* qh_NOtrace */
/*-<a href="qh-qhull_r.htm#TOC"
>--------------------------------</a><a name="QHULL_UNUSED">-</a>
Define an unused variable to avoid compiler warnings
Derived from Qt's corelib/global/qglobal.h
*/
#if defined(__cplusplus) && defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN)
template <typename T>
inline void qhullUnused(T &x) { (void)x; }
# define QHULL_UNUSED(x) qhullUnused(x);
#else
# define QHULL_UNUSED(x) (void)x;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***** -libqhull_r.c prototypes (alphabetical after qhull) ********************/
void qh_qhull(qhT *qh);
boolT qh_addpoint(qhT *qh, pointT *furthest, facetT *facet, boolT checkdist);
void qh_build_withrestart(qhT *qh);
vertexT *qh_buildcone(qhT *qh, pointT *furthest, facetT *facet, int goodhorizon, facetT **retryfacet);
boolT qh_buildcone_mergepinched(qhT *qh, vertexT *apex, facetT *facet, facetT **retryfacet);
boolT qh_buildcone_onlygood(qhT *qh, vertexT *apex, int goodhorizon);
void qh_buildhull(qhT *qh);
void qh_buildtracing(qhT *qh, pointT *furthest, facetT *facet);
void qh_errexit2(qhT *qh, int exitcode, facetT *facet, facetT *otherfacet);
void qh_findhorizon(qhT *qh, pointT *point, facetT *facet, int *goodvisible,int *goodhorizon);
pointT *qh_nextfurthest(qhT *qh, facetT **visible);
void qh_partitionall(qhT *qh, setT *vertices, pointT *points,int npoints);
void qh_partitioncoplanar(qhT *qh, pointT *point, facetT *facet, realT *dist, boolT allnew);
void qh_partitionpoint(qhT *qh, pointT *point, facetT *facet);
void qh_partitionvisible(qhT *qh, boolT allpoints, int *numpoints);
void qh_joggle_restart(qhT *qh, const char *reason);
void qh_printsummary(qhT *qh, FILE *fp);
/***** -global_r.c internal prototypes (alphabetical) ***********************/
void qh_appendprint(qhT *qh, qh_PRINT format);
void qh_freebuild(qhT *qh, boolT allmem);
void qh_freebuffers(qhT *qh);
void qh_initbuffers(qhT *qh, coordT *points, int numpoints, int dim, boolT ismalloc);
/***** -stat_r.c internal prototypes (alphabetical) ***********************/
void qh_allstatA(qhT *qh);
void qh_allstatB(qhT *qh);
void qh_allstatC(qhT *qh);
void qh_allstatD(qhT *qh);
void qh_allstatE(qhT *qh);
void qh_allstatE2(qhT *qh);
void qh_allstatF(qhT *qh);
void qh_allstatG(qhT *qh);
void qh_allstatH(qhT *qh);
void qh_freebuffers(qhT *qh);
void qh_initbuffers(qhT *qh, coordT *points, int numpoints, int dim, boolT ismalloc);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* qhDEFqhulla */
|