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

Generated for GDAL by doxygen 1.9.4.