GDAL

internal_qhull_headers.h
1 /******************************************************************************
2 * $Id$
3 *
4 * Project: GDAL
5 * Purpose: Includes internal qhull headers
6 * Author: Even Rouault <even dot rouault at spatialys dot com>
7 *
8 ******************************************************************************
9 * Copyright (c) 2015, Even Rouault <even dot rouault at spatialys dot com>
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a
12 * copy of this software and associated documentation files (the "Software"),
13 * to deal in the Software without restriction, including without limitation
14 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15 * and/or sell copies of the Software, and to permit persons to whom the
16 * Software is furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included
19 * in all copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27 * DEALINGS IN THE SOFTWARE.
28 *****************************************************************************/
29
30 #ifndef INTERNAL_QHULL_HEADERS_H
31 #define INTERNAL_QHULL_HEADERS_H
32
33 #ifdef HAVE_GCC_SYSTEM_HEADER
34 #pragma GCC system_header
35 #endif
36
37 #if defined(__MINGW64__)
38 /* See https://github.com/scipy/scipy/issues/3237 */
39 /* This ensures that ptr_intT is a long lon on MinGW 64 */
40 #define _MSC_VER 1
41 #endif
42
43 // To avoid issue with icc that defines a template in qhull_a.h
44 #if defined(__INTEL_COMPILER)
45 #define QHULL_OS_WIN
46 #endif
47
48 #ifndef DEFqhT
49 #define DEFqhT 1
50 typedef struct qhT qhT; /* defined below */
51 #endif
52 #define gdal_qhT qhT
53
54 /* Below a lot of renames and static definition of the symbols so as */
55 /* to avoid "contaminating" with a potential external qhull */
56 typedef struct setT gdal_setT;
57 typedef struct facetT gdal_facetT;
58 typedef struct vertexT gdal_vertexT;
59 typedef struct qhT gdal_qhT;
60 typedef struct ridgeT gdal_ridgeT;
61 typedef struct mergeT gdal_mergeT;
62
63 #define gdal_realT double
64 #define gdal_pointT double
65 #define gdal_realT double
66 #define gdal_coordT double
67 #define gdal_boolT unsigned int
68
69 #define qhmem gdal_qhmem
70 #define qh_rand_seed gdal_qh_rand_seed
71 #define qh_qh gdal_qh_qh
72 #define qh_qhstat gdal_qh_qhstat
73 #define qh_version gdal_qh_version
74 #define qhull_inuse gdal_qhull_inuse
75
76 #define qh_intcompare gdal_qh_intcompare
77
78 #ifdef notdef
79
80 Generated by the following Python script + manual cleaning of the result
81
82 f = open('headers.txt')
83 for line in f.readlines():
84 line = line[0:-1].strip()
85 if len(line) > 3 and line[0] != '#' and (line[-2:] == ');' or line[-1:] == ',') and \
86 line.find('(') > 0 and line.find('=') < 0 and line.find('typedef') < 0 and line.find('are used by') < 0 and \
87 line.find('&') < 0 and line.find('"') < 0 and line.find(' ') < line.find('('):
88 line = line[0:line.find('(')].strip()
89 last_star = line.rfind('*')
90 last_space = line.rfind(' ')
91 if last_star > last_space:
92 (type, name) = (line[0:last_star+1], line[last_star+1:])
93 else:
94 (type, name) = (line[0:last_space], line[last_space+1:])
95 type = type.strip()
96 print('#define %s gdal_%s' % (name, name))
97 if type.find('void') != 0 and type.find('int') != 0 and type.find('char') != 0 and type.find('double') != 0 and type.find('unsigned') != 0:
98 type = 'gdal_' + type
99 print("static %s %s();" % (type, name))
100 #endif
101
102 #define qh_backnormal gdal_qh_backnormal
103 static void qh_backnormal();
104 #define qh_distplane gdal_qh_distplane
105 static void qh_distplane();
106 #define qh_findbest gdal_qh_findbest
107 static gdal_facetT * qh_findbest();
108 #define qh_findbesthorizon gdal_qh_findbesthorizon
109 static gdal_facetT * qh_findbesthorizon();
110 #define qh_findbestnew gdal_qh_findbestnew
111 static gdal_facetT * qh_findbestnew();
112 #define qh_gausselim gdal_qh_gausselim
113 static void qh_gausselim();
114 #define qh_getangle gdal_qh_getangle
115 static gdal_realT qh_getangle();
116 #define qh_getcenter gdal_qh_getcenter
117 static gdal_pointT * qh_getcenter();
118 #define qh_getcentrum gdal_qh_getcentrum
119 static gdal_pointT * qh_getcentrum();
120 #define qh_getdistance gdal_qh_getdistance
121 static gdal_realT qh_getdistance();
122 #define qh_normalize gdal_qh_normalize
123 static void qh_normalize();
124 #define qh_normalize2 gdal_qh_normalize2
125 static void qh_normalize2();
126 #define qh_projectpoint gdal_qh_projectpoint
127 static gdal_pointT * qh_projectpoint();
128 #define qh_setfacetplane gdal_qh_setfacetplane
129 static void qh_setfacetplane();
130 #define qh_sethyperplane_det gdal_qh_sethyperplane_det
131 static void qh_sethyperplane_det();
132 #define qh_sethyperplane_gauss gdal_qh_sethyperplane_gauss
133 static void qh_sethyperplane_gauss();
134 #define qh_sharpnewfacets gdal_qh_sharpnewfacets
135 static gdal_boolT qh_sharpnewfacets();
136 #define qh_copypoints gdal_qh_copypoints
137 static gdal_coordT * qh_copypoints();
138 #define qh_crossproduct gdal_qh_crossproduct
139 static void qh_crossproduct();
140 #define qh_determinant gdal_qh_determinant
141 static gdal_realT qh_determinant();
142 #define qh_detjoggle gdal_qh_detjoggle
143 static gdal_realT qh_detjoggle();
144 #define qh_detroundoff gdal_qh_detroundoff
145 static void qh_detroundoff();
146 #define qh_detsimplex gdal_qh_detsimplex
147 static gdal_realT qh_detsimplex();
148 #define qh_distnorm gdal_qh_distnorm
149 static gdal_realT qh_distnorm();
150 #define qh_distround gdal_qh_distround
151 static gdal_realT qh_distround();
152 #define qh_divzero gdal_qh_divzero
153 static gdal_realT qh_divzero();
154 #define qh_facetarea gdal_qh_facetarea
155 static gdal_realT qh_facetarea();
156 #define qh_facetarea_simplex gdal_qh_facetarea_simplex
157 static gdal_realT qh_facetarea_simplex();
158 #define qh_facetcenter gdal_qh_facetcenter
159 static gdal_pointT * qh_facetcenter();
160 #define qh_findgooddist gdal_qh_findgooddist
161 static gdal_facetT * qh_findgooddist();
162 #define qh_getarea gdal_qh_getarea
163 static void qh_getarea();
164 #define qh_gram_schmidt gdal_qh_gram_schmidt
165 static gdal_boolT qh_gram_schmidt();
166 #define qh_inthresholds gdal_qh_inthresholds
167 static gdal_boolT qh_inthresholds();
168 #define qh_joggleinput gdal_qh_joggleinput
169 static void qh_joggleinput();
170 #define qh_maxabsval gdal_qh_maxabsval
171 static gdal_realT * qh_maxabsval();
172 #define qh_maxmin gdal_qh_maxmin
173 static gdal_setT * qh_maxmin();
174 #define qh_maxouter gdal_qh_maxouter
175 static gdal_realT qh_maxouter();
176 #define qh_maxsimplex gdal_qh_maxsimplex
177 static void qh_maxsimplex();
178 #define qh_minabsval gdal_qh_minabsval
179 static gdal_realT qh_minabsval();
180 #define qh_mindiff gdal_qh_mindiff
181 static int qh_mindiff();
182 #define qh_orientoutside gdal_qh_orientoutside
183 static gdal_boolT qh_orientoutside();
184 #define qh_outerinner gdal_qh_outerinner
185 static void qh_outerinner();
186 #define qh_pointdist gdal_qh_pointdist
187 static gdal_coordT qh_pointdist();
188 #define qh_printmatrix gdal_qh_printmatrix
189 static void qh_printmatrix();
190 #define qh_printpoints gdal_qh_printpoints
191 static void qh_printpoints();
192 #define qh_projectinput gdal_qh_projectinput
193 static void qh_projectinput();
194 #define qh_projectpoints gdal_qh_projectpoints
195 static void qh_projectpoints();
196 #define qh_rotateinput gdal_qh_rotateinput
197 static void qh_rotateinput();
198 #define qh_rotatepoints gdal_qh_rotatepoints
199 static void qh_rotatepoints();
200 #define qh_scaleinput gdal_qh_scaleinput
201 static void qh_scaleinput();
202 #define qh_scalelast gdal_qh_scalelast
203 static void qh_scalelast();
204 #define qh_scalepoints gdal_qh_scalepoints
205 static void qh_scalepoints();
206 #define qh_sethalfspace gdal_qh_sethalfspace
207 static gdal_boolT qh_sethalfspace();
208 #define qh_sethalfspace_all gdal_qh_sethalfspace_all
209 static gdal_coordT * qh_sethalfspace_all();
210 #define qh_voronoi_center gdal_qh_voronoi_center
211 static gdal_pointT * qh_voronoi_center();
212 #define qh_dfacet gdal_qh_dfacet
213 static void qh_dfacet();
214 #define qh_dvertex gdal_qh_dvertex
215 static void qh_dvertex();
216 #define qh_compare_facetarea gdal_qh_compare_facetarea
217 static int qh_compare_facetarea();
218 #define qh_compare_facetmerge gdal_qh_compare_facetmerge
219 static int qh_compare_facetmerge();
220 #define qh_compare_facetvisit gdal_qh_compare_facetvisit
221 static int qh_compare_facetvisit();
222 #define qh_copyfilename gdal_qh_copyfilename
223 static void qh_copyfilename();
224 #define qh_countfacets gdal_qh_countfacets
225 static void qh_countfacets();
226 #define qh_detvnorm gdal_qh_detvnorm
227 static gdal_pointT * qh_detvnorm();
228 #define qh_detvridge gdal_qh_detvridge
229 static gdal_setT * qh_detvridge();
230 #define qh_detvridge3 gdal_qh_detvridge3
231 static gdal_setT * qh_detvridge3();
232 #define qh_eachvoronoi gdal_qh_eachvoronoi
233 static int qh_eachvoronoi();
234 #define qh_eachvoronoi_all gdal_qh_eachvoronoi_all
235 static int qh_eachvoronoi_all();
236 #define qh_facet2point gdal_qh_facet2point
237 static void qh_facet2point();
238 #define qh_facetvertices gdal_qh_facetvertices
239 static gdal_setT * qh_facetvertices();
240 #define qh_geomplanes gdal_qh_geomplanes
241 static void qh_geomplanes();
242 #define qh_markkeep gdal_qh_markkeep
243 static void qh_markkeep();
244 #define qh_markvoronoi gdal_qh_markvoronoi
245 static gdal_setT * qh_markvoronoi();
246 #define qh_order_vertexneighbors gdal_qh_order_vertexneighbors
247 static void qh_order_vertexneighbors();
248 #define qh_prepare_output gdal_qh_prepare_output
249 static void qh_prepare_output();
250 #define qh_printafacet gdal_qh_printafacet
251 static void qh_printafacet();
252 #define qh_printbegin gdal_qh_printbegin
253 static void qh_printbegin();
254 #define qh_printcenter gdal_qh_printcenter
255 static void qh_printcenter();
256 #define qh_printcentrum gdal_qh_printcentrum
257 static void qh_printcentrum();
258 #define qh_printend gdal_qh_printend
259 static void qh_printend();
260 #define qh_printend4geom gdal_qh_printend4geom
261 static void qh_printend4geom();
262 #define qh_printextremes gdal_qh_printextremes
263 static void qh_printextremes();
264 #define qh_printextremes_2d gdal_qh_printextremes_2d
265 static void qh_printextremes_2d();
266 #define qh_printextremes_d gdal_qh_printextremes_d
267 static void qh_printextremes_d();
268 #define qh_printfacet gdal_qh_printfacet
269 static void qh_printfacet();
270 #define qh_printfacet2math gdal_qh_printfacet2math
271 static void qh_printfacet2math();
272 #define qh_printfacet2geom gdal_qh_printfacet2geom
273 static void qh_printfacet2geom();
274 #define qh_printfacet2geom_points gdal_qh_printfacet2geom_points
275 static void qh_printfacet2geom_points();
276 #define qh_printfacet3math gdal_qh_printfacet3math
277 static void qh_printfacet3math();
278 #define qh_printfacet3geom_nonsimplicial gdal_qh_printfacet3geom_nonsimplicial
279 static void qh_printfacet3geom_nonsimplicial();
280 #define qh_printfacet3geom_points gdal_qh_printfacet3geom_points
281 static void qh_printfacet3geom_points();
282 #define qh_printfacet3geom_simplicial gdal_qh_printfacet3geom_simplicial
283 static void qh_printfacet3geom_simplicial();
284 #define qh_printfacet3vertex gdal_qh_printfacet3vertex
285 static void qh_printfacet3vertex();
286 #define qh_printfacet4geom_nonsimplicial gdal_qh_printfacet4geom_nonsimplicial
287 static void qh_printfacet4geom_nonsimplicial();
288 #define qh_printfacet4geom_simplicial gdal_qh_printfacet4geom_simplicial
289 static void qh_printfacet4geom_simplicial();
290 #define qh_printfacetNvertex_nonsimplicial gdal_qh_printfacetNvertex_nonsimplicial
291 static void qh_printfacetNvertex_nonsimplicial();
292 #define qh_printfacetNvertex_simplicial gdal_qh_printfacetNvertex_simplicial
293 static void qh_printfacetNvertex_simplicial();
294 #define qh_printfacetheader gdal_qh_printfacetheader
295 static void qh_printfacetheader();
296 #define qh_printfacetridges gdal_qh_printfacetridges
297 static void qh_printfacetridges();
298 #define qh_printfacets gdal_qh_printfacets
299 static void qh_printfacets();
300 #define qh_printhyperplaneintersection gdal_qh_printhyperplaneintersection
301 static void qh_printhyperplaneintersection();
302 #define qh_printneighborhood gdal_qh_printneighborhood
303 static void qh_printneighborhood();
304 #define qh_printline3geom gdal_qh_printline3geom
305 static void qh_printline3geom();
306 #define qh_printpoint gdal_qh_printpoint
307 static void qh_printpoint();
308 #define qh_printpointid gdal_qh_printpointid
309 static void qh_printpointid();
310 #define qh_printpoint3 gdal_qh_printpoint3
311 static void qh_printpoint3();
312 #define qh_printpoints_out gdal_qh_printpoints_out
313 static void qh_printpoints_out();
314 #define qh_printpointvect gdal_qh_printpointvect
315 static void qh_printpointvect();
316 #define qh_printpointvect2 gdal_qh_printpointvect2
317 static void qh_printpointvect2();
318 #define qh_printridge gdal_qh_printridge
319 static void qh_printridge();
320 #define qh_printspheres gdal_qh_printspheres
321 static void qh_printspheres();
322 #define qh_printvdiagram gdal_qh_printvdiagram
323 static void qh_printvdiagram();
324 #define qh_printvdiagram2 gdal_qh_printvdiagram2
325 static int qh_printvdiagram2();
326 #define qh_printvertex gdal_qh_printvertex
327 static void qh_printvertex();
328 #define qh_printvertexlist gdal_qh_printvertexlist
329 static void qh_printvertexlist();
330 #define qh_printvertices gdal_qh_printvertices
331 static void qh_printvertices();
332 #define qh_printvneighbors gdal_qh_printvneighbors
333 static void qh_printvneighbors();
334 #define qh_printvoronoi gdal_qh_printvoronoi
335 static void qh_printvoronoi();
336 #define qh_printvnorm gdal_qh_printvnorm
337 static void qh_printvnorm();
338 #define qh_printvridge gdal_qh_printvridge
339 static void qh_printvridge();
340 #define qh_produce_output gdal_qh_produce_output
341 static void qh_produce_output();
342 #define qh_produce_output2 gdal_qh_produce_output2
343 static void qh_produce_output2();
344 #define qh_projectdim3 gdal_qh_projectdim3
345 static void qh_projectdim3();
346 #define qh_readfeasible gdal_qh_readfeasible
347 static int qh_readfeasible();
348 #define qh_readpoints gdal_qh_readpoints
349 static gdal_coordT * qh_readpoints();
350 #define qh_setfeasible gdal_qh_setfeasible
351 static void qh_setfeasible();
352 #define qh_skipfacet gdal_qh_skipfacet
353 static gdal_boolT qh_skipfacet();
354 #define qh_skipfilename gdal_qh_skipfilename
355 static char * qh_skipfilename();
356 #define qh_qhull gdal_qh_qhull
357 static void qh_qhull();
358 #define qh_addpoint gdal_qh_addpoint
359 static gdal_boolT qh_addpoint();
360 #define qh_printsummary gdal_qh_printsummary
361 static void qh_printsummary();
362 #define qh_errexit gdal_qh_errexit
363 static void qh_errexit();
364 #define qh_errprint gdal_qh_errprint
365 static void qh_errprint();
366 #define qh_new_qhull gdal_qh_new_qhull
367 static int qh_new_qhull();
368 #define qh_printfacetlist gdal_qh_printfacetlist
369 static void qh_printfacetlist();
370 #define qh_printhelp_degenerate gdal_qh_printhelp_degenerate
371 static void qh_printhelp_degenerate();
372 #define qh_printhelp_narrowhull gdal_qh_printhelp_narrowhull
373 static void qh_printhelp_narrowhull();
374 #define qh_printhelp_singular gdal_qh_printhelp_singular
375 static void qh_printhelp_singular();
376 #define qh_user_memsizes gdal_qh_user_memsizes
377 static void qh_user_memsizes();
378 #define qh_exit gdal_qh_exit
379 static void qh_exit();
380 #define qh_free gdal_qh_free
381 static void qh_free();
382 #define qh_malloc gdal_qh_malloc
383 static void * qh_malloc();
384 #define qh_fprintf gdal_qh_fprintf
385 static void qh_fprintf(qhT *qh, FILE *fp, int msgcode, const char *fmt, ... );
386 /*#define qh_fprintf_rbox gdal_qh_fprintf_rbox*/
387 /*static void qh_fprintf_rbox(qhT *qh, FILE *fp, int msgcode, const char *fmt, ... );*/
388 #define qh_findbest gdal_qh_findbest
389 static gdal_facetT * qh_findbest();
390 #define qh_findbestnew gdal_qh_findbestnew
391 static gdal_facetT * qh_findbestnew();
392 #define qh_gram_schmidt gdal_qh_gram_schmidt
393 static gdal_boolT qh_gram_schmidt();
394 #define qh_outerinner gdal_qh_outerinner
395 static void qh_outerinner();
396 #define qh_printsummary gdal_qh_printsummary
397 static void qh_printsummary();
398 #define qh_projectinput gdal_qh_projectinput
399 static void qh_projectinput();
400 #define qh_randommatrix gdal_qh_randommatrix
401 static void qh_randommatrix();
402 #define qh_rotateinput gdal_qh_rotateinput
403 static void qh_rotateinput();
404 #define qh_scaleinput gdal_qh_scaleinput
405 static void qh_scaleinput();
406 #define qh_setdelaunay gdal_qh_setdelaunay
407 static void qh_setdelaunay();
408 #define qh_sethalfspace_all gdal_qh_sethalfspace_all
409 static gdal_coordT * qh_sethalfspace_all();
410 #define qh_clock gdal_qh_clock
411 static unsigned long qh_clock();
412 #define qh_checkflags gdal_qh_checkflags
413 static void qh_checkflags();
414 #define qh_clear_outputflags gdal_qh_clear_outputflags
415 static void qh_clear_outputflags();
416 #define qh_freebuffers gdal_qh_freebuffers
417 static void qh_freebuffers();
418 #define qh_freeqhull gdal_qh_freeqhull
419 static void qh_freeqhull();
420 #define qh_init_A gdal_qh_init_A
421 static void qh_init_A();
422 #define qh_init_B gdal_qh_init_B
423 static void qh_init_B();
424 #define qh_init_qhull_command gdal_qh_init_qhull_command
425 static void qh_init_qhull_command();
426 /*#define qh_initbuffers gdal_qh_initbuffers*/
427 /*static void qh_initbuffers();*/
428 #define qh_initflags gdal_qh_initflags
429 static void qh_initflags();
430 #define qh_initqhull_buffers gdal_qh_initqhull_buffers
431 static void qh_initqhull_buffers();
432 #define qh_initqhull_globals gdal_qh_initqhull_globals
433 static void qh_initqhull_globals();
434 #define qh_initqhull_mem gdal_qh_initqhull_mem
435 static void qh_initqhull_mem();
436 #define qh_initqhull_outputflags gdal_qh_initqhull_outputflags
437 static void qh_initqhull_outputflags();
438 #define qh_initqhull_start gdal_qh_initqhull_start
439 static void qh_initqhull_start();
440 #define qh_initqhull_start2 gdal_qh_initqhull_start2
441 static void qh_initqhull_start2();
442 #define qh_initthresholds gdal_qh_initthresholds
443 static void qh_initthresholds();
444 #define qh_option gdal_qh_option
445 static void qh_option();
446 /*#define qh_restore_qhull gdal_qh_restore_qhull*/
447 /*static void qh_restore_qhull();*/
448 /*#define qh_save_qhull gdal_qh_save_qhull*/
449 /*static gdal_qhT * qh_save_qhull();*/
450 #define qh_dfacet gdal_qh_dfacet
451 static void qh_dfacet();
452 #define qh_dvertex gdal_qh_dvertex
453 static void qh_dvertex();
454 #define qh_printneighborhood gdal_qh_printneighborhood
455 static void qh_printneighborhood();
456 #define qh_produce_output gdal_qh_produce_output
457 static void qh_produce_output();
458 #define qh_readpoints gdal_qh_readpoints
459 static gdal_coordT * qh_readpoints();
460 #define qh_meminit gdal_qh_meminit
461 static void qh_meminit();
462 #define qh_memfreeshort gdal_qh_memfreeshort
463 static void qh_memfreeshort();
464 #define qh_check_output gdal_qh_check_output
465 static void qh_check_output();
466 #define qh_check_points gdal_qh_check_points
467 static void qh_check_points();
468 #define qh_facetvertices gdal_qh_facetvertices
469 static gdal_setT * qh_facetvertices();
470 #define qh_findbestfacet gdal_qh_findbestfacet
471 static gdal_facetT * qh_findbestfacet();
472 #define qh_nearvertex gdal_qh_nearvertex
473 static gdal_vertexT * qh_nearvertex();
474 #define qh_point gdal_qh_point
475 static gdal_pointT * qh_point();
476 #define qh_pointfacet gdal_qh_pointfacet
477 static gdal_setT * qh_pointfacet();
478 #define qh_pointid gdal_qh_pointid
479 static int qh_pointid();
480 #define qh_pointvertex gdal_qh_pointvertex
481 static gdal_setT * qh_pointvertex();
482 #define qh_setvoronoi_all gdal_qh_setvoronoi_all
483 static void qh_setvoronoi_all();
484 #define qh_triangulate gdal_qh_triangulate
485 static void qh_triangulate();
486 /*#define qh_rboxpoints gdal_qh_rboxpoints*/
487 /*static int qh_rboxpoints();*/
488 /*#define qh_errexit_rbox gdal_qh_errexit_rbox*/
489 /*static void qh_errexit_rbox();*/
490 #define qh_collectstatistics gdal_qh_collectstatistics
491 static void qh_collectstatistics();
492 #define qh_printallstatistics gdal_qh_printallstatistics
493 static void qh_printallstatistics();
494 /*#define machines gdal_machines*/
495 /*static gdal_of machines();*/
496 #define qh_memalloc gdal_qh_memalloc
497 static void * qh_memalloc();
498 #define qh_memfree gdal_qh_memfree
499 static void qh_memfree();
500 #define qh_memfreeshort gdal_qh_memfreeshort
501 static void qh_memfreeshort();
502 #define qh_meminit gdal_qh_meminit
503 static void qh_meminit();
504 #define qh_meminitbuffers gdal_qh_meminitbuffers
505 static void qh_meminitbuffers();
506 #define qh_memsetup gdal_qh_memsetup
507 static void qh_memsetup();
508 #define qh_memsize gdal_qh_memsize
509 static void qh_memsize();
510 #define qh_memstatistics gdal_qh_memstatistics
511 static void qh_memstatistics();
512 #define qh_memtotal gdal_qh_memtotal
513 static void qh_memtotal();
514 /*#define qh_mergefacet gdal_qh_mergefacet*/
515 /*static gdal_if qh_mergefacet();*/
516 #define qh_premerge gdal_qh_premerge
517 static void qh_premerge();
518 #define qh_postmerge gdal_qh_postmerge
519 static void qh_postmerge();
520 #define qh_all_merges gdal_qh_all_merges
521 static void qh_all_merges();
522 #define qh_appendmergeset gdal_qh_appendmergeset
523 static void qh_appendmergeset();
524 #define qh_basevertices gdal_qh_basevertices
525 static gdal_setT * qh_basevertices();
526 #define qh_checkconnect gdal_qh_checkconnect
527 static void qh_checkconnect();
528 #define qh_checkzero gdal_qh_checkzero
529 static gdal_boolT qh_checkzero();
530 #define qh_comparevisit gdal_qh_comparevisit
531 static int qh_comparevisit();
532 #define qh_copynonconvex gdal_qh_copynonconvex
533 static void qh_copynonconvex();
534 #define qh_degen_redundant_facet gdal_qh_degen_redundant_facet
535 static void qh_degen_redundant_facet();
536 #define qh_find_newvertex gdal_qh_find_newvertex
537 static gdal_vertexT * qh_find_newvertex();
538 #define qh_findbest_test gdal_qh_findbest_test
539 static void qh_findbest_test();
540 #define qh_findbestneighbor gdal_qh_findbestneighbor
541 static gdal_facetT * qh_findbestneighbor();
542 #define qh_flippedmerges gdal_qh_flippedmerges
543 static void qh_flippedmerges();
544 #define qh_forcedmerges gdal_qh_forcedmerges
545 static void qh_forcedmerges();
546 #define qh_getmergeset gdal_qh_getmergeset
547 static void qh_getmergeset();
548 #define qh_getmergeset_initial gdal_qh_getmergeset_initial
549 static void qh_getmergeset_initial();
550 #define qh_hashridge gdal_qh_hashridge
551 static void qh_hashridge();
552 #define qh_hashridge_find gdal_qh_hashridge_find
553 static gdal_ridgeT * qh_hashridge_find();
554 #define qh_makeridges gdal_qh_makeridges
555 static void qh_makeridges();
556 #define qh_mark_dupridges gdal_qh_mark_dupridges
557 static void qh_mark_dupridges();
558 #define qh_maydropneighbor gdal_qh_maydropneighbor
559 static void qh_maydropneighbor();
560 #define qh_merge_degenredundant gdal_qh_merge_degenredundant
561 static int qh_merge_degenredundant();
562 #define qh_merge_nonconvex gdal_qh_merge_nonconvex
563 static void qh_merge_nonconvex();
564 #define qh_mergecycle gdal_qh_mergecycle
565 static void qh_mergecycle();
566 #define qh_mergecycle_all gdal_qh_mergecycle_all
567 static void qh_mergecycle_all();
568 #define qh_mergecycle_facets gdal_qh_mergecycle_facets
569 static void qh_mergecycle_facets();
570 #define qh_mergecycle_neighbors gdal_qh_mergecycle_neighbors
571 static void qh_mergecycle_neighbors();
572 #define qh_mergecycle_ridges gdal_qh_mergecycle_ridges
573 static void qh_mergecycle_ridges();
574 #define qh_mergecycle_vneighbors gdal_qh_mergecycle_vneighbors
575 static void qh_mergecycle_vneighbors();
576 #define qh_mergefacet gdal_qh_mergefacet
577 static void qh_mergefacet();
578 #define qh_mergefacet2d gdal_qh_mergefacet2d
579 static void qh_mergefacet2d();
580 #define qh_mergeneighbors gdal_qh_mergeneighbors
581 static void qh_mergeneighbors();
582 #define qh_mergeridges gdal_qh_mergeridges
583 static void qh_mergeridges();
584 #define qh_mergesimplex gdal_qh_mergesimplex
585 static void qh_mergesimplex();
586 #define qh_mergevertex_del gdal_qh_mergevertex_del
587 static void qh_mergevertex_del();
588 #define qh_mergevertex_neighbors gdal_qh_mergevertex_neighbors
589 static void qh_mergevertex_neighbors();
590 #define qh_mergevertices gdal_qh_mergevertices
591 static void qh_mergevertices();
592 #define qh_neighbor_intersections gdal_qh_neighbor_intersections
593 static gdal_setT * qh_neighbor_intersections();
594 #define qh_newvertices gdal_qh_newvertices
595 static void qh_newvertices();
596 #define qh_reducevertices gdal_qh_reducevertices
597 static gdal_boolT qh_reducevertices();
598 #define qh_redundant_vertex gdal_qh_redundant_vertex
599 static gdal_vertexT * qh_redundant_vertex();
600 #define qh_remove_extravertices gdal_qh_remove_extravertices
601 static gdal_boolT qh_remove_extravertices();
602 #define qh_rename_sharedvertex gdal_qh_rename_sharedvertex
603 static gdal_vertexT * qh_rename_sharedvertex();
604 #define qh_renameridgevertex gdal_qh_renameridgevertex
605 static gdal_boolT qh_renameridgevertex();
606 #define qh_renamevertex gdal_qh_renamevertex
607 static void qh_renamevertex();
608 #define qh_test_appendmerge gdal_qh_test_appendmerge
609 static gdal_boolT qh_test_appendmerge();
610 #define qh_test_vneighbors gdal_qh_test_vneighbors
611 static gdal_boolT qh_test_vneighbors();
612 #define qh_tracemerge gdal_qh_tracemerge
613 static void qh_tracemerge();
614 #define qh_tracemerging gdal_qh_tracemerging
615 static void qh_tracemerging();
616 #define qh_updatetested gdal_qh_updatetested
617 static void qh_updatetested();
618 #define qh_vertexridges gdal_qh_vertexridges
619 static gdal_setT * qh_vertexridges();
620 #define qh_vertexridges_facet gdal_qh_vertexridges_facet
621 static void qh_vertexridges_facet();
622 #define qh_willdelete gdal_qh_willdelete
623 static void qh_willdelete();
624 #define qh_appendfacet gdal_qh_appendfacet
625 static void qh_appendfacet();
626 #define qh_appendvertex gdal_qh_appendvertex
627 static void qh_appendvertex();
628 #define qh_attachnewfacets gdal_qh_attachnewfacets
629 static void qh_attachnewfacets();
630 #define qh_checkflipped gdal_qh_checkflipped
631 static gdal_boolT qh_checkflipped();
632 #define qh_delfacet gdal_qh_delfacet
633 static void qh_delfacet();
634 #define qh_deletevisible gdal_qh_deletevisible
635 static void qh_deletevisible();
636 #define qh_facetintersect gdal_qh_facetintersect
637 static gdal_setT * qh_facetintersect();
638 #define qh_gethash gdal_qh_gethash
639 static int qh_gethash();
640 #define qh_makenewfacet gdal_qh_makenewfacet
641 static gdal_facetT * qh_makenewfacet();
642 #define qh_makenewplanes gdal_qh_makenewplanes
643 static void qh_makenewplanes();
644 #define qh_makenew_nonsimplicial gdal_qh_makenew_nonsimplicial
645 static gdal_facetT * qh_makenew_nonsimplicial();
646 #define qh_makenew_simplicial gdal_qh_makenew_simplicial
647 static gdal_facetT * qh_makenew_simplicial();
648 #define qh_matchneighbor gdal_qh_matchneighbor
649 static void qh_matchneighbor();
650 #define qh_matchnewfacets gdal_qh_matchnewfacets
651 static gdal_coordT qh_matchnewfacets();
652 #define qh_matchvertices gdal_qh_matchvertices
653 static gdal_boolT qh_matchvertices();
654 #define qh_newfacet gdal_qh_newfacet
655 static gdal_facetT * qh_newfacet();
656 #define qh_newridge gdal_qh_newridge
657 static gdal_ridgeT * qh_newridge();
658 #define qh_pointid gdal_qh_pointid
659 static int qh_pointid();
660 #define qh_removefacet gdal_qh_removefacet
661 static void qh_removefacet();
662 #define qh_removevertex gdal_qh_removevertex
663 static void qh_removevertex();
664 #define qh_addhash gdal_qh_addhash
665 static void qh_addhash();
666 #define qh_check_bestdist gdal_qh_check_bestdist
667 static void qh_check_bestdist();
668 #define qh_check_maxout gdal_qh_check_maxout
669 static void qh_check_maxout();
670 #define qh_check_output gdal_qh_check_output
671 static void qh_check_output();
672 #define qh_check_point gdal_qh_check_point
673 static void qh_check_point();
674 #define qh_check_points gdal_qh_check_points
675 static void qh_check_points();
676 #define qh_checkconvex gdal_qh_checkconvex
677 static void qh_checkconvex();
678 #define qh_checkfacet gdal_qh_checkfacet
679 static void qh_checkfacet();
680 #define qh_checkflipped_all gdal_qh_checkflipped_all
681 static void qh_checkflipped_all();
682 #define qh_checkpolygon gdal_qh_checkpolygon
683 static void qh_checkpolygon();
684 #define qh_checkvertex gdal_qh_checkvertex
685 static void qh_checkvertex();
686 #define qh_clearcenters gdal_qh_clearcenters
687 static void qh_clearcenters();
688 #define qh_createsimplex gdal_qh_createsimplex
689 static void qh_createsimplex();
690 #define qh_delridge gdal_qh_delridge
691 static void qh_delridge();
692 #define qh_delvertex gdal_qh_delvertex
693 static void qh_delvertex();
694 #define qh_facet3vertex gdal_qh_facet3vertex
695 static gdal_setT * qh_facet3vertex();
696 #define qh_findbestfacet gdal_qh_findbestfacet
697 static gdal_facetT * qh_findbestfacet();
698 #define qh_findbestlower gdal_qh_findbestlower
699 static gdal_facetT * qh_findbestlower();
700 #define qh_findfacet_all gdal_qh_findfacet_all
701 static gdal_facetT * qh_findfacet_all();
702 #define qh_findgood gdal_qh_findgood
703 static int qh_findgood();
704 #define qh_findgood_all gdal_qh_findgood_all
705 static void qh_findgood_all();
706 #define qh_furthestnext gdal_qh_furthestnext
707 static void qh_furthestnext();
708 #define qh_furthestout gdal_qh_furthestout
709 static void qh_furthestout();
710 #define qh_infiniteloop gdal_qh_infiniteloop
711 static void qh_infiniteloop();
712 #define qh_initbuild gdal_qh_initbuild
713 static void qh_initbuild();
714 #define qh_initialhull gdal_qh_initialhull
715 static void qh_initialhull();
716 #define qh_initialvertices gdal_qh_initialvertices
717 static gdal_setT * qh_initialvertices();
718 #define qh_isvertex gdal_qh_isvertex
719 static gdal_vertexT * qh_isvertex();
720 #define qh_makenewfacets gdal_qh_makenewfacets
721 static gdal_vertexT * qh_makenewfacets();
722 #define qh_nearcoplanar gdal_qh_nearcoplanar
723 static void qh_nearcoplanar();
724 #define qh_nearvertex gdal_qh_nearvertex
725 static gdal_vertexT * qh_nearvertex();
726 #define qh_newhashtable gdal_qh_newhashtable
727 static int qh_newhashtable();
728 #define qh_newvertex gdal_qh_newvertex
729 static gdal_vertexT * qh_newvertex();
730 #define qh_nextridge3d gdal_qh_nextridge3d
731 static gdal_ridgeT * qh_nextridge3d();
732 #define qh_outcoplanar gdal_qh_outcoplanar
733 static void qh_outcoplanar();
734 #define qh_point gdal_qh_point
735 static gdal_pointT * qh_point();
736 #define qh_point_add gdal_qh_point_add
737 static void qh_point_add();
738 #define qh_pointfacet gdal_qh_pointfacet
739 static gdal_setT * qh_pointfacet();
740 #define qh_pointvertex gdal_qh_pointvertex
741 static gdal_setT * qh_pointvertex();
742 #define qh_prependfacet gdal_qh_prependfacet
743 static void qh_prependfacet();
744 #define qh_printhashtable gdal_qh_printhashtable
745 static void qh_printhashtable();
746 #define qh_printlists gdal_qh_printlists
747 static void qh_printlists();
748 #define qh_resetlists gdal_qh_resetlists
749 static void qh_resetlists();
750 #define qh_setvoronoi_all gdal_qh_setvoronoi_all
751 static void qh_setvoronoi_all();
752 #define qh_triangulate gdal_qh_triangulate
753 static void qh_triangulate();
754 #define qh_triangulate_facet gdal_qh_triangulate_facet
755 static void qh_triangulate_facet();
756 #define qh_triangulate_link gdal_qh_triangulate_link
757 static void qh_triangulate_link();
758 #define qh_triangulate_mirror gdal_qh_triangulate_mirror
759 static void qh_triangulate_mirror();
760 #define qh_triangulate_null gdal_qh_triangulate_null
761 static void qh_triangulate_null();
762 #define qh_vertexintersect gdal_qh_vertexintersect
763 static void qh_vertexintersect();
764 #define qh_vertexintersect_new gdal_qh_vertexintersect_new
765 static gdal_setT * qh_vertexintersect_new();
766 #define qh_vertexneighbors gdal_qh_vertexneighbors
767 static void qh_vertexneighbors();
768 #define qh_vertexsubset gdal_qh_vertexsubset
769 static gdal_boolT qh_vertexsubset();
770 #define qh_qhull gdal_qh_qhull
771 static void qh_qhull();
772 #define qh_addpoint gdal_qh_addpoint
773 static gdal_boolT qh_addpoint();
774 #define qh_buildhull gdal_qh_buildhull
775 static void qh_buildhull();
776 #define qh_buildtracing gdal_qh_buildtracing
777 static void qh_buildtracing();
778 #define qh_build_withrestart gdal_qh_build_withrestart
779 static void qh_build_withrestart();
780 #define qh_errexit2 gdal_qh_errexit2
781 static void qh_errexit2();
782 #define qh_findhorizon gdal_qh_findhorizon
783 static void qh_findhorizon();
784 #define qh_nextfurthest gdal_qh_nextfurthest
785 static gdal_pointT * qh_nextfurthest();
786 #define qh_partitionall gdal_qh_partitionall
787 static void qh_partitionall();
788 #define qh_partitioncoplanar gdal_qh_partitioncoplanar
789 static void qh_partitioncoplanar();
790 #define qh_partitionpoint gdal_qh_partitionpoint
791 static void qh_partitionpoint();
792 #define qh_partitionvisible gdal_qh_partitionvisible
793 static void qh_partitionvisible();
794 #define qh_printsummary gdal_qh_printsummary
795 static void qh_printsummary();
796 #define qh_appendprint gdal_qh_appendprint
797 static void qh_appendprint();
798 #define qh_freebuild gdal_qh_freebuild
799 static void qh_freebuild();
800 #define qh_freebuffers gdal_qh_freebuffers
801 static void qh_freebuffers();
802 /*#define qh_initbuffers gdal_qh_initbuffers*/
803 /*static void qh_initbuffers();*/
804 #define qh_allstatA gdal_qh_allstatA
805 static void qh_allstatA();
806 #define qh_allstatB gdal_qh_allstatB
807 static void qh_allstatB();
808 #define qh_allstatC gdal_qh_allstatC
809 static void qh_allstatC();
810 #define qh_allstatD gdal_qh_allstatD
811 static void qh_allstatD();
812 #define qh_allstatE gdal_qh_allstatE
813 static void qh_allstatE();
814 #define qh_allstatE2 gdal_qh_allstatE2
815 static void qh_allstatE2();
816 #define qh_allstatF gdal_qh_allstatF
817 static void qh_allstatF();
818 #define qh_allstatG gdal_qh_allstatG
819 static void qh_allstatG();
820 #define qh_allstatH gdal_qh_allstatH
821 static void qh_allstatH();
822 #define qh_freebuffers gdal_qh_freebuffers
823 static void qh_freebuffers();
824 /*#define qh_initbuffers gdal_qh_initbuffers*/
825 /*static void qh_initbuffers();*/
826 #define qh_setaddsorted gdal_qh_setaddsorted
827 static void qh_setaddsorted();
828 #define qh_setaddnth gdal_qh_setaddnth
829 static void qh_setaddnth();
830 #define qh_setappend gdal_qh_setappend
831 static void qh_setappend();
832 #define qh_setappend_set gdal_qh_setappend_set
833 static void qh_setappend_set();
834 #define qh_setappend2ndlast gdal_qh_setappend2ndlast
835 static void qh_setappend2ndlast();
836 #define qh_setcheck gdal_qh_setcheck
837 static void qh_setcheck();
838 #define qh_setcompact gdal_qh_setcompact
839 static void qh_setcompact();
840 #define qh_setcopy gdal_qh_setcopy
841 static gdal_setT * qh_setcopy();
842 #define qh_setdel gdal_qh_setdel
843 static void * qh_setdel();
844 #define qh_setdellast gdal_qh_setdellast
845 static void * qh_setdellast();
846 #define qh_setdelnth gdal_qh_setdelnth
847 static void * qh_setdelnth();
848 #define qh_setdelnthsorted gdal_qh_setdelnthsorted
849 static void * qh_setdelnthsorted();
850 #define qh_setdelsorted gdal_qh_setdelsorted
851 static void * qh_setdelsorted();
852 #define qh_setduplicate gdal_qh_setduplicate
853 static gdal_setT * qh_setduplicate();
854 #define qh_setequal gdal_qh_setequal
855 static int qh_setequal();
856 #define qh_setequal_except gdal_qh_setequal_except
857 static int qh_setequal_except();
858 #define qh_setequal_skip gdal_qh_setequal_skip
859 static int qh_setequal_skip();
860 #define qh_setendpointer gdal_qh_setendpointer
861 static void ** qh_setendpointer();
862 #define qh_setfree gdal_qh_setfree
863 static void qh_setfree();
864 #define qh_setfree2 gdal_qh_setfree2
865 static void qh_setfree2();
866 #define qh_setfreelong gdal_qh_setfreelong
867 static void qh_setfreelong();
868 #define qh_setin gdal_qh_setin
869 static int qh_setin();
870 #define qh_setindex gdal_qh_setindex
871 static int qh_setindex();
872 #define qh_setlarger gdal_qh_setlarger
873 static void qh_setlarger();
874 #define qh_setlast gdal_qh_setlast
875 static void * qh_setlast();
876 #define qh_setnew gdal_qh_setnew
877 static gdal_setT * qh_setnew();
878 #define qh_setnew_delnthsorted gdal_qh_setnew_delnthsorted
879 static gdal_setT * qh_setnew_delnthsorted();
880 #define qh_setprint gdal_qh_setprint
881 static void qh_setprint();
882 #define qh_setreplace gdal_qh_setreplace
883 static void qh_setreplace();
884 #define qh_setsize gdal_qh_setsize
885 static int qh_setsize();
886 #define qh_settemp gdal_qh_settemp
887 static gdal_setT * qh_settemp();
888 #define qh_settempfree gdal_qh_settempfree
889 static void qh_settempfree();
890 #define qh_settempfree_all gdal_qh_settempfree_all
891 static void qh_settempfree_all();
892 #define qh_settemppop gdal_qh_settemppop
893 static gdal_setT * qh_settemppop();
894 #define qh_settemppush gdal_qh_settemppush
895 static void qh_settemppush();
896 #define qh_settruncate gdal_qh_settruncate
897 static void qh_settruncate();
898 #define qh_setunique gdal_qh_setunique
899 static int qh_setunique();
900 #define qh_setzero gdal_qh_setzero
901 static void qh_setzero();
902 #define qh_argv_to_command gdal_qh_argv_to_command
903 static int qh_argv_to_command();
904 #define qh_argv_to_command_size gdal_qh_argv_to_command_size
905 static int qh_argv_to_command_size();
906 #define qh_rand gdal_qh_rand
907 static int qh_rand();
908 #define qh_srand gdal_qh_srand
909 static void qh_srand();
910 #define qh_randomfactor gdal_qh_randomfactor
911 static gdal_realT qh_randomfactor();
912 #define qh_randommatrix gdal_qh_randommatrix
913 static void qh_randommatrix();
914 #define qh_strtol gdal_qh_strtol
915 static int qh_strtol();
916 #define qh_strtod gdal_qh_strtod
917 static double qh_strtod();
918 #define qh_allstatA gdal_qh_allstatA
919 static void qh_allstatA();
920 #define qh_allstatB gdal_qh_allstatB
921 static void qh_allstatB();
922 #define qh_allstatC gdal_qh_allstatC
923 static void qh_allstatC();
924 #define qh_allstatD gdal_qh_allstatD
925 static void qh_allstatD();
926 #define qh_allstatE gdal_qh_allstatE
927 static void qh_allstatE();
928 #define qh_allstatE2 gdal_qh_allstatE2
929 static void qh_allstatE2();
930 #define qh_allstatF gdal_qh_allstatF
931 static void qh_allstatF();
932 #define qh_allstatG gdal_qh_allstatG
933 static void qh_allstatG();
934 #define qh_allstatH gdal_qh_allstatH
935 static void qh_allstatH();
936 #define qh_allstatI gdal_qh_allstatI
937 static void qh_allstatI();
938 #define qh_allstatistics gdal_qh_allstatistics
939 static void qh_allstatistics();
940 #define qh_collectstatistics gdal_qh_collectstatistics
941 static void qh_collectstatistics();
942 #define qh_initstatistics gdal_qh_initstatistics
943 static void qh_initstatistics();
944 #define qh_newstats gdal_qh_newstats
945 static gdal_boolT qh_newstats();
946 #define qh_nostatistic gdal_qh_nostatistic
947 static gdal_boolT qh_nostatistic();
948 #define qh_printallstatistics gdal_qh_printallstatistics
949 static void qh_printallstatistics();
950 #define qh_printstatistics gdal_qh_printstatistics
951 static void qh_printstatistics();
952 #define qh_printstatlevel gdal_qh_printstatlevel
953 static void qh_printstatlevel();
954 #define qh_printstats gdal_qh_printstats
955 static void qh_printstats();
956 #define qh_stddev gdal_qh_stddev
957 static gdal_realT qh_stddev();
958 #define qh_furthestnewvertex gdal_qh_furthestnewvertex
959 static gdal_vertexT * qh_furthestnewvertex();
960 #define qh_test_degen_neighbors gdal_qh_test_degen_neighbors
961 static void qh_test_degen_neighbors();
962 #define qh_drop_mergevertex gdal_qh_drop_mergevertex
963 static void qh_drop_mergevertex();
964 #define qh_rename_adjacentvertex gdal_qh_rename_adjacentvertex
965 static void qh_rename_adjacentvertex();
966 #define qh_delridge_merge gdal_qh_delridge_merge
967 static void qh_delridge_merge();
968 #define qh_joggle_restart gdal_qh_joggle_restart
969 static void qh_joggle_restart();
970 #define qh_remove_mergetype gdal_qh_remove_mergetype
971 static void qh_remove_mergetype();
972 #define qh_vertex_bestdist gdal_qh_vertex_bestdist
973 static gdal_coordT qh_vertex_bestdist();
974 #define qh_buildcone_onlygood gdal_qh_buildcone_onlygood
975 static gdal_boolT qh_buildcone_onlygood();
976 #define qh_vertex_bestdist2 gdal_qh_vertex_bestdist2
977 static gdal_coordT qh_vertex_bestdist2();
978 #define qh_neighbor_vertices_facet gdal_qh_neighbor_vertices_facet
979 static void qh_neighbor_vertices_facet();
980 #define qh_compare_nummerge gdal_qh_compare_nummerge
981 static int qh_compare_nummerge();
982 #define qh_test_centrum_merge gdal_qh_test_centrum_merge
983 static gdal_boolT qh_test_centrum_merge();
984 #define qh_lib_check gdal_qh_lib_check
985 static void qh_lib_check();
986 #define qh_neighbor_vertices gdal_qh_neighbor_vertices
987 static gdal_setT* qh_neighbor_vertices();
988 #define qh_hasmerge gdal_qh_hasmerge
989 static gdal_boolT qh_hasmerge();
990 #define qh_furthestvertex gdal_qh_furthestvertex
991 static gdal_vertexT* qh_furthestvertex();
992 #define qh_maybe_duplicateridges gdal_qh_maybe_duplicateridges
993 static void qh_maybe_duplicateridges();
994 #define qh_printhelp_topology gdal_qh_printhelp_topology
995 static void qh_printhelp_topology();
996 #define qh_detmaxoutside gdal_qh_detmaxoutside
997 static void qh_detmaxoutside();
998 #define qh_merge_pinchedvertices gdal_qh_merge_pinchedvertices
999 static void qh_merge_pinchedvertices();
1000 #define qh_buildcone gdal_qh_buildcone
1001 static gdal_vertexT* qh_buildcone();
1002 #define qh_check_dupridge gdal_qh_check_dupridge
1003 static void qh_check_dupridge();
1004 #define qh_printhelp_internal gdal_qh_printhelp_internal
1005 static void qh_printhelp_internal();
1006 #define qh_version2 gdal_qh_version2
1007 #define qh_opposite_horizonfacet gdal_qh_opposite_horizonfacet
1008 static gdal_facetT* qh_opposite_horizonfacet();
1009 #define qh_matchdupridge gdal_qh_matchdupridge
1010 static gdal_coordT qh_matchdupridge();
1011 #define qh_appendvertexmerge gdal_qh_appendvertexmerge
1012 static void qh_appendvertexmerge();
1013 #define qh_nextfacet2d gdal_qh_nextfacet2d
1014 static gdal_facetT* qh_nextfacet2d();
1015 #define qh_findbest_pinchedvertex gdal_qh_findbest_pinchedvertex
1016 static gdal_vertexT* qh_findbest_pinchedvertex();
1017 #define qh_zero gdal_qh_zero
1018 static void qh_zero();
1019 #define qh_printhelp_wide gdal_qh_printhelp_wide
1020 static void qh_printhelp_wide();
1021 #define qh_findbest_ridgevertex gdal_qh_findbest_ridgevertex
1022 static gdal_vertexT* qh_findbest_ridgevertex();
1023 #define qh_checkdelridge gdal_qh_checkdelridge
1024 static void qh_checkdelridge();
1025 #define qh_buildcone_mergepinched gdal_qh_buildcone_mergepinched
1026 static gdal_boolT qh_buildcone_mergepinched();
1027 #define qh_merge_twisted gdal_qh_merge_twisted
1028 static void qh_merge_twisted();
1029 #define qh_replacefacetvertex gdal_qh_replacefacetvertex
1030 static void qh_replacefacetvertex();
1031 #define qh_update_vertexneighbors gdal_qh_update_vertexneighbors
1032 static void qh_update_vertexneighbors();
1033 #define qh_test_redundant_neighbors gdal_qh_test_redundant_neighbors
1034 static void qh_test_redundant_neighbors();
1035 #define qh_checklists gdal_qh_checklists
1036 static gdal_boolT qh_checklists();
1037 #define qh_fprintf_stderr gdal_qh_fprintf_stderr
1038 static void qh_fprintf_stderr(int msgcode, const char *fmt, ...);
1039 #define qh_getreplacement gdal_qh_getreplacement
1040 static gdal_facetT* qh_getreplacement();
1041 #define qh_memcheck gdal_qh_memcheck
1042 static void qh_memcheck();
1043 #define qh_addfacetvertex gdal_qh_addfacetvertex
1044 static gdal_boolT qh_addfacetvertex();
1045 #define qh_opposite_vertex gdal_qh_opposite_vertex
1046 static gdal_vertexT* qh_opposite_vertex();
1047 #define qh_all_vertexmerges gdal_qh_all_vertexmerges
1048 static void qh_all_vertexmerges();
1049 #define qh_update_vertexneighbors_cone gdal_qh_update_vertexneighbors_cone
1050 static void qh_update_vertexneighbors_cone();
1051 #define qh_initmergesets gdal_qh_initmergesets
1052 static void qh_initmergesets();
1053 #define qh_test_nonsimplicial_merge gdal_qh_test_nonsimplicial_merge
1054 static gdal_boolT qh_test_nonsimplicial_merge();
1055 #define qh_checkdelfacet gdal_qh_checkdelfacet
1056 static void qh_checkdelfacet();
1057 #define qh_next_vertexmerge gdal_qh_next_vertexmerge
1058 static gdal_mergeT* qh_next_vertexmerge();
1059 #define qh_getpinchedmerges gdal_qh_getpinchedmerges
1060 static gdal_boolT qh_getpinchedmerges();
1061 #define qh_maybe_duplicateridge gdal_qh_maybe_duplicateridge
1062 static void qh_maybe_duplicateridge();
1063 #define qh_setlarger_quick gdal_qh_setlarger_quick
1064 static int qh_setlarger_quick();
1065 #define qh_freemergesets gdal_qh_freemergesets
1066 static void qh_freemergesets();
1067 #define qh_compare_anglemerge gdal_qh_compare_anglemerge
1068 static int qh_compare_anglemerge();
1069
1070 #ifdef _MSC_VER
1071 #pragma warning( push )
1072 #pragma warning( disable : 4324 )
1073 #pragma warning( disable : 4032 )
1074 #pragma warning( disable : 4306 ) /* e.g 'type cast' : conversion from 'long' to 'facetT *' of greater size */
1075 #pragma warning( disable : 4701 )
1076 #pragma warning( disable : 4703 )
1077 #endif
1078
1079 #include "internal_libqhull/libqhull_r.h"
1080 #include "internal_libqhull/libqhull_r.c"
1081 #include "internal_libqhull/poly_r.c"
1082 #include "internal_libqhull/poly2_r.c"
1083 #include "internal_libqhull/mem_r.c"
1084 #include "internal_libqhull/user_r.c"
1085 #include "internal_libqhull/global_r.c"
1086 /*#include "userprintf.c"*/
1087 #include "internal_libqhull/random_r.c"
1088 #include "internal_libqhull/qset_r.c"
1089 #include "internal_libqhull/io_r.c"
1090 #include "internal_libqhull/usermem_r.c"
1091 #include "internal_libqhull/geom_r.c"
1092 #include "internal_libqhull/geom2_r.c"
1093 #include "internal_libqhull/stat_r.c"
1094 #include "internal_libqhull/merge_r.c"
1095
1096 #ifdef _MSC_VER
1097 #pragma warning( pop )
1098 #endif
1099
1100 /* Replaces userprintf.c implementation */
1101 static void qh_fprintf(qhT *qh, CPL_UNUSED FILE *fp, CPL_UNUSED int msgcode, const char *fmt, ... )
1102 {
1103 va_list args;
1104 va_start(args, fmt);
1105 CPLErrorV(CE_Warning, CPLE_AppDefined, fmt, args);
1106 va_end(args);
1107 }
1108
1109 #endif
CPL_UNUSED
#define CPL_UNUSED
Qualifier for an argument that is unused.
Definition: cpl_port.h:875
CPLErrorV
void CPLErrorV(CPLErr, CPLErrorNum, const char *, va_list)
Same as CPLError() but with a va_list.
Definition: cpl_error.cpp:326
CPLE_AppDefined
#define CPLE_AppDefined
Application defined error.
Definition: cpl_error.h:99