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