@crossbind/port-spatialite-wasi 2.0.0-beta.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +11 -0
  3. package/config.guess +1823 -0
  4. package/config.sub +1885 -0
  5. package/crossbind.build.js +1 -0
  6. package/crossbind.config.js +11 -0
  7. package/dist/prebuilt/CMakeLists.txt +57 -0
  8. package/dist/prebuilt/wasi-wasm32-st-release/crossbind-emccflags.fingerprint +1 -0
  9. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/control_points.h +259 -0
  10. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/debug.h +77 -0
  11. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaia_network.h +627 -0
  12. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaia_topology.h +1221 -0
  13. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaaux.h +540 -0
  14. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig-msvc.h +56 -0
  15. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig-msvc.h.in +55 -0
  16. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig.h +68 -0
  17. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig.h.in +67 -0
  18. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaexif.h +669 -0
  19. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiageo.h +77 -0
  20. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiamatrix.h +277 -0
  21. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/geojson.h +586 -0
  22. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/geopackage.h +198 -0
  23. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_advanced.h +5184 -0
  24. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_const.h +606 -0
  25. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_core.h +2294 -0
  26. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_dxf.h +993 -0
  27. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_dynamic.h +416 -0
  28. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_formats.h +2056 -0
  29. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_mbr.h +606 -0
  30. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_sequence.h +173 -0
  31. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_structs.h +880 -0
  32. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_wfs.h +581 -0
  33. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_xml.h +818 -0
  34. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/spatialite_ext.h +64 -0
  35. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/sqlite.h +70 -0
  36. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/stored_procedures.h +641 -0
  37. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite.h +2098 -0
  38. package/dist/prebuilt/wasi-wasm32-st-release/lib/libspatialite.a +0 -0
  39. package/dist/prebuilt/wasi-wasm32-st-release/lib/libspatialite.la +41 -0
  40. package/dist/prebuilt/wasi-wasm32-st-release/lib/mod_spatialite.a +0 -0
  41. package/dist/prebuilt/wasi-wasm32-st-release/lib/mod_spatialite.la +41 -0
  42. package/dist/prebuilt/wasi-wasm32-st-release/lib/pkgconfig/spatialite.pc +12 -0
  43. package/e2e/main.c +38 -0
  44. package/e2e/run.mjs +89 -0
  45. package/package.json +40 -0
