LCOV - code coverage report
Current view: top level - alg - internal_qhull_headers.h (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 5 5 100.0 %
Date: 2024-05-04 12:52:34 Functions: 1 1 100.0 %

          Line data    Source code
       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                                     \
     291             :     gdal_qh_printfacetNvertex_nonsimplicial
     292             : static void qh_printfacetNvertex_nonsimplicial();
     293             : #define qh_printfacetNvertex_simplicial gdal_qh_printfacetNvertex_simplicial
     294             : static void qh_printfacetNvertex_simplicial();
     295             : #define qh_printfacetheader gdal_qh_printfacetheader
     296             : static void qh_printfacetheader();
     297             : #define qh_printfacetridges gdal_qh_printfacetridges
     298             : static void qh_printfacetridges();
     299             : #define qh_printfacets gdal_qh_printfacets
     300             : static void qh_printfacets();
     301             : #define qh_printhyperplaneintersection gdal_qh_printhyperplaneintersection
     302             : static void qh_printhyperplaneintersection();
     303             : #define qh_printneighborhood gdal_qh_printneighborhood
     304             : static void qh_printneighborhood();
     305             : #define qh_printline3geom gdal_qh_printline3geom
     306             : static void qh_printline3geom();
     307             : #define qh_printpoint gdal_qh_printpoint
     308             : static void qh_printpoint();
     309             : #define qh_printpointid gdal_qh_printpointid
     310             : static void qh_printpointid();
     311             : #define qh_printpoint3 gdal_qh_printpoint3
     312             : static void qh_printpoint3();
     313             : #define qh_printpoints_out gdal_qh_printpoints_out
     314             : static void qh_printpoints_out();
     315             : #define qh_printpointvect gdal_qh_printpointvect
     316             : static void qh_printpointvect();
     317             : #define qh_printpointvect2 gdal_qh_printpointvect2
     318             : static void qh_printpointvect2();
     319             : #define qh_printridge gdal_qh_printridge
     320             : static void qh_printridge();
     321             : #define qh_printspheres gdal_qh_printspheres
     322             : static void qh_printspheres();
     323             : #define qh_printvdiagram gdal_qh_printvdiagram
     324             : static void qh_printvdiagram();
     325             : #define qh_printvdiagram2 gdal_qh_printvdiagram2
     326             : static int qh_printvdiagram2();
     327             : #define qh_printvertex gdal_qh_printvertex
     328             : static void qh_printvertex();
     329             : #define qh_printvertexlist gdal_qh_printvertexlist
     330             : static void qh_printvertexlist();
     331             : #define qh_printvertices gdal_qh_printvertices
     332             : static void qh_printvertices();
     333             : #define qh_printvneighbors gdal_qh_printvneighbors
     334             : static void qh_printvneighbors();
     335             : #define qh_printvoronoi gdal_qh_printvoronoi
     336             : static void qh_printvoronoi();
     337             : #define qh_printvnorm gdal_qh_printvnorm
     338             : static void qh_printvnorm();
     339             : #define qh_printvridge gdal_qh_printvridge
     340             : static void qh_printvridge();
     341             : #define qh_produce_output gdal_qh_produce_output
     342             : static void qh_produce_output();
     343             : #define qh_produce_output2 gdal_qh_produce_output2
     344             : static void qh_produce_output2();
     345             : #define qh_projectdim3 gdal_qh_projectdim3
     346             : static void qh_projectdim3();
     347             : #define qh_readfeasible gdal_qh_readfeasible
     348             : static int qh_readfeasible();
     349             : #define qh_readpoints gdal_qh_readpoints
     350             : static gdal_coordT *qh_readpoints();
     351             : #define qh_setfeasible gdal_qh_setfeasible
     352             : static void qh_setfeasible();
     353             : #define qh_skipfacet gdal_qh_skipfacet
     354             : static gdal_boolT qh_skipfacet();
     355             : #define qh_skipfilename gdal_qh_skipfilename
     356             : static char *qh_skipfilename();
     357             : #define qh_qhull gdal_qh_qhull
     358             : static void qh_qhull();
     359             : #define qh_addpoint gdal_qh_addpoint
     360             : static gdal_boolT qh_addpoint();
     361             : #define qh_printsummary gdal_qh_printsummary
     362             : static void qh_printsummary();
     363             : #define qh_errexit gdal_qh_errexit
     364             : static void qh_errexit();
     365             : #define qh_errprint gdal_qh_errprint
     366             : static void qh_errprint();
     367             : #define qh_new_qhull gdal_qh_new_qhull
     368             : static int qh_new_qhull();
     369             : #define qh_printfacetlist gdal_qh_printfacetlist
     370             : static void qh_printfacetlist();
     371             : #define qh_printhelp_degenerate gdal_qh_printhelp_degenerate
     372             : static void qh_printhelp_degenerate();
     373             : #define qh_printhelp_narrowhull gdal_qh_printhelp_narrowhull
     374             : static void qh_printhelp_narrowhull();
     375             : #define qh_printhelp_singular gdal_qh_printhelp_singular
     376             : static void qh_printhelp_singular();
     377             : #define qh_user_memsizes gdal_qh_user_memsizes
     378             : static void qh_user_memsizes();
     379             : #define qh_exit gdal_qh_exit
     380             : static void qh_exit();
     381             : #define qh_free gdal_qh_free
     382             : static void qh_free();
     383             : #define qh_malloc gdal_qh_malloc
     384             : static void *qh_malloc();
     385             : #define qh_fprintf gdal_qh_fprintf
     386             : static void qh_fprintf(qhT *qh, FILE *fp, int msgcode, const char *fmt, ...);
     387             : /*#define qh_fprintf_rbox gdal_qh_fprintf_rbox*/
     388             : /*static void qh_fprintf_rbox(qhT *qh, FILE *fp, int msgcode, const char *fmt,
     389             :  * ... );*/
     390             : #define qh_findbest gdal_qh_findbest
     391             : static gdal_facetT *qh_findbest();
     392             : #define qh_findbestnew gdal_qh_findbestnew
     393             : static gdal_facetT *qh_findbestnew();
     394             : #define qh_gram_schmidt gdal_qh_gram_schmidt
     395             : static gdal_boolT qh_gram_schmidt();
     396             : #define qh_outerinner gdal_qh_outerinner
     397             : static void qh_outerinner();
     398             : #define qh_printsummary gdal_qh_printsummary
     399             : static void qh_printsummary();
     400             : #define qh_projectinput gdal_qh_projectinput
     401             : static void qh_projectinput();
     402             : #define qh_randommatrix gdal_qh_randommatrix
     403             : static void qh_randommatrix();
     404             : #define qh_rotateinput gdal_qh_rotateinput
     405             : static void qh_rotateinput();
     406             : #define qh_scaleinput gdal_qh_scaleinput
     407             : static void qh_scaleinput();
     408             : #define qh_setdelaunay gdal_qh_setdelaunay
     409             : static void qh_setdelaunay();
     410             : #define qh_sethalfspace_all gdal_qh_sethalfspace_all
     411             : static gdal_coordT *qh_sethalfspace_all();
     412             : #define qh_clock gdal_qh_clock
     413             : static unsigned long qh_clock();
     414             : #define qh_checkflags gdal_qh_checkflags
     415             : static void qh_checkflags();
     416             : #define qh_clear_outputflags gdal_qh_clear_outputflags
     417             : static void qh_clear_outputflags();
     418             : #define qh_freebuffers gdal_qh_freebuffers
     419             : static void qh_freebuffers();
     420             : #define qh_freeqhull gdal_qh_freeqhull
     421             : static void qh_freeqhull();
     422             : #define qh_init_A gdal_qh_init_A
     423             : static void qh_init_A();
     424             : #define qh_init_B gdal_qh_init_B
     425             : static void qh_init_B();
     426             : #define qh_init_qhull_command gdal_qh_init_qhull_command
     427             : static void qh_init_qhull_command();
     428             : /*#define qh_initbuffers gdal_qh_initbuffers*/
     429             : /*static void qh_initbuffers();*/
     430             : #define qh_initflags gdal_qh_initflags
     431             : static void qh_initflags();
     432             : #define qh_initqhull_buffers gdal_qh_initqhull_buffers
     433             : static void qh_initqhull_buffers();
     434             : #define qh_initqhull_globals gdal_qh_initqhull_globals
     435             : static void qh_initqhull_globals();
     436             : #define qh_initqhull_mem gdal_qh_initqhull_mem
     437             : static void qh_initqhull_mem();
     438             : #define qh_initqhull_outputflags gdal_qh_initqhull_outputflags
     439             : static void qh_initqhull_outputflags();
     440             : #define qh_initqhull_start gdal_qh_initqhull_start
     441             : static void qh_initqhull_start();
     442             : #define qh_initqhull_start2 gdal_qh_initqhull_start2
     443             : static void qh_initqhull_start2();
     444             : #define qh_initthresholds gdal_qh_initthresholds
     445             : static void qh_initthresholds();
     446             : #define qh_option gdal_qh_option
     447             : static void qh_option();
     448             : /*#define qh_restore_qhull gdal_qh_restore_qhull*/
     449             : /*static void qh_restore_qhull();*/
     450             : /*#define qh_save_qhull gdal_qh_save_qhull*/
     451             : /*static gdal_qhT    * qh_save_qhull();*/
     452             : #define qh_dfacet gdal_qh_dfacet
     453             : static void qh_dfacet();
     454             : #define qh_dvertex gdal_qh_dvertex
     455             : static void qh_dvertex();
     456             : #define qh_printneighborhood gdal_qh_printneighborhood
     457             : static void qh_printneighborhood();
     458             : #define qh_produce_output gdal_qh_produce_output
     459             : static void qh_produce_output();
     460             : #define qh_readpoints gdal_qh_readpoints
     461             : static gdal_coordT *qh_readpoints();
     462             : #define qh_meminit gdal_qh_meminit
     463             : static void qh_meminit();
     464             : #define qh_memfreeshort gdal_qh_memfreeshort
     465             : static void qh_memfreeshort();
     466             : #define qh_check_output gdal_qh_check_output
     467             : static void qh_check_output();
     468             : #define qh_check_points gdal_qh_check_points
     469             : static void qh_check_points();
     470             : #define qh_facetvertices gdal_qh_facetvertices
     471             : static gdal_setT *qh_facetvertices();
     472             : #define qh_findbestfacet gdal_qh_findbestfacet
     473             : static gdal_facetT *qh_findbestfacet();
     474             : #define qh_nearvertex gdal_qh_nearvertex
     475             : static gdal_vertexT *qh_nearvertex();
     476             : #define qh_point gdal_qh_point
     477             : static gdal_pointT *qh_point();
     478             : #define qh_pointfacet gdal_qh_pointfacet
     479             : static gdal_setT *qh_pointfacet();
     480             : #define qh_pointid gdal_qh_pointid
     481             : static int qh_pointid();
     482             : #define qh_pointvertex gdal_qh_pointvertex
     483             : static gdal_setT *qh_pointvertex();
     484             : #define qh_setvoronoi_all gdal_qh_setvoronoi_all
     485             : static void qh_setvoronoi_all();
     486             : #define qh_triangulate gdal_qh_triangulate
     487             : static void qh_triangulate();
     488             : /*#define qh_rboxpoints gdal_qh_rboxpoints*/
     489             : /*static int qh_rboxpoints();*/
     490             : /*#define qh_errexit_rbox gdal_qh_errexit_rbox*/
     491             : /*static void qh_errexit_rbox();*/
     492             : #define qh_collectstatistics gdal_qh_collectstatistics
     493             : static void qh_collectstatistics();
     494             : #define qh_printallstatistics gdal_qh_printallstatistics
     495             : static void qh_printallstatistics();
     496             : /*#define machines gdal_machines*/
     497             : /*static gdal_of machines();*/
     498             : #define qh_memalloc gdal_qh_memalloc
     499             : static void *qh_memalloc();
     500             : #define qh_memfree gdal_qh_memfree
     501             : static void qh_memfree();
     502             : #define qh_memfreeshort gdal_qh_memfreeshort
     503             : static void qh_memfreeshort();
     504             : #define qh_meminit gdal_qh_meminit
     505             : static void qh_meminit();
     506             : #define qh_meminitbuffers gdal_qh_meminitbuffers
     507             : static void qh_meminitbuffers();
     508             : #define qh_memsetup gdal_qh_memsetup
     509             : static void qh_memsetup();
     510             : #define qh_memsize gdal_qh_memsize
     511             : static void qh_memsize();
     512             : #define qh_memstatistics gdal_qh_memstatistics
     513             : static void qh_memstatistics();
     514             : #define qh_memtotal gdal_qh_memtotal
     515             : static void qh_memtotal();
     516             : /*#define qh_mergefacet gdal_qh_mergefacet*/
     517             : /*static gdal_if qh_mergefacet();*/
     518             : #define qh_premerge gdal_qh_premerge
     519             : static void qh_premerge();
     520             : #define qh_postmerge gdal_qh_postmerge
     521             : static void qh_postmerge();
     522             : #define qh_all_merges gdal_qh_all_merges
     523             : static void qh_all_merges();
     524             : #define qh_appendmergeset gdal_qh_appendmergeset
     525             : static void qh_appendmergeset();
     526             : #define qh_basevertices gdal_qh_basevertices
     527             : static gdal_setT *qh_basevertices();
     528             : #define qh_checkconnect gdal_qh_checkconnect
     529             : static void qh_checkconnect();
     530             : #define qh_checkzero gdal_qh_checkzero
     531             : static gdal_boolT qh_checkzero();
     532             : #define qh_comparevisit gdal_qh_comparevisit
     533             : static int qh_comparevisit();
     534             : #define qh_copynonconvex gdal_qh_copynonconvex
     535             : static void qh_copynonconvex();
     536             : #define qh_degen_redundant_facet gdal_qh_degen_redundant_facet
     537             : static void qh_degen_redundant_facet();
     538             : #define qh_find_newvertex gdal_qh_find_newvertex
     539             : static gdal_vertexT *qh_find_newvertex();
     540             : #define qh_findbest_test gdal_qh_findbest_test
     541             : static void qh_findbest_test();
     542             : #define qh_findbestneighbor gdal_qh_findbestneighbor
     543             : static gdal_facetT *qh_findbestneighbor();
     544             : #define qh_flippedmerges gdal_qh_flippedmerges
     545             : static void qh_flippedmerges();
     546             : #define qh_forcedmerges gdal_qh_forcedmerges
     547             : static void qh_forcedmerges();
     548             : #define qh_getmergeset gdal_qh_getmergeset
     549             : static void qh_getmergeset();
     550             : #define qh_getmergeset_initial gdal_qh_getmergeset_initial
     551             : static void qh_getmergeset_initial();
     552             : #define qh_hashridge gdal_qh_hashridge
     553             : static void qh_hashridge();
     554             : #define qh_hashridge_find gdal_qh_hashridge_find
     555             : static gdal_ridgeT *qh_hashridge_find();
     556             : #define qh_makeridges gdal_qh_makeridges
     557             : static void qh_makeridges();
     558             : #define qh_mark_dupridges gdal_qh_mark_dupridges
     559             : static void qh_mark_dupridges();
     560             : #define qh_maydropneighbor gdal_qh_maydropneighbor
     561             : static void qh_maydropneighbor();
     562             : #define qh_merge_degenredundant gdal_qh_merge_degenredundant
     563             : static int qh_merge_degenredundant();
     564             : #define qh_merge_nonconvex gdal_qh_merge_nonconvex
     565             : static void qh_merge_nonconvex();
     566             : #define qh_mergecycle gdal_qh_mergecycle
     567             : static void qh_mergecycle();
     568             : #define qh_mergecycle_all gdal_qh_mergecycle_all
     569             : static void qh_mergecycle_all();
     570             : #define qh_mergecycle_facets gdal_qh_mergecycle_facets
     571             : static void qh_mergecycle_facets();
     572             : #define qh_mergecycle_neighbors gdal_qh_mergecycle_neighbors
     573             : static void qh_mergecycle_neighbors();
     574             : #define qh_mergecycle_ridges gdal_qh_mergecycle_ridges
     575             : static void qh_mergecycle_ridges();
     576             : #define qh_mergecycle_vneighbors gdal_qh_mergecycle_vneighbors
     577             : static void qh_mergecycle_vneighbors();
     578             : #define qh_mergefacet gdal_qh_mergefacet
     579             : static void qh_mergefacet();
     580             : #define qh_mergefacet2d gdal_qh_mergefacet2d
     581             : static void qh_mergefacet2d();
     582             : #define qh_mergeneighbors gdal_qh_mergeneighbors
     583             : static void qh_mergeneighbors();
     584             : #define qh_mergeridges gdal_qh_mergeridges
     585             : static void qh_mergeridges();
     586             : #define qh_mergesimplex gdal_qh_mergesimplex
     587             : static void qh_mergesimplex();
     588             : #define qh_mergevertex_del gdal_qh_mergevertex_del
     589             : static void qh_mergevertex_del();
     590             : #define qh_mergevertex_neighbors gdal_qh_mergevertex_neighbors
     591             : static void qh_mergevertex_neighbors();
     592             : #define qh_mergevertices gdal_qh_mergevertices
     593             : static void qh_mergevertices();
     594             : #define qh_neighbor_intersections gdal_qh_neighbor_intersections
     595             : static gdal_setT *qh_neighbor_intersections();
     596             : #define qh_newvertices gdal_qh_newvertices
     597             : static void qh_newvertices();
     598             : #define qh_reducevertices gdal_qh_reducevertices
     599             : static gdal_boolT qh_reducevertices();
     600             : #define qh_redundant_vertex gdal_qh_redundant_vertex
     601             : static gdal_vertexT *qh_redundant_vertex();
     602             : #define qh_remove_extravertices gdal_qh_remove_extravertices
     603             : static gdal_boolT qh_remove_extravertices();
     604             : #define qh_rename_sharedvertex gdal_qh_rename_sharedvertex
     605             : static gdal_vertexT *qh_rename_sharedvertex();
     606             : #define qh_renameridgevertex gdal_qh_renameridgevertex
     607             : static gdal_boolT qh_renameridgevertex();
     608             : #define qh_renamevertex gdal_qh_renamevertex
     609             : static void qh_renamevertex();
     610             : #define qh_test_appendmerge gdal_qh_test_appendmerge
     611             : static gdal_boolT qh_test_appendmerge();
     612             : #define qh_test_vneighbors gdal_qh_test_vneighbors
     613             : static gdal_boolT qh_test_vneighbors();
     614             : #define qh_tracemerge gdal_qh_tracemerge
     615             : static void qh_tracemerge();
     616             : #define qh_tracemerging gdal_qh_tracemerging
     617             : static void qh_tracemerging();
     618             : #define qh_updatetested gdal_qh_updatetested
     619             : static void qh_updatetested();
     620             : #define qh_vertexridges gdal_qh_vertexridges
     621             : static gdal_setT *qh_vertexridges();
     622             : #define qh_vertexridges_facet gdal_qh_vertexridges_facet
     623             : static void qh_vertexridges_facet();
     624             : #define qh_willdelete gdal_qh_willdelete
     625             : static void qh_willdelete();
     626             : #define qh_appendfacet gdal_qh_appendfacet
     627             : static void qh_appendfacet();
     628             : #define qh_appendvertex gdal_qh_appendvertex
     629             : static void qh_appendvertex();
     630             : #define qh_attachnewfacets gdal_qh_attachnewfacets
     631             : static void qh_attachnewfacets();
     632             : #define qh_checkflipped gdal_qh_checkflipped
     633             : static gdal_boolT qh_checkflipped();
     634             : #define qh_delfacet gdal_qh_delfacet
     635             : static void qh_delfacet();
     636             : #define qh_deletevisible gdal_qh_deletevisible
     637             : static void qh_deletevisible();
     638             : #define qh_facetintersect gdal_qh_facetintersect
     639             : static gdal_setT *qh_facetintersect();
     640             : #define qh_gethash gdal_qh_gethash
     641             : static int qh_gethash();
     642             : #define qh_makenewfacet gdal_qh_makenewfacet
     643             : static gdal_facetT *qh_makenewfacet();
     644             : #define qh_makenewplanes gdal_qh_makenewplanes
     645             : static void qh_makenewplanes();
     646             : #define qh_makenew_nonsimplicial gdal_qh_makenew_nonsimplicial
     647             : static gdal_facetT *qh_makenew_nonsimplicial();
     648             : #define qh_makenew_simplicial gdal_qh_makenew_simplicial
     649             : static gdal_facetT *qh_makenew_simplicial();
     650             : #define qh_matchneighbor gdal_qh_matchneighbor
     651             : static void qh_matchneighbor();
     652             : #define qh_matchnewfacets gdal_qh_matchnewfacets
     653             : static gdal_coordT qh_matchnewfacets();
     654             : #define qh_matchvertices gdal_qh_matchvertices
     655             : static gdal_boolT qh_matchvertices();
     656             : #define qh_newfacet gdal_qh_newfacet
     657             : static gdal_facetT *qh_newfacet();
     658             : #define qh_newridge gdal_qh_newridge
     659             : static gdal_ridgeT *qh_newridge();
     660             : #define qh_pointid gdal_qh_pointid
     661             : static int qh_pointid();
     662             : #define qh_removefacet gdal_qh_removefacet
     663             : static void qh_removefacet();
     664             : #define qh_removevertex gdal_qh_removevertex
     665             : static void qh_removevertex();
     666             : #define qh_addhash gdal_qh_addhash
     667             : static void qh_addhash();
     668             : #define qh_check_bestdist gdal_qh_check_bestdist
     669             : static void qh_check_bestdist();
     670             : #define qh_check_maxout gdal_qh_check_maxout
     671             : static void qh_check_maxout();
     672             : #define qh_check_output gdal_qh_check_output
     673             : static void qh_check_output();
     674             : #define qh_check_point gdal_qh_check_point
     675             : static void qh_check_point();
     676             : #define qh_check_points gdal_qh_check_points
     677             : static void qh_check_points();
     678             : #define qh_checkconvex gdal_qh_checkconvex
     679             : static void qh_checkconvex();
     680             : #define qh_checkfacet gdal_qh_checkfacet
     681             : static void qh_checkfacet();
     682             : #define qh_checkflipped_all gdal_qh_checkflipped_all
     683             : static void qh_checkflipped_all();
     684             : #define qh_checkpolygon gdal_qh_checkpolygon
     685             : static void qh_checkpolygon();
     686             : #define qh_checkvertex gdal_qh_checkvertex
     687             : static void qh_checkvertex();
     688             : #define qh_clearcenters gdal_qh_clearcenters
     689             : static void qh_clearcenters();
     690             : #define qh_createsimplex gdal_qh_createsimplex
     691             : static void qh_createsimplex();
     692             : #define qh_delridge gdal_qh_delridge
     693             : static void qh_delridge();
     694             : #define qh_delvertex gdal_qh_delvertex
     695             : static void qh_delvertex();
     696             : #define qh_facet3vertex gdal_qh_facet3vertex
     697             : static gdal_setT *qh_facet3vertex();
     698             : #define qh_findbestfacet gdal_qh_findbestfacet
     699             : static gdal_facetT *qh_findbestfacet();
     700             : #define qh_findbestlower gdal_qh_findbestlower
     701             : static gdal_facetT *qh_findbestlower();
     702             : #define qh_findfacet_all gdal_qh_findfacet_all
     703             : static gdal_facetT *qh_findfacet_all();
     704             : #define qh_findgood gdal_qh_findgood
     705             : static int qh_findgood();
     706             : #define qh_findgood_all gdal_qh_findgood_all
     707             : static void qh_findgood_all();
     708             : #define qh_furthestnext gdal_qh_furthestnext
     709             : static void qh_furthestnext();
     710             : #define qh_furthestout gdal_qh_furthestout
     711             : static void qh_furthestout();
     712             : #define qh_infiniteloop gdal_qh_infiniteloop
     713             : static void qh_infiniteloop();
     714             : #define qh_initbuild gdal_qh_initbuild
     715             : static void qh_initbuild();
     716             : #define qh_initialhull gdal_qh_initialhull
     717             : static void qh_initialhull();
     718             : #define qh_initialvertices gdal_qh_initialvertices
     719             : static gdal_setT *qh_initialvertices();
     720             : #define qh_isvertex gdal_qh_isvertex
     721             : static gdal_vertexT *qh_isvertex();
     722             : #define qh_makenewfacets gdal_qh_makenewfacets
     723             : static gdal_vertexT *qh_makenewfacets();
     724             : #define qh_nearcoplanar gdal_qh_nearcoplanar
     725             : static void qh_nearcoplanar();
     726             : #define qh_nearvertex gdal_qh_nearvertex
     727             : static gdal_vertexT *qh_nearvertex();
     728             : #define qh_newhashtable gdal_qh_newhashtable
     729             : static int qh_newhashtable();
     730             : #define qh_newvertex gdal_qh_newvertex
     731             : static gdal_vertexT *qh_newvertex();
     732             : #define qh_nextridge3d gdal_qh_nextridge3d
     733             : static gdal_ridgeT *qh_nextridge3d();
     734             : #define qh_outcoplanar gdal_qh_outcoplanar
     735             : static void qh_outcoplanar();
     736             : #define qh_point gdal_qh_point
     737             : static gdal_pointT *qh_point();
     738             : #define qh_point_add gdal_qh_point_add
     739             : static void qh_point_add();
     740             : #define qh_pointfacet gdal_qh_pointfacet
     741             : static gdal_setT *qh_pointfacet();
     742             : #define qh_pointvertex gdal_qh_pointvertex
     743             : static gdal_setT *qh_pointvertex();
     744             : #define qh_prependfacet gdal_qh_prependfacet
     745             : static void qh_prependfacet();
     746             : #define qh_printhashtable gdal_qh_printhashtable
     747             : static void qh_printhashtable();
     748             : #define qh_printlists gdal_qh_printlists
     749             : static void qh_printlists();
     750             : #define qh_resetlists gdal_qh_resetlists
     751             : static void qh_resetlists();
     752             : #define qh_setvoronoi_all gdal_qh_setvoronoi_all
     753             : static void qh_setvoronoi_all();
     754             : #define qh_triangulate gdal_qh_triangulate
     755             : static void qh_triangulate();
     756             : #define qh_triangulate_facet gdal_qh_triangulate_facet
     757             : static void qh_triangulate_facet();
     758             : #define qh_triangulate_link gdal_qh_triangulate_link
     759             : static void qh_triangulate_link();
     760             : #define qh_triangulate_mirror gdal_qh_triangulate_mirror
     761             : static void qh_triangulate_mirror();
     762             : #define qh_triangulate_null gdal_qh_triangulate_null
     763             : static void qh_triangulate_null();
     764             : #define qh_vertexintersect gdal_qh_vertexintersect
     765             : static void qh_vertexintersect();
     766             : #define qh_vertexintersect_new gdal_qh_vertexintersect_new
     767             : static gdal_setT *qh_vertexintersect_new();
     768             : #define qh_vertexneighbors gdal_qh_vertexneighbors
     769             : static void qh_vertexneighbors();
     770             : #define qh_vertexsubset gdal_qh_vertexsubset
     771             : static gdal_boolT qh_vertexsubset();
     772             : #define qh_qhull gdal_qh_qhull
     773             : static void qh_qhull();
     774             : #define qh_addpoint gdal_qh_addpoint
     775             : static gdal_boolT qh_addpoint();
     776             : #define qh_buildhull gdal_qh_buildhull
     777             : static void qh_buildhull();
     778             : #define qh_buildtracing gdal_qh_buildtracing
     779             : static void qh_buildtracing();
     780             : #define qh_build_withrestart gdal_qh_build_withrestart
     781             : static void qh_build_withrestart();
     782             : #define qh_errexit2 gdal_qh_errexit2
     783             : static void qh_errexit2();
     784             : #define qh_findhorizon gdal_qh_findhorizon
     785             : static void qh_findhorizon();
     786             : #define qh_nextfurthest gdal_qh_nextfurthest
     787             : static gdal_pointT *qh_nextfurthest();
     788             : #define qh_partitionall gdal_qh_partitionall
     789             : static void qh_partitionall();
     790             : #define qh_partitioncoplanar gdal_qh_partitioncoplanar
     791             : static void qh_partitioncoplanar();
     792             : #define qh_partitionpoint gdal_qh_partitionpoint
     793             : static void qh_partitionpoint();
     794             : #define qh_partitionvisible gdal_qh_partitionvisible
     795             : static void qh_partitionvisible();
     796             : #define qh_printsummary gdal_qh_printsummary
     797             : static void qh_printsummary();
     798             : #define qh_appendprint gdal_qh_appendprint
     799             : static void qh_appendprint();
     800             : #define qh_freebuild gdal_qh_freebuild
     801             : static void qh_freebuild();
     802             : #define qh_freebuffers gdal_qh_freebuffers
     803             : static void qh_freebuffers();
     804             : /*#define qh_initbuffers gdal_qh_initbuffers*/
     805             : /*static void qh_initbuffers();*/
     806             : #define qh_allstatA gdal_qh_allstatA
     807             : static void qh_allstatA();
     808             : #define qh_allstatB gdal_qh_allstatB
     809             : static void qh_allstatB();
     810             : #define qh_allstatC gdal_qh_allstatC
     811             : static void qh_allstatC();
     812             : #define qh_allstatD gdal_qh_allstatD
     813             : static void qh_allstatD();
     814             : #define qh_allstatE gdal_qh_allstatE
     815             : static void qh_allstatE();
     816             : #define qh_allstatE2 gdal_qh_allstatE2
     817             : static void qh_allstatE2();
     818             : #define qh_allstatF gdal_qh_allstatF
     819             : static void qh_allstatF();
     820             : #define qh_allstatG gdal_qh_allstatG
     821             : static void qh_allstatG();
     822             : #define qh_allstatH gdal_qh_allstatH
     823             : static void qh_allstatH();
     824             : #define qh_freebuffers gdal_qh_freebuffers
     825             : static void qh_freebuffers();
     826             : /*#define qh_initbuffers gdal_qh_initbuffers*/
     827             : /*static void qh_initbuffers();*/
     828             : #define qh_setaddsorted gdal_qh_setaddsorted
     829             : static void qh_setaddsorted();
     830             : #define qh_setaddnth gdal_qh_setaddnth
     831             : static void qh_setaddnth();
     832             : #define qh_setappend gdal_qh_setappend
     833             : static void qh_setappend();
     834             : #define qh_setappend_set gdal_qh_setappend_set
     835             : static void qh_setappend_set();
     836             : #define qh_setappend2ndlast gdal_qh_setappend2ndlast
     837             : static void qh_setappend2ndlast();
     838             : #define qh_setcheck gdal_qh_setcheck
     839             : static void qh_setcheck();
     840             : #define qh_setcompact gdal_qh_setcompact
     841             : static void qh_setcompact();
     842             : #define qh_setcopy gdal_qh_setcopy
     843             : static gdal_setT *qh_setcopy();
     844             : #define qh_setdel gdal_qh_setdel
     845             : static void *qh_setdel();
     846             : #define qh_setdellast gdal_qh_setdellast
     847             : static void *qh_setdellast();
     848             : #define qh_setdelnth gdal_qh_setdelnth
     849             : static void *qh_setdelnth();
     850             : #define qh_setdelnthsorted gdal_qh_setdelnthsorted
     851             : static void *qh_setdelnthsorted();
     852             : #define qh_setdelsorted gdal_qh_setdelsorted
     853             : static void *qh_setdelsorted();
     854             : #define qh_setduplicate gdal_qh_setduplicate
     855             : static gdal_setT *qh_setduplicate();
     856             : #define qh_setequal gdal_qh_setequal
     857             : static int qh_setequal();
     858             : #define qh_setequal_except gdal_qh_setequal_except
     859             : static int qh_setequal_except();
     860             : #define qh_setequal_skip gdal_qh_setequal_skip
     861             : static int qh_setequal_skip();
     862             : #define qh_setendpointer gdal_qh_setendpointer
     863             : static void **qh_setendpointer();
     864             : #define qh_setfree gdal_qh_setfree
     865             : static void qh_setfree();
     866             : #define qh_setfree2 gdal_qh_setfree2
     867             : static void qh_setfree2();
     868             : #define qh_setfreelong gdal_qh_setfreelong
     869             : static void qh_setfreelong();
     870             : #define qh_setin gdal_qh_setin
     871             : static int qh_setin();
     872             : #define qh_setindex gdal_qh_setindex
     873             : static int qh_setindex();
     874             : #define qh_setlarger gdal_qh_setlarger
     875             : static void qh_setlarger();
     876             : #define qh_setlast gdal_qh_setlast
     877             : static void *qh_setlast();
     878             : #define qh_setnew gdal_qh_setnew
     879             : static gdal_setT *qh_setnew();
     880             : #define qh_setnew_delnthsorted gdal_qh_setnew_delnthsorted
     881             : static gdal_setT *qh_setnew_delnthsorted();
     882             : #define qh_setprint gdal_qh_setprint
     883             : static void qh_setprint();
     884             : #define qh_setreplace gdal_qh_setreplace
     885             : static void qh_setreplace();
     886             : #define qh_setsize gdal_qh_setsize
     887             : static int qh_setsize();
     888             : #define qh_settemp gdal_qh_settemp
     889             : static gdal_setT *qh_settemp();
     890             : #define qh_settempfree gdal_qh_settempfree
     891             : static void qh_settempfree();
     892             : #define qh_settempfree_all gdal_qh_settempfree_all
     893             : static void qh_settempfree_all();
     894             : #define qh_settemppop gdal_qh_settemppop
     895             : static gdal_setT *qh_settemppop();
     896             : #define qh_settemppush gdal_qh_settemppush
     897             : static void qh_settemppush();
     898             : #define qh_settruncate gdal_qh_settruncate
     899             : static void qh_settruncate();
     900             : #define qh_setunique gdal_qh_setunique
     901             : static int qh_setunique();
     902             : #define qh_setzero gdal_qh_setzero
     903             : static void qh_setzero();
     904             : #define qh_argv_to_command gdal_qh_argv_to_command
     905             : static int qh_argv_to_command();
     906             : #define qh_argv_to_command_size gdal_qh_argv_to_command_size
     907             : static int qh_argv_to_command_size();
     908             : #define qh_rand gdal_qh_rand
     909             : static int qh_rand();
     910             : #define qh_srand gdal_qh_srand
     911             : static void qh_srand();
     912             : #define qh_randomfactor gdal_qh_randomfactor
     913             : static gdal_realT qh_randomfactor();
     914             : #define qh_randommatrix gdal_qh_randommatrix
     915             : static void qh_randommatrix();
     916             : #define qh_strtol gdal_qh_strtol
     917             : static int qh_strtol();
     918             : #define qh_strtod gdal_qh_strtod
     919             : static double qh_strtod();
     920             : #define qh_allstatA gdal_qh_allstatA
     921             : static void qh_allstatA();
     922             : #define qh_allstatB gdal_qh_allstatB
     923             : static void qh_allstatB();
     924             : #define qh_allstatC gdal_qh_allstatC
     925             : static void qh_allstatC();
     926             : #define qh_allstatD gdal_qh_allstatD
     927             : static void qh_allstatD();
     928             : #define qh_allstatE gdal_qh_allstatE
     929             : static void qh_allstatE();
     930             : #define qh_allstatE2 gdal_qh_allstatE2
     931             : static void qh_allstatE2();
     932             : #define qh_allstatF gdal_qh_allstatF
     933             : static void qh_allstatF();
     934             : #define qh_allstatG gdal_qh_allstatG
     935             : static void qh_allstatG();
     936             : #define qh_allstatH gdal_qh_allstatH
     937             : static void qh_allstatH();
     938             : #define qh_allstatI gdal_qh_allstatI
     939             : static void qh_allstatI();
     940             : #define qh_allstatistics gdal_qh_allstatistics
     941             : static void qh_allstatistics();
     942             : #define qh_collectstatistics gdal_qh_collectstatistics
     943             : static void qh_collectstatistics();
     944             : #define qh_initstatistics gdal_qh_initstatistics
     945             : static void qh_initstatistics();
     946             : #define qh_newstats gdal_qh_newstats
     947             : static gdal_boolT qh_newstats();
     948             : #define qh_nostatistic gdal_qh_nostatistic
     949             : static gdal_boolT qh_nostatistic();
     950             : #define qh_printallstatistics gdal_qh_printallstatistics
     951             : static void qh_printallstatistics();
     952             : #define qh_printstatistics gdal_qh_printstatistics
     953             : static void qh_printstatistics();
     954             : #define qh_printstatlevel gdal_qh_printstatlevel
     955             : static void qh_printstatlevel();
     956             : #define qh_printstats gdal_qh_printstats
     957             : static void qh_printstats();
     958             : #define qh_stddev gdal_qh_stddev
     959             : static gdal_realT qh_stddev();
     960             : #define qh_furthestnewvertex gdal_qh_furthestnewvertex
     961             : static gdal_vertexT *qh_furthestnewvertex();
     962             : #define qh_test_degen_neighbors gdal_qh_test_degen_neighbors
     963             : static void qh_test_degen_neighbors();
     964             : #define qh_drop_mergevertex gdal_qh_drop_mergevertex
     965             : static void qh_drop_mergevertex();
     966             : #define qh_rename_adjacentvertex gdal_qh_rename_adjacentvertex
     967             : static void qh_rename_adjacentvertex();
     968             : #define qh_delridge_merge gdal_qh_delridge_merge
     969             : static void qh_delridge_merge();
     970             : #define qh_joggle_restart gdal_qh_joggle_restart
     971             : static void qh_joggle_restart();
     972             : #define qh_remove_mergetype gdal_qh_remove_mergetype
     973             : static void qh_remove_mergetype();
     974             : #define qh_vertex_bestdist gdal_qh_vertex_bestdist
     975             : static gdal_coordT qh_vertex_bestdist();
     976             : #define qh_buildcone_onlygood gdal_qh_buildcone_onlygood
     977             : static gdal_boolT qh_buildcone_onlygood();
     978             : #define qh_vertex_bestdist2 gdal_qh_vertex_bestdist2
     979             : static gdal_coordT qh_vertex_bestdist2();
     980             : #define qh_neighbor_vertices_facet gdal_qh_neighbor_vertices_facet
     981             : static void qh_neighbor_vertices_facet();
     982             : #define qh_compare_nummerge gdal_qh_compare_nummerge
     983             : static int qh_compare_nummerge();
     984             : #define qh_test_centrum_merge gdal_qh_test_centrum_merge
     985             : static gdal_boolT qh_test_centrum_merge();
     986             : #define qh_lib_check gdal_qh_lib_check
     987             : static void qh_lib_check();
     988             : #define qh_neighbor_vertices gdal_qh_neighbor_vertices
     989             : static gdal_setT *qh_neighbor_vertices();
     990             : #define qh_hasmerge gdal_qh_hasmerge
     991             : static gdal_boolT qh_hasmerge();
     992             : #define qh_furthestvertex gdal_qh_furthestvertex
     993             : static gdal_vertexT *qh_furthestvertex();
     994             : #define qh_maybe_duplicateridges gdal_qh_maybe_duplicateridges
     995             : static void qh_maybe_duplicateridges();
     996             : #define qh_printhelp_topology gdal_qh_printhelp_topology
     997             : static void qh_printhelp_topology();
     998             : #define qh_detmaxoutside gdal_qh_detmaxoutside
     999             : static void qh_detmaxoutside();
    1000             : #define qh_merge_pinchedvertices gdal_qh_merge_pinchedvertices
    1001             : static void qh_merge_pinchedvertices();
    1002             : #define qh_buildcone gdal_qh_buildcone
    1003             : static gdal_vertexT *qh_buildcone();
    1004             : #define qh_check_dupridge gdal_qh_check_dupridge
    1005             : static void qh_check_dupridge();
    1006             : #define qh_printhelp_internal gdal_qh_printhelp_internal
    1007             : static void qh_printhelp_internal();
    1008             : #define qh_version2 gdal_qh_version2
    1009             : #define qh_opposite_horizonfacet gdal_qh_opposite_horizonfacet
    1010             : static gdal_facetT *qh_opposite_horizonfacet();
    1011             : #define qh_matchdupridge gdal_qh_matchdupridge
    1012             : static gdal_coordT qh_matchdupridge();
    1013             : #define qh_appendvertexmerge gdal_qh_appendvertexmerge
    1014             : static void qh_appendvertexmerge();
    1015             : #define qh_nextfacet2d gdal_qh_nextfacet2d
    1016             : static gdal_facetT *qh_nextfacet2d();
    1017             : #define qh_findbest_pinchedvertex gdal_qh_findbest_pinchedvertex
    1018             : static gdal_vertexT *qh_findbest_pinchedvertex();
    1019             : #define qh_zero gdal_qh_zero
    1020             : static void qh_zero();
    1021             : #define qh_printhelp_wide gdal_qh_printhelp_wide
    1022             : static void qh_printhelp_wide();
    1023             : #define qh_findbest_ridgevertex gdal_qh_findbest_ridgevertex
    1024             : static gdal_vertexT *qh_findbest_ridgevertex();
    1025             : #define qh_checkdelridge gdal_qh_checkdelridge
    1026             : static void qh_checkdelridge();
    1027             : #define qh_buildcone_mergepinched gdal_qh_buildcone_mergepinched
    1028             : static gdal_boolT qh_buildcone_mergepinched();
    1029             : #define qh_merge_twisted gdal_qh_merge_twisted
    1030             : static void qh_merge_twisted();
    1031             : #define qh_replacefacetvertex gdal_qh_replacefacetvertex
    1032             : static void qh_replacefacetvertex();
    1033             : #define qh_update_vertexneighbors gdal_qh_update_vertexneighbors
    1034             : static void qh_update_vertexneighbors();
    1035             : #define qh_test_redundant_neighbors gdal_qh_test_redundant_neighbors
    1036             : static void qh_test_redundant_neighbors();
    1037             : #define qh_checklists gdal_qh_checklists
    1038             : static gdal_boolT qh_checklists();
    1039             : #define qh_fprintf_stderr gdal_qh_fprintf_stderr
    1040             : static void qh_fprintf_stderr(int msgcode, const char *fmt, ...);
    1041             : #define qh_getreplacement gdal_qh_getreplacement
    1042             : static gdal_facetT *qh_getreplacement();
    1043             : #define qh_memcheck gdal_qh_memcheck
    1044             : static void qh_memcheck();
    1045             : #define qh_addfacetvertex gdal_qh_addfacetvertex
    1046             : static gdal_boolT qh_addfacetvertex();
    1047             : #define qh_opposite_vertex gdal_qh_opposite_vertex
    1048             : static gdal_vertexT *qh_opposite_vertex();
    1049             : #define qh_all_vertexmerges gdal_qh_all_vertexmerges
    1050             : static void qh_all_vertexmerges();
    1051             : #define qh_update_vertexneighbors_cone gdal_qh_update_vertexneighbors_cone
    1052             : static void qh_update_vertexneighbors_cone();
    1053             : #define qh_initmergesets gdal_qh_initmergesets
    1054             : static void qh_initmergesets();
    1055             : #define qh_test_nonsimplicial_merge gdal_qh_test_nonsimplicial_merge
    1056             : static gdal_boolT qh_test_nonsimplicial_merge();
    1057             : #define qh_checkdelfacet gdal_qh_checkdelfacet
    1058             : static void qh_checkdelfacet();
    1059             : #define qh_next_vertexmerge gdal_qh_next_vertexmerge
    1060             : static gdal_mergeT *qh_next_vertexmerge();
    1061             : #define qh_getpinchedmerges gdal_qh_getpinchedmerges
    1062             : static gdal_boolT qh_getpinchedmerges();
    1063             : #define qh_maybe_duplicateridge gdal_qh_maybe_duplicateridge
    1064             : static void qh_maybe_duplicateridge();
    1065             : #define qh_setlarger_quick gdal_qh_setlarger_quick
    1066             : static int qh_setlarger_quick();
    1067             : #define qh_freemergesets gdal_qh_freemergesets
    1068             : static void qh_freemergesets();
    1069             : #define qh_compare_anglemerge gdal_qh_compare_anglemerge
    1070             : static int qh_compare_anglemerge();
    1071             : 
    1072             : #ifdef _MSC_VER
    1073             : #pragma warning(push)
    1074             : #pragma warning(disable : 4324)
    1075             : #pragma warning(disable : 4032)
    1076             : // 4306: e.g 'type cast' : conversion from 'long' to 'facetT *' of greater size
    1077             : #pragma warning(disable : 4306)
    1078             : #pragma warning(disable : 4701)
    1079             : #pragma warning(disable : 4703)
    1080             : #endif
    1081             : 
    1082             : #include "internal_libqhull/libqhull_r.h"
    1083             : #include "internal_libqhull/libqhull_r.c"
    1084             : #include "internal_libqhull/poly_r.c"
    1085             : #include "internal_libqhull/poly2_r.c"
    1086             : #include "internal_libqhull/mem_r.c"
    1087             : #include "internal_libqhull/user_r.c"
    1088             : #include "internal_libqhull/global_r.c"
    1089             : /*#include "userprintf.c"*/
    1090             : #include "internal_libqhull/random_r.c"
    1091             : #include "internal_libqhull/qset_r.c"
    1092             : #include "internal_libqhull/io_r.c"
    1093             : #include "internal_libqhull/usermem_r.c"
    1094             : #include "internal_libqhull/geom_r.c"
    1095             : #include "internal_libqhull/geom2_r.c"
    1096             : #include "internal_libqhull/stat_r.c"
    1097             : #include "internal_libqhull/merge_r.c"
    1098             : 
    1099             : #ifdef _MSC_VER
    1100             : #pragma warning(pop)
    1101             : #endif
    1102             : 
    1103             : /* Replaces userprintf.c implementation */
    1104          62 : static void qh_fprintf(qhT *qh, CPL_UNUSED FILE *fp, CPL_UNUSED int msgcode,
    1105             :                        const char *fmt, ...)
    1106             : {
    1107             :     va_list args;
    1108          62 :     va_start(args, fmt);
    1109          62 :     CPLErrorV(CE_Warning, CPLE_AppDefined, fmt, args);
    1110          62 :     va_end(args);
    1111          62 : }
    1112             : 
    1113             : #endif

Generated by: LCOV version 1.14