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