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