@@ -0,0 +1,606 @@
1
+ /*
2
+ gg_mbr.h -- Gaia common support for geometries: MBR functions
3
+
4
+ version 5.1.0, 2023 August 4
5
+
6
+ Author: Sandro Furieri a.furieri@lqt.it
7
+
8
+ ------------------------------------------------------------------------------
9
+
10
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
11
+
12
+ The contents of this file are subject to the Mozilla Public License Version
13
+ 1.1 (the "License"); you may not use this file except in compliance with
14
+ the License. You may obtain a copy of the License at
15
+ http://www.mozilla.org/MPL/
16
+
17
+ Software distributed under the License is distributed on an "AS IS" basis,
18
+ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
19
+ for the specific language governing rights and limitations under the
20
+ License.
21
+
22
+ The Original Code is the SpatiaLite library
23
+
24
+ The Initial Developer of the Original Code is Alessandro Furieri
25
+
26
+ Portions created by the Initial Developer are Copyright (C) 2008-2023
27
+ the Initial Developer. All Rights Reserved.
28
+
29
+ Contributor(s):
30
+
31
+
32
+ Alternatively, the contents of this file may be used under the terms of
33
+ either the GNU General Public License Version 2 or later (the "GPL"), or
34
+ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
35
+ in which case the provisions of the GPL or the LGPL are applicable instead
36
+ of those above. If you wish to allow use of your version of this file only
37
+ under the terms of either the GPL or the LGPL, and not to allow others to
38
+ use your version of this file under the terms of the MPL, indicate your
39
+ decision by deleting the provisions above and replace them with the notice
40
+ and other provisions required by the GPL or the LGPL. If you do not delete
41
+ the provisions above, a recipient may use your version of this file under
42
+ the terms of any one of the MPL, the GPL or the LGPL.
43
+
44
+ */
45
+
46
+
47
+ /**
48
+ \file gg_mbr.h
49
+
50
+ Geometry handling functions: MBR
51
+ */
52
+
53
+ #ifndef _GG_MBR_H
54
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
55
+ #define _GG_MBR_H
56
+ #endif
57
+
58
+ #ifdef __cplusplus
59
+ extern "C"
60
+ {
61
+ #endif
62
+
63
+ /* function prototypes */
64
+
65
+ /**
66
+ Updates the actual MBR for a Linestring object
67
+
68
+ \param line pointer to the Linestring object
69
+ */
70
+ GAIAGEO_DECLARE void gaiaMbrLinestring (gaiaLinestringPtr line);
71
+
72
+ /**
73
+ Updates the actual MBR for a Ring object
74
+
75
+ \param rng pointer to the Ring object
76
+ */
77
+ GAIAGEO_DECLARE void gaiaMbrRing (gaiaRingPtr rng);
78
+
79
+ /**
80
+ Updates the actual MBR for a Polygon object
81
+
82
+ \param polyg pointer to the Polygon object
83
+ */
84
+ GAIAGEO_DECLARE void gaiaMbrPolygon (gaiaPolygonPtr polyg);
85
+
86
+ /**
87
+ Updates the actual MBR for a Geometry object
88
+
89
+ \param geom pointer to the Geometry object
90
+ */
91
+ GAIAGEO_DECLARE void gaiaMbrGeometry (gaiaGeomCollPtr geom);
92
+
93
+ /**
94
+ Retrieves the MBR (MinX) from a BLOB-Geometry object
95
+
96
+ \param blob pointer to BLOB-Geometry.
97
+ \param size the BLOB's size (in bytes).
98
+ \param minx on completion this variable will contain the MBR MinX coordinate.
99
+
100
+ \return 0 on failure: any other value on success.
101
+
102
+ \sa gaiaGetMbrMaxX, gaiaGetMbrMinY, gaiaGetMbrMaxY
103
+ */
104
+ GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob,
105
+ unsigned int size, double *minx);
106
+
107
+ /**
108
+ Retrieves the MBR (MaxX) from a BLOB-Geometry object
109
+
110
+ \param blob pointer to BLOB-Geometry.
111
+ \param size the BLOB's size (in bytes).
112
+ \param maxx on completion this variable will contain the MBR MaxX coordinate.
113
+
114
+ \return 0 on failure: any other value on success.
115
+
116
+ \sa gaiaGetMbrMinX, gaiaGetMbrMinY, gaiaGetMbrMaxY
117
+ */
118
+ GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob,
119
+ unsigned int size, double *maxx);
120
+
121
+ /**
122
+ Retrieves the MBR (MinY) from a BLOB-Geometry object
123
+
124
+ \param blob pointer to BLOB-Geometry.
125
+ \param size the BLOB's size (in bytes).
126
+ \param miny on completion this variable will contain the MBR MinY coordinate.
127
+
128
+ \return 0 on failure: any other value on success.
129
+
130
+ \sa gaiaGetMbrMinX, gaiaGetMbrMaxX, gaiaGetMbrMaxY
131
+ */
132
+ GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob,
133
+ unsigned int size, double *miny);
134
+
135
+ /**
136
+ Retrieves the MBR (MaxY) from a BLOB-Geometry object
137
+
138
+ \param blob pointer to BLOB-Geometry.
139
+ \param size the BLOB's size (in bytes).
140
+ \param maxy on completion this variable will contain the MBR MaxY coordinate.
141
+
142
+ \return 0 on failure: any other value on success.
143
+
144
+ \sa gaiaGetMbrMinX, gaiaGetMbrMaxX, gaiaGetMbrMinY
145
+ */
146
+ GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob,
147
+ unsigned int size, double *maxy);
148
+
149
+ /**
150
+ Creates a Geometry object corresponding to the Envelope [MBR] for a
151
+ BLOB-Geometry
152
+
153
+ \param blob pointer to BLOB-Geometry
154
+ \param size the BLOB's size (in bytes)
155
+
156
+ \return the pointer to the newly created Geometry object: NULL on failure
157
+
158
+ \sa gaiaFreeGeomColl
159
+
160
+ \note you are responsible to destroy (before or after) any allocated Geometry,
161
+ unless you've passed ownership of the Geometry object to some further object:
162
+ in this case destroying the higher order object will implicitly destroy any
163
+ contained child object.
164
+ */
165
+
166
+ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobMbr (const unsigned
167
+ char *blob,
168
+ unsigned int
169
+ size);
170
+
171
+ /**
172
+ MBRs comparison: Contains
173
+
174
+ \param mbr1 pointer to first Geometry object.
175
+ \param mbr2 pointer to second Geometry object.
176
+
177
+ \return 0 if false; any other value if mbr1 spatially \e contains mbr2
178
+
179
+ \sa gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects,
180
+ gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin
181
+ */
182
+ GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1,
183
+ gaiaGeomCollPtr mbr2);
184
+
185
+ /**
186
+ MBRs comparison: Disjoint
187
+
188
+ \param mbr1 pointer to first Geometry object.
189
+ \param mbr2 pointer to second Geometry object.
190
+
191
+ \return 0 if false; any other value if mbr1 and mbr2 are spatially \e disjoint
192
+
193
+ \sa gaiaMbrsContains, gaiaMbrsEqual, gaiaMbrsIntersects,
194
+ gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin
195
+ */
196
+ GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1,
197
+ gaiaGeomCollPtr mbr2);
198
+
199
+ /**
200
+ MBRs comparison: Equal
201
+
202
+ \param mbr1 pointer to first Geometry object.
203
+ \param mbr2 pointer to second Geometry object.
204
+
205
+ \return 0 if false; any other value if mbr1 and mbr2 are spatially \e equal
206
+
207
+ \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsIntersects,
208
+ gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin
209
+ */
210
+ GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1,
211
+ gaiaGeomCollPtr mbr2);
212
+
213
+ /**
214
+ MBRs comparison: Intersects
215
+
216
+ \param mbr1 pointer to first Geometry object.
217
+ \param mbr2 pointer to second Geometry object.
218
+
219
+ \return 0 if false; any other value if mbr1 and mbr2 spatially \e intersect
220
+
221
+ \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual,
222
+ gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin
223
+ */
224
+ GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1,
225
+ gaiaGeomCollPtr mbr2);
226
+
227
+ /**
228
+ MBRs comparison: Overlaps
229
+
230
+ \param mbr1 pointer to first Geometry object.
231
+ \param mbr2 pointer to second Geometry object.
232
+
233
+ \return 0 if false; any other value if mbr1 and mbr2 spatially \e overlap
234
+
235
+ \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects,
236
+ gaiaMbrsTouches, gaiaMbrsWithin
237
+ */
238
+ GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1,
239
+ gaiaGeomCollPtr mbr2);
240
+
241
+ /**
242
+ MBRs comparison: Touches
243
+
244
+ \param mbr1 pointer to first Geometry object.
245
+ \param mbr2 pointer to second Geometry object.
246
+
247
+ \return 0 if false; any other value if mbr1 and mbr2 spatially \e touche
248
+
249
+ \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects,
250
+ gaiaMbrsOverlaps, gaiaMbrsWithin
251
+ */
252
+ GAIAGEO_DECLARE int gaiaMbrsTouches (gaiaGeomCollPtr mbr1,
253
+ gaiaGeomCollPtr mbr2);
254
+
255
+ /**
256
+ MBRs comparison: Within
257
+
258
+ \param mbr1 pointer to first Geometry object.
259
+ \param mbr2 pointer to second Geometry object.
260
+
261
+ \return 0 if false; any other value if mbr1 is spatially \e within mbr2
262
+
263
+ \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects,
264
+ gaiaMbrsOverlaps, gaiaMbrsTouches
265
+ */
266
+ GAIAGEO_DECLARE int gaiaMbrsWithin (gaiaGeomCollPtr mbr1,
267
+ gaiaGeomCollPtr mbr2);
268
+
269
+ /**
270
+ Creates a BLOB-Geometry representing an Envelope [MBR]
271
+
272
+ \param x1 first X coordinate.
273
+ \param y1 first Y coordinate.
274
+ \param x2 second X coordinate.
275
+ \param y2 second Y coordinate.
276
+ \param srid the SRID associated to the Envelope
277
+ \param result on completion will contain a pointer to newly created
278
+ BLOB-Geometry
279
+ \param size on completion this variabile will contain the BLOB's size (in
280
+ bytes)
281
+
282
+ \sa gaiaBuildCircleMbr
283
+
284
+ \note [XY] coords must define two extreme Points identifying a diagonal
285
+ of the MBR [Envelope]
286
+ \n no special order is required for coords: MAX / MIN values will be
287
+ internally arranged as appropriate.
288
+ */
289
+ GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2,
290
+ double y2, int srid,
291
+ unsigned char **result, int *size);
292
+
293
+ /**
294
+ Creates a BLOB-Geometry representing an Envelope [MBR]
295
+
296
+ \param x centre X coordinate.
297
+ \param y centre Y coordinate.
298
+ \param radius the radius of the circle
299
+ \param srid the SRID associated to the Envelope
300
+ \param result on completion will contain a pointer to newly created
301
+ BLOB-Geometry
302
+ \param size on completion this variabile will contain the BLOB's size (in
303
+ bytes)
304
+
305
+ \sa gaiaBuildMbr
306
+
307
+ \note the \e circle of givern \e radius and \e centre will be used so to
308
+ determine the corresponding \e square Envelope
309
+ */
310
+ GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y,
311
+ double radius, int srid,
312
+ unsigned char **result, int *size);
313
+
314
+ /**
315
+ Creates a BLOB-FilterMBR
316
+
317
+ \param x1 first X coordinate.
318
+ \param y1 first Y coordinate.
319
+ \param x2 second X coordinate.
320
+ \param y2 second Y coordinate.
321
+ \param mode one of: GAIA_FILTER_MBR_WITHIN, GAIA_FILTER_MBR_CONTAINS,
322
+ GAIA_FILTER_MBR_INTERSECTS, GAIA_FILTER_MBR_DECLARE
323
+ \param result on completion will contain a pointer to newly created
324
+ BLOB-FilterMBR
325
+ \param size on completion this variabile will contain the BLOB's size (in
326
+ bytes)
327
+
328
+ \sa gaiaParseFilterMbr
329
+
330
+ \note [XY] coords must define two extreme Points identifying a diagonal
331
+ of the MBR [Envelope]
332
+ \n no special order is required for coords: MAX / MIN values will be
333
+ internally arranged as appropriate.
334
+
335
+ \remark internally used to implement Geometry Callback R*Tree filtering.
336
+ */
337
+ GAIAGEO_DECLARE void gaiaBuildFilterMbr (double x1, double y1, double x2,
338
+ double y2, int mode,
339
+ unsigned char **result, int *size);
340
+
341
+ /**
342
+ Creates a BLOB-FilterMBR
343
+
344
+ \param result pointer to BLOB-FilterMBR [previously created by
345
+ gaiaBuildFilterMbr]
346
+ BLOB-Geometry
347
+ \param size BLOB's size (in bytes)
348
+ \param minx on completion this variable will contain the MBR MinX coord.
349
+ \param miny on completion this variable will contain the MBR MinY coord.
350
+ \param maxx on completion this variable will contain the MBR MinY coord.
351
+ \param maxy on completion this variable will contain the MBR MaxY coord.
352
+ \param mode on completion this variable will contain the FilterMBR mode.
353
+
354
+ \sa gaiaBuildFilterMbr
355
+
356
+ \remark internally used to implement Geometry Callback R*Tree filtering.
357
+ */
358
+ GAIAGEO_DECLARE int gaiaParseFilterMbr (unsigned char *result, int size,
359
+ double *minx, double *miny,
360
+ double *maxx, double *maxy,
361
+ int *mode);
362
+
363
+ /**
364
+ Computes the Z-Range for a Linestring object
365
+
366
+ \param line pointer to the Linestring object
367
+ \param min on completion this variable will contain the min Z value found
368
+ \param max on completion this variable will contain the max Z value found
369
+
370
+ \sa gaiaZRangeLinestringEx
371
+
372
+ \note if the Linestring has XY or XYM dims, the Z-Range is meaningless
373
+ */
374
+ GAIAGEO_DECLARE void gaiaZRangeLinestring (gaiaLinestringPtr line,
375
+ double *min, double *max);
376
+
377
+ /**
378
+ Computes the Z-Range for a Linestring object (NODATA flavor)
379
+
380
+ \param line pointer to the Linestring object
381
+ \param nodata the NODATA value
382
+ \param min on completion this variable will contain the min Z value found
383
+ \param max on completion this variable will contain the max Z value found
384
+
385
+ \sa gaiaZRangeLinestring
386
+
387
+ \note if the Linestring has XY or XYM dims, the Z-Range is meaningless
388
+ */
389
+ GAIAGEO_DECLARE void gaiaZRangeLinestringEx (gaiaLinestringPtr line,
390
+ double nodata, double *min,
391
+ double *max);
392
+
393
+ /**
394
+ Computes the Z-Range for a Ring object
395
+
396
+ \param rng pointer to the Ring object
397
+ \param min on completion this variable will contain the min Z value found
398
+ \param max on completion this variable will contain the max Z value found
399
+
400
+ \sa gaiaZRangeRingEx
401
+
402
+ \note if the Ring has XY or XYM dims, the Z-Range is meaningless
403
+ */
404
+ GAIAGEO_DECLARE void gaiaZRangeRing (gaiaRingPtr rng, double *min,
405
+ double *max);
406
+
407
+ /**
408
+ Computes the Z-Range for a Ring object (NODATA flavor)
409
+
410
+ \param rng pointer to the Ring object
411
+ \param nodata the NODATA value
412
+ \param min on completion this variable will contain the min Z value found
413
+ \param max on completion this variable will contain the max Z value found
414
+
415
+ \sa gaiaZRangeRing
416
+
417
+ \note if the Ring has XY or XYM dims, the Z-Range is meaningless
418
+ */
419
+ GAIAGEO_DECLARE void gaiaZRangeRingEx (gaiaRingPtr rng, double nodata,
420
+ double *min, double *max);
421
+
422
+ /**
423
+ Computes the Z-Range for a Polygon object
424
+
425
+ \param polyg pointer to the Polygon object
426
+ \param min on completion this variable will contain the min Z value found
427
+ \param max on completion this variable will contain the max Z value found
428
+
429
+ \sa gaiaZRangePolygonEx
430
+
431
+ \note if the Polygon has XY or XYM dims, the Z-Range is meaningless
432
+ */
433
+ GAIAGEO_DECLARE void gaiaZRangePolygon (gaiaPolygonPtr polyg, double *min,
434
+ double *max);
435
+
436
+ /**
437
+ Computes the Z-Range for a Polygon object (NODATA flavor)
438
+
439
+ \param polyg pointer to the Polygon object
440
+ \param nodata the NODATA value
441
+ \param min on completion this variable will contain the min Z value found
442
+ \param max on completion this variable will contain the max Z value found
443
+
444
+ \sa gaiaZRangePolygon
445
+
446
+ \note if the Polygon has XY or XYM dims, the Z-Range is meaningless
447
+ */
448
+ GAIAGEO_DECLARE void gaiaZRangePolygonEx (gaiaPolygonPtr polyg,
449
+ double nodata, double *min,
450
+ double *max);
451
+
452
+ /**
453
+ Computes the Z-Range for a Geometry object
454
+
455
+ \param geom pointer to the Geometry object
456
+ \param min on completion this variable will contain the min Z value found
457
+ \param max on completion this variable will contain the max Z value found
458
+
459
+ \sa gaiaZRangeGeometryEx
460
+
461
+ \note if the Geometry has XY or XYM dims, the Z-Range is meaningless
462
+ */
463
+ GAIAGEO_DECLARE void gaiaZRangeGeometry (gaiaGeomCollPtr geom,
464
+ double *min, double *max);
465
+
466
+ /**
467
+ Computes the Z-Range for a Geometry object (NODATA flavor)
468
+
469
+ \param geom pointer to the Geometry object
470
+ \param nodata the NODATA value
471
+ \param min on completion this variable will contain the min Z value found
472
+ \param max on completion this variable will contain the max Z value found
473
+
474
+ \sa gaiaZRangeGeometry
475
+
476
+ \note if the Geometry has XY or XYM dims, the Z-Range is meaningless
477
+ */
478
+ GAIAGEO_DECLARE void gaiaZRangeGeometryEx (gaiaGeomCollPtr geom,
479
+ double nodata, double *min,
480
+ double *max);
481
+
482
+ /**
483
+ Computes the M-Range for a Linestring object
484
+
485
+ \param line pointer to the Linestring object
486
+ \param min on completion this variable will contain the min M value found
487
+ \param max on completion this variable will contain the max M value found
488
+
489
+ \sa gaiaMRangeLinestringEx
490
+
491
+ \note if the Linestring has XY or XYZ dims, the M-Range is meaningless
492
+ */
493
+ GAIAGEO_DECLARE void gaiaMRangeLinestring (gaiaLinestringPtr line,
494
+ double *min, double *max);
495
+
496
+ /**
497
+ Computes the M-Range for a Linestring object (NODATA flavor)
498
+
499
+ \param line pointer to the Linestring object
500
+ \param nodata the NODATA value
501
+ \param min on completion this variable will contain the min M value found
502
+ \param max on completion this variable will contain the max M value found
503
+
504
+ \sa gaiaMRangeLinestring
505
+
506
+ \note if the Linestring has XY or XYZ dims, the M-Range is meaningless
507
+ */
508
+ GAIAGEO_DECLARE void gaiaMRangeLinestringEx (gaiaLinestringPtr line,
509
+ double nodata, double *min,
510
+ double *max);
511
+
512
+ /**
513
+ Computes the M-Range for a Ring object
514
+
515
+ \param rng pointer to the Ring object
516
+ \param min on completion this variable will contain the min M value found
517
+ \param max on completion this variable will contain the max M value found
518
+
519
+ \sa gaiaMRangeRingEx
520
+
521
+ \note if the Ring has XY or XYZ dims, the M-Range is meaningless
522
+ */
523
+ GAIAGEO_DECLARE void gaiaMRangeRing (gaiaRingPtr rng, double *min,
524
+ double *max);
525
+
526
+ /**
527
+ Computes the M-Range for a Ring object (NODATA flavor)
528
+
529
+ \param rng pointer to the Ring object
530
+ \param nodata the NODATA value
531
+ \param min on completion this variable will contain the min M value found
532
+ \param max on completion this variable will contain the max M value found
533
+
534
+ \sa gaiaMRangeRing
535
+
536
+ \note if the Ring has XY or XYZ dims, the M-Range is meaningless
537
+ */
538
+ GAIAGEO_DECLARE void gaiaMRangeRingEx (gaiaRingPtr rng, double nodata,
539
+ double *min, double *max);
540
+
541
+ /**
542
+ Computes the M-Range for a Polygon object
543
+
544
+ \param polyg pointer to the Polygon object
545
+ \param min on completion this variable will contain the min M value found
546
+ \param max on completion this variable will contain the max M value found
547
+
548
+ \sa gaiaMRangePolygonEx
549
+
550
+ \note if the Polygon has XY or XYZ dims, the M-Range is meaningless
551
+ */
552
+ GAIAGEO_DECLARE void gaiaMRangePolygon (gaiaPolygonPtr polyg, double *min,
553
+ double *max);
554
+
555
+ /**
556
+ Computes the M-Range for a Polygon object (NODATA flavor)
557
+
558
+ \param polyg pointer to the Polygon object
559
+ \param nodata the NODATA value
560
+ \param min on completion this variable will contain the min M value found
561
+ \param max on completion this variable will contain the max M value found
562
+
563
+ \sa gaiaMRangePolygon
564
+
565
+ \note if the Polygon has XY or XYZ dims, the M-Range is meaningless
566
+ */
567
+ GAIAGEO_DECLARE void gaiaMRangePolygonEx (gaiaPolygonPtr polyg,
568
+ double nodata, double *min,
569
+ double *max);
570
+
571
+ /**
572
+ Computes the Z-Range for a Geometry object
573
+
574
+ \param geom pointer to the Geometry object
575
+ \param min on completion this variable will contain the min M value found
576
+ \param max on completion this variable will contain the max M value found
577
+
578
+ \sa gaiaMRangeGeometryEx
579
+
580
+ \note if the Geometry has XY or XYZ dims, the M-Range is meaningless
581
+ */
582
+ GAIAGEO_DECLARE void gaiaMRangeGeometry (gaiaGeomCollPtr geom,
583
+ double *min, double *max);
584
+
585
+ /**
586
+ Computes the Z-Range for a Geometry object (NODATA flavor)
587
+
588
+ \param geom pointer to the Geometry object
589
+ \param nodata the NODATA value
590
+ \param min on completion this variable will contain the min M value found
591
+ \param max on completion this variable will contain the max M value found
592
+
593
+ \sa gaiaMRangeGeometryEx
594
+
595
+ \note if the Geometry has XY or XYZ dims, the M-Range is meaningless
596
+ */
597
+ GAIAGEO_DECLARE void gaiaMRangeGeometryEx (gaiaGeomCollPtr geom,
598
+ double nodata, double *min,
599
+ double *max);
600
+
601
+
602
+ #ifdef __cplusplus
603
+ }
604
+ #endif
605
+
606
+ #endif /* _GG_MBR_H */