SpatiaLite  4.2.0
 All Data Structures Files Functions Variables Typedefs Macros Pages
gg_advanced.h
Go to the documentation of this file.
1 /*
2  gg_advanced.h -- Gaia common support for geometries: advanced
3 
4  version 4.2, 2014 July 25
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-2013
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 CREDITS:
49 
50 this module has been partly funded by:
51 Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
52 (wrapping liblwgeom APIs)
53 
54 */
55 
56 
63 #ifndef _GG_ADVANCED_H
64 #ifndef DOXYGEN_SHOULD_SKIP_THIS
65 #define _GG_ADVANCED_H
66 #endif
67 
69 #define GAIA2GEOS_ALL 0
70 
72 #define GAIA2GEOS_ONLY_POINTS 1
73 
75 #define GAIA2GEOS_ONLY_LINESTRINGS 2
76 
78 #define GAIA2GEOS_ONLY_POLYGONS 3
79 
80 #ifdef __cplusplus
81 extern "C"
82 {
83 #endif
84 
85 #ifndef DOXYGEN_SHOULD_SKIP_THIS
86 #ifndef OMIT_PROJ /* including PROJ.4 */
87 #endif
88 
99  GAIAGEO_DECLARE double gaiaRadsToDegs (double rads);
100 
111  GAIAGEO_DECLARE double gaiaDegsToRads (double degs);
112 
132  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org,
133  char *proj_from,
134  char *proj_to);
135 
156  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache,
157  gaiaGeomCollPtr org,
158  char *proj_from,
159  char *proj_to);
160 
161 #endif /* end including PROJ.4 */
162 
163 #ifndef OMIT_GEOS /* including GEOS */
164 
176  GAIAGEO_DECLARE void gaiaResetGeosMsg (void);
177 
191  GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache);
192 
208  GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void);
209 
227  GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache);
228 
244  GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void);
245 
263  GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache);
264 
279  GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void);
280 
297  GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache);
298 
314  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void);
315 
333  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void
334  *p_cache);
335 
349  GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg);
350 
365  GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache,
366  const char *msg);
367 
381  GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg);
382 
397  GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache,
398  const char *msg);
399 
413  GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg);
414 
429  GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache,
430  const char *msg);
431 
447  GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia);
448 
465  GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache,
466  const gaiaGeomCollPtr gaia);
467 
486  GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia,
487  int mode);
488 
508  GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache,
509  const gaiaGeomCollPtr gaia,
510  int mode);
511 
528  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos);
529 
547  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache,
548  const void *geos);
549 
566  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos);
567 
585  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache,
586  const void *geos);
587 
604  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos);
605 
623  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache,
624  const void *geos);
625 
642  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos);
643 
661  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache,
662  const void *geos);
663 
678  GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom);
679 
695  GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache,
696  gaiaGeomCollPtr geom);
697 
713  GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line);
714 
729  GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom);
730 
746  GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache,
747  gaiaGeomCollPtr geom);
748 
763  GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line);
764 
780  GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache,
781  gaiaLinestringPtr line);
782 
797  GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom);
798 
814  GAIAGEO_DECLARE char *gaiaIsValidReason (gaiaGeomCollPtr geom);
815 
832  GAIAGEO_DECLARE char *gaiaIsValidReason_r (const void *p_cache,
833  gaiaGeomCollPtr geom);
834 
849  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail (gaiaGeomCollPtr geom);
850 
866  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache,
867  gaiaGeomCollPtr geom);
868 
884  GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache,
885  gaiaGeomCollPtr geom);
886 
902  GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom,
903  double *length);
904 
921  GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache,
922  gaiaGeomCollPtr geom,
923  double *length);
924 
943  GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom,
944  int perimeter,
945  double *length);
946 
966  GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache,
967  gaiaGeomCollPtr geom,
968  int perimeter,
969  double *length);
970 
986  GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area);
987 
1004  GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache,
1005  gaiaGeomCollPtr geom, double *area);
1006 
1025  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom,
1026  int force_multi);
1027 
1047  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache,
1048  gaiaGeomCollPtr geom,
1049  int force_multi);
1066  GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1,
1067  gaiaGeomCollPtr geom2);
1085  GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache,
1086  gaiaGeomCollPtr geom1,
1087  gaiaGeomCollPtr geom2);
1088 
1105  GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1,
1106  gaiaGeomCollPtr geom2);
1107 
1125  GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache,
1126  gaiaGeomCollPtr geom1,
1127  gaiaGeomCollPtr geom2);
1128 
1148  GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache,
1149  gaiaGeomCollPtr geom1,
1150  unsigned char *blob1,
1151  int size1,
1152  gaiaGeomCollPtr geom2,
1153  unsigned char *blob2,
1154  int size2);
1155 
1173  GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1,
1174  gaiaGeomCollPtr geom2);
1175 
1194  GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache,
1195  gaiaGeomCollPtr geom1,
1196  gaiaGeomCollPtr geom2);
1197 
1217  GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache,
1218  gaiaGeomCollPtr geom1,
1219  unsigned char *blob1,
1220  int size1,
1221  gaiaGeomCollPtr geom2,
1222  unsigned char *blob2,
1223  int size2);
1224 
1242  GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1,
1243  gaiaGeomCollPtr geom2);
1244 
1263  GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache,
1264  gaiaGeomCollPtr geom1,
1265  gaiaGeomCollPtr geom2);
1266 
1286  GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache,
1287  gaiaGeomCollPtr geom1,
1288  unsigned char *blob1,
1289  int size1,
1290  gaiaGeomCollPtr geom2,
1291  unsigned char *blob2,
1292  int size2);
1293 
1311  GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1,
1312  gaiaGeomCollPtr geom2);
1313 
1332  GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache,
1333  gaiaGeomCollPtr geom1,
1334  gaiaGeomCollPtr geom2);
1335 
1355  GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache,
1356  gaiaGeomCollPtr geom1,
1357  unsigned char *blob1,
1358  int size1,
1359  gaiaGeomCollPtr geom2,
1360  unsigned char *blob2,
1361  int size2);
1362 
1380  GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1,
1381  gaiaGeomCollPtr geom2);
1382 
1401  GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache,
1402  gaiaGeomCollPtr geom1,
1403  gaiaGeomCollPtr geom2);
1404 
1424  GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache,
1425  gaiaGeomCollPtr geom1,
1426  unsigned char *blob1,
1427  int size1,
1428  gaiaGeomCollPtr geom2,
1429  unsigned char *blob2,
1430  int size2);
1431 
1449  GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1,
1450  gaiaGeomCollPtr geom2);
1451 
1470  GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache,
1471  gaiaGeomCollPtr geom1,
1472  gaiaGeomCollPtr geom2);
1473 
1493  GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache,
1494  gaiaGeomCollPtr geom1,
1495  unsigned char *blob1,
1496  int size1,
1497  gaiaGeomCollPtr geom2,
1498  unsigned char *blob2,
1499  int size2);
1500 
1518  GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1,
1519  gaiaGeomCollPtr geom2);
1520 
1539  GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache,
1540  gaiaGeomCollPtr geom1,
1541  gaiaGeomCollPtr geom2);
1542 
1562  GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache,
1563  gaiaGeomCollPtr geom1,
1564  unsigned char *blob1,
1565  int size1,
1566  gaiaGeomCollPtr geom2,
1567  unsigned char *blob2,
1568  int size2);
1569 
1589  GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1,
1590  gaiaGeomCollPtr geom2,
1591  const char *pattern);
1592 
1612  GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache,
1613  gaiaGeomCollPtr geom1,
1614  gaiaGeomCollPtr geom2,
1615  const char *pattern);
1616 
1634  GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1,
1635  gaiaGeomCollPtr geom2,
1636  double *dist);
1637 
1656  GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache,
1657  gaiaGeomCollPtr geom1,
1658  gaiaGeomCollPtr geom2,
1659  double *dist);
1660 
1681  geom1,
1683  geom2);
1684 
1705  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void
1706  *p_cache,
1708  geom1,
1710  geom2);
1711 
1730  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1,
1731  gaiaGeomCollPtr geom2);
1732 
1752  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache,
1753  gaiaGeomCollPtr geom1,
1754  gaiaGeomCollPtr geom2);
1755 
1775  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom);
1776 
1797  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache,
1798  gaiaGeomCollPtr geom);
1799 
1818  geom1,
1820  geom2);
1821 
1840  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void
1841  *p_cache,
1843  geom1,
1845  geom2);
1846 
1865  geom1,
1867  geom2);
1868 
1887  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void
1888  *p_cache,
1890  geom1,
1892  geom2);
1893 
1910  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom);
1911 
1929  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache,
1930  gaiaGeomCollPtr geom);
1931 
1947  GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x,
1948  double *y);
1949 
1966  GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache,
1967  gaiaGeomCollPtr geom, double *x,
1968  double *y);
1969 
1985  GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x,
1986  double *y);
1987 
2004  GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache,
2005  gaiaGeomCollPtr geom,
2006  double *x, double *y);
2007 
2027  double tolerance);
2028 
2048  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void *p_cache,
2050  geom,
2051  double tolerance);
2052 
2071  GAIAGEO_DECLARE gaiaGeomCollPtr
2073  double tolerance);
2074 
2094  GAIAGEO_DECLARE gaiaGeomCollPtr
2095  gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache,
2096  gaiaGeomCollPtr geom,
2097  double tolerance);
2098 
2115  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom);
2116 
2134  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache,
2135  gaiaGeomCollPtr geom);
2136 
2156  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom,
2157  double radius,
2158  int points);
2159 
2180  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache,
2181  gaiaGeomCollPtr geom,
2182  double radius,
2183  int points);
2184 
2185 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2186 #ifdef GEOS_ADVANCED
2187 #endif
2188 
2205  GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1,
2206  gaiaGeomCollPtr geom2,
2207  double *dist);
2208 
2226  GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache,
2227  gaiaGeomCollPtr geom1,
2228  gaiaGeomCollPtr geom2,
2229  double *dist);
2230 
2252  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom,
2253  double radius, int points,
2254  int left_right);
2255 
2278  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache,
2279  gaiaGeomCollPtr geom,
2280  double radius,
2281  int points,
2282  int left_right);
2283 
2306  double radius,
2307  int points,
2308  int left_right);
2309 
2332  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void
2333  *p_cache,
2335  geom,
2336  double radius,
2337  int points,
2338  int left_right);
2339 
2357  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1,
2358  gaiaGeomCollPtr geom2);
2359 
2378  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache,
2379  gaiaGeomCollPtr geom1,
2380  gaiaGeomCollPtr geom2);
2381 
2402  ln_geom,
2403  double fraction);
2404 
2425  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void
2426  *p_cache,
2428  ln_geom,
2429  double
2430  fraction);
2431 
2453  GAIAGEO_DECLARE gaiaGeomCollPtr
2455  double distance);
2456 
2479  GAIAGEO_DECLARE gaiaGeomCollPtr
2480  gaiaLineInterpolateEquidistantPoints_r (const void *p_cache,
2481  gaiaGeomCollPtr ln_geom,
2482  double distance);
2483 
2505  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr ln_geom,
2506  double start_fraction,
2507  double end_fraction);
2508 
2531  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache,
2533  ln_geom,
2534  double start_fraction,
2535  double end_fraction);
2536 
2556  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1,
2557  gaiaGeomCollPtr geom2);
2558 
2579  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache,
2580  gaiaGeomCollPtr geom1,
2581  gaiaGeomCollPtr geom2);
2582 
2602  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1,
2603  gaiaGeomCollPtr geom2,
2604  double tolerance);
2605 
2626  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache,
2627  gaiaGeomCollPtr geom1,
2628  gaiaGeomCollPtr geom2,
2629  double tolerance);
2630 
2647  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom);
2648 
2666  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache,
2667  gaiaGeomCollPtr geom);
2668 
2686  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1,
2687  gaiaGeomCollPtr geom2);
2688 
2707  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom);
2708 
2728  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache,
2729  gaiaGeomCollPtr geom);
2730 
2748  GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom,
2749  gaiaGeomCollPtr pt_geom);
2750 
2769  GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache,
2770  gaiaGeomCollPtr ln_geom,
2771  gaiaGeomCollPtr pt_geom);
2772 
2787  GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1,
2788  gaiaGeomCollPtr geom2);
2789 
2805  GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache,
2806  gaiaGeomCollPtr geom1,
2807  gaiaGeomCollPtr geom2);
2808 
2828  GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache,
2829  gaiaGeomCollPtr geom1,
2830  unsigned char *blob1,
2831  int size1,
2832  gaiaGeomCollPtr geom2,
2833  unsigned char *blob2,
2834  int size2);
2835 
2851  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1,
2852  gaiaGeomCollPtr geom2);
2853 
2870  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache,
2871  gaiaGeomCollPtr geom1,
2872  gaiaGeomCollPtr geom2);
2873 
2894  GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache,
2895  gaiaGeomCollPtr geom1,
2896  unsigned char *blob1,
2897  int size1,
2898  gaiaGeomCollPtr geom2,
2899  unsigned char *blob2,
2900  int size2);
2901 
2923  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom,
2924  double origin_x,
2925  double origin_y,
2926  double size,
2927  int only_edges);
2928 
2951  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache,
2952  gaiaGeomCollPtr geom,
2953  double origin_x,
2954  double origin_y,
2955  double size,
2956  int only_edges);
2957 
2979  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom,
2980  double origin_x,
2981  double origin_y,
2982  double size,
2983  int only_edges);
2984 
3007  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache,
3008  gaiaGeomCollPtr geom,
3009  double origin_x,
3010  double origin_y,
3011  double size,
3012  int only_edges);
3013 
3035  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom,
3036  double origin_x,
3037  double origin_y,
3038  double size,
3039  int only_edges);
3040 
3063  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache,
3064  gaiaGeomCollPtr geom,
3065  double origin_x,
3066  double origin_y,
3067  double size,
3068  int only_edges);
3069 
3070 #endif /* end GEOS advanced features */
3071 
3072 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3073 #ifdef GEOS_TRUNK
3074 #endif
3075 
3097  geom,
3098  double tolerance,
3099  int only_edges);
3100 
3122  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void
3123  *p_cache,
3125  geom,
3126  double
3127  tolerance,
3128  int
3129  only_edges);
3130 
3151  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom,
3152  double extra_frame_size,
3153  double tolerance,
3154  int only_edges);
3155 
3177  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache,
3178  gaiaGeomCollPtr geom,
3179  double
3180  extra_frame_size,
3181  double tolerance,
3182  int only_edges);
3183 
3212  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom,
3213  double factor,
3214  double tolerance,
3215  int allow_holes);
3216 
3246  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache,
3247  gaiaGeomCollPtr geom,
3248  double factor,
3249  double tolerance,
3250  int allow_holes);
3251 
3252 #endif /* end GEOS experimental features */
3253 
3254 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3255 #ifdef ENABLE_LWGEOM
3256 #endif
3257 
3268  GAIAGEO_DECLARE void gaiaResetLwGeomMsg (void);
3269 
3283  GAIAGEO_DECLARE const char *gaiaGetLwGeomErrorMsg (void);
3284 
3298  GAIAGEO_DECLARE const char *gaiaGetLwGeomWarningMsg (void);
3299 
3312  GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg);
3313 
3326  GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg);
3327 
3346  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (gaiaGeomCollPtr geom);
3347 
3368  geom);
3369 
3389  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (gaiaGeomCollPtr geom,
3390  double dist);
3391 
3409  GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb,
3410  double yb, double *azimuth);
3411 
3431  GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb,
3432  double yb, double a, double b,
3433  double *azimuth);
3434 
3454  GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a,
3455  double b, double distance,
3456  double azimuth, double *x2,
3457  double *y2);
3458 
3472  GAIAGEO_DECLARE char *gaiaGeoHash (gaiaGeomCollPtr geom, int precision);
3473 
3490  GAIAGEO_DECLARE char *gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs,
3491  int precision, int options,
3492  const char *refid);
3493 
3509  GAIAGEO_DECLARE int gaia3DDistance (gaiaGeomCollPtr geom1,
3510  gaiaGeomCollPtr geom2, double *dist);
3511 
3527  GAIAGEO_DECLARE int gaiaMaxDistance (gaiaGeomCollPtr geom1,
3528  gaiaGeomCollPtr geom2, double *dist);
3529 
3545  GAIAGEO_DECLARE int gaia3DMaxDistance (gaiaGeomCollPtr geom1,
3546  gaiaGeomCollPtr geom2, double *dist);
3547 
3566  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (gaiaGeomCollPtr input,
3567  gaiaGeomCollPtr blade);
3568 
3588  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (gaiaGeomCollPtr input,
3589  gaiaGeomCollPtr blade);
3590 
3610  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input,
3611  gaiaGeomCollPtr blade);
3612 
3629  GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a,
3630  double b, int use_ellipsoid,
3631  double *area);
3632 
3649  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (gaiaGeomCollPtr input);
3650 
3651 #endif /* end LWGEOM support */
3652 
3653 #endif /* end including GEOS */
3654 
3683  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom,
3684  double origin_x,
3685  double origin_y,
3686  double origin_z,
3687  double origin_m,
3688  double size_x,
3689  double size_y,
3690  double size_z,
3691  double size_m);
3692 
3693 #ifdef __cplusplus
3694 }
3695 #endif
3696 
3697 #endif /* _GG_ADVANCED_H */
GAIAGEO_DECLARE char * gaiaGeoHash(gaiaGeomCollPtr geom, int precision)
Utility function: GeoHash.
GAIAGEO_DECLARE int gaiaGeomCollRelate_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE int gaiaAzimuth(double xa, double ya, double xb, double yb, double *azimuth)
Utility function: Azimuth.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg(const char *msg)
Set the current GEOS (auxiliary) error message.
GAIAGEO_DECLARE double gaiaLineLocatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom)
Determines the location of the closest Point on Linestring to the given Point.
GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter(gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
GAIAGEO_DECLARE int gaiaGetPointOnSurface_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE const char * gaiaGetLwGeomWarningMsg(void)
Return the latest LWGEOM warning message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg(const char *msg)
Set the current GEOS error message.
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r(const void *p_cache, const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge(gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg(void)
Return the latest GEOS warning message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize(gaiaGeomCollPtr geom, double dist)
Utility function: Segmentize.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges)
Utility function: SquareGrid.
GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Topology check: test if a Geometry covers another one (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft(gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitLeft.
GAIAGEO_DECLARE int gaiaHausdorffDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollLength(gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r(const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded(gaiaGeomCollPtr geom)
Utility function: MakeValidDiscarded.
GAIAGEO_DECLARE int gaiaGeodesicArea(gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, double *area)
Measures the total Area for a Geometry object (geodesic)
GAIAGEO_DECLARE int gaiaGeomCollArea_r(const void *p_cache, gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg_r(const void *p_cache)
Return the latest GEOS warning message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m)
Utility function: SnapToGrid.
GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg(const char *msg)
Set the current LWGEOM warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary(gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE int gaiaGeomCollDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg(const char *msg)
Set the current LWGEOM error message.
GAIAGEO_DECLARE int gaiaGeomCollContains_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE int gaiaGeomCollEquals(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
GAIAGEO_DECLARE int gaiaGeomCollPreparedContains(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Contains (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaGeomCollCentroid_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull(gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE int gaiaGeomCollTouches(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
GAIAGEO_DECLARE void * gaiaToGeosSelective(const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
GAIAGEO_DECLARE int gaiaGeomCollEquals_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Intersects (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation(gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid(gaiaGeomCollPtr geom)
Utility function: MakeValid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize(gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion(gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE int gaiaIsRing(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE int gaiaGeomCollWithin_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r(const void *p_cache)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail(gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
GAIAGEO_DECLARE char * gaiaIsValidReason_r(const void *p_cache, gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why ...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges)
Utility function: TriangularGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Line Cut At Nodes.
GAIAGEO_DECLARE int gaiaIsRing_r(const void *p_cache, gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE void * gaiaToGeosSelective_r(const void *p_cache, const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY(const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight(gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitRight.
GAIAGEO_DECLARE int gaiaGeomCollContains(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE int gaiaGeomCollIntersects_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intersects.
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Disjoint (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaGeomCollOverlaps(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r(const void *p_cache, gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges)
Utility function: SquareGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges)
Utility function: HexagonalGrid.
GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r(const void *p_cache, gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint(gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE int gaiaGeomCollArea(gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE char * gaiaIsValidReason(gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why ...
GAIAGEO_DECLARE int gaiaGeomCollDisjoint(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE int gaiaEllipsoidAzimuth(double xa, double ya, double xb, double yb, double a, double b, double *azimuth)
Utility function: EllipsoidAzimuth.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded(gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE int gaiaGeomCollCrosses(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Touches (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Crosses (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer(gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
GAIAGEO_DECLARE const char * gaiaGetLwGeomErrorMsg(void)
Return the latest LWGEOM error message (if any)
GAIAGEO_DECLARE int gaiaMaxDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 2D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaia3DMaxDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 3D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE int gaiaIsClosed(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Closed Geometry.
Container for OGC LINESTRING Geometry.
Definition: gg_structs.h:118
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
GAIAGEO_DECLARE int gaiaIsValid_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE int gaiaGeomCollCentroid(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg_r(const void *p_cache)
Return the latest GEOS (auxiliary) error message (if any)
GAIAGEO_DECLARE int gaiaProjectedPoint(double x1, double y1, double a, double b, double distance, double azimuth, double *x2, double *y2)
Utility function: ProjectedPoint.
GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Overlaps (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
GAIAGEO_DECLARE int gaiaGeomCollCrosses_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
GAIAGEO_DECLARE int gaiaIsSimple(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram(gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg(void)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
GAIAGEO_DECLARE int gaiaGeomCollIntersects(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intesects.
GAIAGEO_DECLARE int gaiaGetPointOnSurface(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges)
Utility function: HexagonalGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r(const void *p_cache, gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Within (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaGeomCollWithin(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
GAIAGEO_DECLARE int gaiaHausdorffDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r(const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull(gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE void * gaiaToGeos(const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring(gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS (auxiliary) error message.
GAIAGEO_DECLARE void * gaiaToGeos_r(const void *p_cache, const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE int gaiaIsSimple_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit(gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: Split.
GAIAGEO_DECLARE int gaiaIsClosedGeom(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Topology check: test if a Geometry is covered by another one (GEOSPreparedGeometry) ...
GAIAGEO_DECLARE int gaiaIsValid(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines(gaiaGeomCollPtr input)
Utility function: re-noding lines.
GAIAGEO_DECLARE int gaiaGeomCollCovers_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints(gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges)
Utility function: TriangularGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg_r(const void *p_cache)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg(void)
Return the latest GEOS (auxiliary) error message (if any)
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg(const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE int gaiaGeomCollLength_r(const void *p_cache, gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
Container for OGC GEOMETRYCOLLECTION Geometry.
Definition: gg_structs.h:216
GAIAGEO_DECLARE int gaiaIsClosedGeom_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE int gaiaGeomCollRelate(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE void gaiaResetGeosMsg(void)
Resets the GEOS error and warning messages to an empty state.
GAIAGEO_DECLARE char * gaiaAsX3D(gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *refid)
Utility function: AsX3D.
GAIAGEO_DECLARE void gaiaResetLwGeomMsg(void)
Resets the LWGEOM error and warning messages to an empty state.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg(void)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE int gaiaGeomCollCovers(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE int gaiaGeomCollTouches_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
GAIAGEO_DECLARE int gaiaGeomCollDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE void gaiaResetGeosMsg_r(const void *p_cache)
Resets the GEOS error and warning messages to an empty state.
GAIAGEO_DECLARE double gaiaLineLocatePoint(gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom)
Determines the location of the closest Point on Linestring to the given Point.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE int gaia3DDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the minimum 3D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.