GEOS  3.12.0
geos_c.h
Go to the documentation of this file.
1 /************************************************************************
2  *
3  * C-Wrapper for GEOS library
4  *
5  * Copyright (C) 2010 2011 Sandro Santilli <strk@kbt.io>
6  * Copyright (C) 2005 Refractions Research Inc.
7  *
8  * This is free software; you can redistribute and/or modify it under
9  * the terms of the GNU Lesser General Public Licence as published
10  * by the Free Software Foundation.
11  * See the COPYING file for more information.
12  ***********************************************************************/
13 
40 #ifndef GEOS_C_H_INCLUDED
41 #define GEOS_C_H_INCLUDED
42 
43 #ifndef __cplusplus
44 # include <stddef.h> /* for size_t definition */
45 #else
46 # include <cstddef>
47 using std::size_t;
48 #endif
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 /* ====================================================================== */
55 /* Version */
56 /* ====================================================================== */
57 
60 #ifndef GEOS_VERSION_MAJOR
61 #define GEOS_VERSION_MAJOR 3
62 #endif
63 #ifndef GEOS_VERSION_MINOR
64 #define GEOS_VERSION_MINOR 12
65 #endif
66 #ifndef GEOS_VERSION_PATCH
67 #define GEOS_VERSION_PATCH 0
68 #endif
69 #ifndef GEOS_VERSION
70 #define GEOS_VERSION "3.12.0"
71 #endif
72 #ifndef GEOS_JTS_PORT
73 #define GEOS_JTS_PORT "1.18.0"
74 #endif
75 
76 #define GEOS_CAPI_VERSION_MAJOR 1
77 #define GEOS_CAPI_VERSION_MINOR 18
78 #define GEOS_CAPI_VERSION_PATCH 0
79 #define GEOS_CAPI_VERSION "3.12.0-CAPI-1.18.0"
80 
81 #define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
82 #define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
83 
86 #include <geos/export.h>
87 
88 
95 typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
96 
105 typedef void (*GEOSMessageHandler)(const char *fmt, ...);
106 
117 typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
118 
119 /*
120 * When we're included by geos_c.cpp, these types are #defined to the
121 * C++ definitions via preprocessor. We don't touch them to allow the
122 * compiler to cross-check the declarations. However, for all "normal"
123 * C-API users, we need to define these types as "opaque" struct pointers, as
124 * those clients don't have access to the original C++ headers, by design.
125 */
126 #ifndef GEOSGeometry
127 
139 typedef struct GEOSGeom_t GEOSGeometry;
140 
146 typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
147 
154 typedef struct GEOSCoordSeq_t GEOSCoordSequence;
155 
161 typedef struct GEOSSTRtree_t GEOSSTRtree;
162 
168 typedef struct GEOSBufParams_t GEOSBufferParams;
169 
175 typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
176 
177 #endif
178 
181 /*
182 * These are compatibility definitions for source compatibility
183 * with GEOS 2.X clients relying on that type.
184 */
185 typedef GEOSGeometry* GEOSGeom;
186 typedef GEOSCoordSequence* GEOSCoordSeq;
187 
214 };
215 
226  GEOS_WKB_NDR = 1
227 };
228 
242  GEOS_WKB_ISO = 2
243 };
244 
252 typedef void (*GEOSQueryCallback)(void *item, void *userdata);
253 
271 typedef int (*GEOSDistanceCallback)(
272  const void* item1,
273  const void* item2,
274  double* distance,
275  void* userdata);
276 
277 
290 typedef int (*GEOSTransformXYCallback)(
291  double* x,
292  double* y,
293  void* userdata);
294 
295 
296 /* ========== Interruption ========== */
297 
306 typedef void (GEOSInterruptCallback)(void);
307 
317 
322 extern void GEOS_DLL GEOS_interruptRequest(void);
323 
328 extern void GEOS_DLL GEOS_interruptCancel(void);
329 
330 /* ========== Initialization and Cleanup ========== */
331 
340 extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
341 
349 extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
350 
360  GEOSContextHandle_t extHandle,
361  GEOSMessageHandler nf);
362 
374  GEOSContextHandle_t extHandle,
375  GEOSMessageHandler ef);
376 
387  GEOSContextHandle_t extHandle,
389  void *userData);
390 
403  GEOSContextHandle_t extHandle,
405  void *userData);
406 
407 /* ========== Coordinate Sequence functions ========== */
408 
411  GEOSContextHandle_t handle,
412  unsigned int size,
413  unsigned int dims);
414 
417  GEOSContextHandle_t handle,
418  const double* buf,
419  unsigned int size,
420  int hasZ,
421  int hasM);
422 
425  GEOSContextHandle_t handle,
426  const double* x,
427  const double* y,
428  const double* z,
429  const double* m,
430  unsigned int size);
431 
433 extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
434  GEOSContextHandle_t handle,
435  const GEOSCoordSequence* s,
436  double* buf,
437  int hasZ,
438  int hasM);
439 
441 extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
442  GEOSContextHandle_t handle,
443  const GEOSCoordSequence* s,
444  double* x,
445  double* y,
446  double* z,
447  double* m);
448 
451  GEOSContextHandle_t handle,
452  const GEOSCoordSequence* s);
453 
455 extern void GEOS_DLL GEOSCoordSeq_destroy_r(
456  GEOSContextHandle_t handle,
457  GEOSCoordSequence* s);
458 
460 extern int GEOS_DLL GEOSCoordSeq_setX_r(
461  GEOSContextHandle_t handle,
462  GEOSCoordSequence* s, unsigned int idx,
463  double val);
464 
466 extern int GEOS_DLL GEOSCoordSeq_setY_r(
467  GEOSContextHandle_t handle,
468  GEOSCoordSequence* s, unsigned int idx,
469  double val);
470 
472 extern int GEOS_DLL GEOSCoordSeq_setZ_r(
473  GEOSContextHandle_t handle,
474  GEOSCoordSequence* s, unsigned int idx,
475  double val);
476 
478 extern int GEOS_DLL GEOSCoordSeq_setXY_r(
479  GEOSContextHandle_t handle,
480  GEOSCoordSequence* s, unsigned int idx,
481  double x, double y);
482 
484 extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
485  GEOSContextHandle_t handle,
486  GEOSCoordSequence* s, unsigned int idx,
487  double x, double y, double z);
488 
490 extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
491  GEOSContextHandle_t handle,
493  unsigned int idx,
494  unsigned int dim, double val);
495 
497 extern int GEOS_DLL GEOSCoordSeq_getX_r(
498  GEOSContextHandle_t handle,
499  const GEOSCoordSequence* s,
500  unsigned int idx, double *val);
501 
503 extern int GEOS_DLL GEOSCoordSeq_getY_r(
504  GEOSContextHandle_t handle,
505  const GEOSCoordSequence* s,
506  unsigned int idx, double *val);
507 
509 extern int GEOS_DLL GEOSCoordSeq_getZ_r(
510  GEOSContextHandle_t handle,
511  const GEOSCoordSequence* s,
512  unsigned int idx, double *val);
513 
515 extern int GEOS_DLL GEOSCoordSeq_getXY_r(
516  GEOSContextHandle_t handle,
517  const GEOSCoordSequence* s,
518  unsigned int idx,
519  double *x, double *y);
520 
522 extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
523  GEOSContextHandle_t handle,
524  const GEOSCoordSequence* s,
525  unsigned int idx,
526  double *x, double *y, double *z);
527 
529 extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
530  GEOSContextHandle_t handle,
531  const GEOSCoordSequence* s,
532  unsigned int idx,
533  unsigned int dim, double *val);
534 
536 extern int GEOS_DLL GEOSCoordSeq_getSize_r(
537  GEOSContextHandle_t handle,
538  const GEOSCoordSequence* s,
539  unsigned int *size);
540 
542 extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(
543  GEOSContextHandle_t handle,
544  const GEOSCoordSequence* s,
545  unsigned int *dims);
546 
548 extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
549  GEOSContextHandle_t handle,
550  const GEOSCoordSequence* s,
551  char* is_ccw);
552 
553 /* ========= Linear referencing functions ========= */
554 
556 extern double GEOS_DLL GEOSProject_r(
557  GEOSContextHandle_t handle,
558  const GEOSGeometry *line,
559  const GEOSGeometry *point);
560 
563  GEOSContextHandle_t handle,
564  const GEOSGeometry *line,
565  double d);
566 
568 extern double GEOS_DLL GEOSProjectNormalized_r(
569  GEOSContextHandle_t handle,
570  const GEOSGeometry *g,
571  const GEOSGeometry *p);
572 
575  GEOSContextHandle_t handle,
576  const GEOSGeometry *g,
577  double d);
578 
579 /* ========== Buffer related functions ========== */
580 
582 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
583  GEOSContextHandle_t handle,
584  const GEOSGeometry* g,
585  double width, int quadsegs);
586 
592 
595 
598 
601 };
602 
623 };
624 
627  GEOSContextHandle_t handle);
628 
630 extern void GEOS_DLL GEOSBufferParams_destroy_r(
631  GEOSContextHandle_t handle,
632  GEOSBufferParams* parms);
633 
636  GEOSContextHandle_t handle,
637  GEOSBufferParams* p,
638  int style);
639 
642  GEOSContextHandle_t handle,
643  GEOSBufferParams* p,
644  int joinStyle);
645 
648  GEOSContextHandle_t handle,
649  GEOSBufferParams* p,
650  double mitreLimit);
651 
654  GEOSContextHandle_t handle,
655  GEOSBufferParams* p,
656  int quadSegs);
657 
660  GEOSContextHandle_t handle,
661  GEOSBufferParams* p,
662  int singleSided);
663 
666  GEOSContextHandle_t handle,
667  const GEOSGeometry* g,
668  const GEOSBufferParams* p,
669  double width);
670 
673  GEOSContextHandle_t handle,
674  const GEOSGeometry* g,
675  double width, int quadsegs, int endCapStyle,
676  int joinStyle, double mitreLimit);
677 
679 extern GEOSGeometry GEOS_DLL *GEOSDensify_r(
680  GEOSContextHandle_t handle,
681  const GEOSGeometry* g,
682  double tolerance);
683 
686  GEOSContextHandle_t handle,
687  const GEOSGeometry* g, double width, int quadsegs,
688  int joinStyle, double mitreLimit);
689 
690 
691 /* ========= Geometry Constructors ========= */
692 
695  GEOSContextHandle_t handle,
696  GEOSCoordSequence* s);
697 
700  GEOSContextHandle_t handle,
701  double x, double y);
702 
705  GEOSContextHandle_t handle);
706 
709  GEOSContextHandle_t handle,
710  GEOSCoordSequence* s);
711 
714  GEOSContextHandle_t handle,
715  GEOSCoordSequence* s);
716 
719  GEOSContextHandle_t handle);
720 
723  GEOSContextHandle_t handle);
724 
727  GEOSContextHandle_t handle,
728  GEOSGeometry* shell,
729  GEOSGeometry** holes,
730  unsigned int nholes);
731 
734  GEOSContextHandle_t handle,
735  int type,
736  GEOSGeometry* *geoms,
737  unsigned int ngeoms);
738 
741  GEOSContextHandle_t handle,
742  GEOSGeometry * collection,
743  unsigned int * ngeoms);
744 
747  GEOSContextHandle_t handle, int type);
748 
751  GEOSContextHandle_t handle,
752  double xmin, double ymin,
753  double xmax, double ymax);
754 
757  GEOSContextHandle_t handle,
758  const GEOSGeometry* g);
759 
760 /* ========= Memory management ========= */
761 
763 extern void GEOS_DLL GEOSGeom_destroy_r(
764  GEOSContextHandle_t handle,
765  GEOSGeometry* g);
766 
767 /* ========= Coverages ========= */
768 
770 extern GEOSGeometry GEOS_DLL *
772  GEOSContextHandle_t handle,
773  const GEOSGeometry* g);
774 
776 extern int GEOS_DLL
778  GEOSContextHandle_t extHandle,
779  const GEOSGeometry* input,
780  double gapWidth,
781  GEOSGeometry** output);
782 
784 extern GEOSGeometry GEOS_DLL *
786  GEOSContextHandle_t extHandle,
787  const GEOSGeometry* input,
788  double tolerance,
789  int preserveBoundary);
790 
791 /* ========= Topology Operations ========= */
792 
794 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(
795  GEOSContextHandle_t handle,
796  const GEOSGeometry* g);
797 
800  GEOSContextHandle_t handle,
801  const GEOSGeometry* g1,
802  const GEOSGeometry* g2);
803 
806  GEOSContextHandle_t handle,
807  const GEOSGeometry* g1,
808  const GEOSGeometry* g2,
809  double gridSize);
810 
813  GEOSContextHandle_t handle,
814  const GEOSGeometry* g);
815 
818  GEOSContextHandle_t handle,
819  const GEOSGeometry* g,
820  double ratio,
821  unsigned int allowHoles);
822 
825  GEOSContextHandle_t handle,
826  const GEOSGeometry* g,
827  double ratio,
828  unsigned int allowHoles);
829 
832  GEOSContextHandle_t handle,
833  const GEOSGeometry* g,
834  unsigned int isOuter,
835  double vertexNumFraction);
836 
839  GEOSContextHandle_t handle,
840  const GEOSGeometry* g,
841  unsigned int isOuter,
842  unsigned int parameterMode,
843  double parameter);
844 
847  GEOSContextHandle_t handle,
848  const GEOSGeometry* g,
849  double lengthRatio,
850  unsigned int isTight,
851  unsigned int isHolesAllowed);
852 
855  GEOSContextHandle_t handle,
856  const GEOSGeometry* g);
857 
860  GEOSContextHandle_t handle,
861  const GEOSGeometry* g,
862  double tolerance);
863 
866  GEOSContextHandle_t handle,
867  const GEOSGeometry* g,
868  const GEOSGeometry* boundary,
869  double tolerance);
870 
873  GEOSContextHandle_t handle,
874  const GEOSGeometry* g);
875 
878  GEOSContextHandle_t handle,
879  const GEOSGeometry* g);
880 
882 extern int GEOS_DLL GEOSMinimumClearance_r(
883  GEOSContextHandle_t handle,
884  const GEOSGeometry* g,
885  double* distance);
886 
889  GEOSContextHandle_t handle,
890  const GEOSGeometry* g1,
891  const GEOSGeometry* g2);
892 
895  GEOSContextHandle_t handle,
896  const GEOSGeometry* g1,
897  const GEOSGeometry* g2,
898  double gridSize);
899 
902  GEOSContextHandle_t handle,
903  const GEOSGeometry* g1,
904  const GEOSGeometry* g2);
905 
908  GEOSContextHandle_t handle,
909  const GEOSGeometry* g1,
910  const GEOSGeometry* g2,
911  double gridSize);
912 
914 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(
915  GEOSContextHandle_t handle,
916  const GEOSGeometry* g);
917 
919 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
920  GEOSContextHandle_t handle,
921  const GEOSGeometry* g1,
922  const GEOSGeometry* g2);
923 
925 extern GEOSGeometry GEOS_DLL *GEOSUnionPrec_r(
926  GEOSContextHandle_t handle,
927  const GEOSGeometry* g1,
928  const GEOSGeometry* g2,
929  double gridSize);
930 
933  GEOSContextHandle_t handle,
934  const GEOSGeometry* g);
935 
938  GEOSContextHandle_t handle,
939  const GEOSGeometry* g,
940  double gridSize);
941 
944  GEOSContextHandle_t handle,
945  const GEOSGeometry* g);
946 
949  GEOSContextHandle_t handle,
950  const GEOSGeometry* g);
951 
954  GEOSContextHandle_t handle,
955  const GEOSGeometry* g);
956 
959  GEOSContextHandle_t handle,
960  const GEOSGeometry* g,
961  double* radius,
962  GEOSGeometry** center);
963 
965 extern GEOSGeometry GEOS_DLL *GEOSNode_r(
966  GEOSContextHandle_t handle,
967  const GEOSGeometry* g);
968 
971  GEOSContextHandle_t handle,
972  const GEOSGeometry* g,
973  double xmin, double ymin,
974  double xmax, double ymax);
975 
978  GEOSContextHandle_t handle,
979  const GEOSGeometry *const geoms[],
980  unsigned int ngeoms);
981 
984  GEOSContextHandle_t handle,
985  const GEOSGeometry *const geoms[],
986  unsigned int ngems);
987 
990  GEOSContextHandle_t handle,
991  const GEOSGeometry * const geoms[],
992  unsigned int ngeoms);
993 
996  GEOSContextHandle_t handle,
997  const GEOSGeometry* input,
998  GEOSGeometry** cuts,
999  GEOSGeometry** dangles,
1000  GEOSGeometry** invalidRings);
1001 
1004  GEOSContextHandle_t handle,
1005  const GEOSGeometry* g);
1006 
1009  GEOSContextHandle_t handle,
1010  const GEOSGeometry* g);
1011 
1014  GEOSContextHandle_t handle,
1015  const GEOSGeometry* g);
1016 
1019  GEOSContextHandle_t handle,
1020  const GEOSGeometry* g,
1021  double start_fraction,
1022  double end_fdraction);
1023 
1025 extern GEOSGeometry GEOS_DLL *GEOSReverse_r(
1026  GEOSContextHandle_t handle,
1027  const GEOSGeometry* g);
1028 
1030 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(
1031  GEOSContextHandle_t handle,
1032  const GEOSGeometry* g,
1033  double tolerance);
1034 
1037  GEOSContextHandle_t handle,
1038  const GEOSGeometry* g, double tolerance);
1039 
1042  GEOSContextHandle_t handle,
1043  const GEOSGeometry* g);
1044 
1047  GEOSContextHandle_t handle,
1048  const GEOSGeometry* g1,
1049  const GEOSGeometry* g2);
1050 
1052 extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
1053  GEOSContextHandle_t handle,
1054  const GEOSGeometry* g1,
1055  const GEOSGeometry* g2,
1056  double tolerance);
1057 
1060  GEOSContextHandle_t handle,
1061  const GEOSGeometry *g,
1062  double tolerance,
1063  int onlyEdges);
1064 
1067  GEOSContextHandle_t handle,
1068  const GEOSGeometry *g);
1069 
1072  GEOSContextHandle_t extHandle,
1073  const GEOSGeometry *g,
1074  const GEOSGeometry *env,
1075  double tolerance,
1076  int flags);
1077 
1079 extern int GEOS_DLL GEOSSegmentIntersection_r(
1080  GEOSContextHandle_t extHandle,
1081  double ax0, double ay0,
1082  double ax1, double ay1,
1083  double bx0, double by0,
1084  double bx1, double by1,
1085  double* cx, double* cy);
1086 
1087 /* ========= Binary predicates ========= */
1088 
1090 extern char GEOS_DLL GEOSDisjoint_r(
1091  GEOSContextHandle_t handle,
1092  const GEOSGeometry* g1,
1093  const GEOSGeometry* g2);
1094 
1096 extern char GEOS_DLL GEOSTouches_r(
1097  GEOSContextHandle_t handle,
1098  const GEOSGeometry* g1,
1099  const GEOSGeometry* g2);
1100 
1102 extern char GEOS_DLL GEOSIntersects_r(
1103  GEOSContextHandle_t handle,
1104  const GEOSGeometry* g1,
1105  const GEOSGeometry* g2);
1106 
1108 extern char GEOS_DLL GEOSCrosses_r(
1109  GEOSContextHandle_t handle,
1110  const GEOSGeometry* g1,
1111  const GEOSGeometry* g2);
1112 
1114 extern char GEOS_DLL GEOSWithin_r(
1115  GEOSContextHandle_t handle,
1116  const GEOSGeometry* g1,
1117  const GEOSGeometry* g2);
1118 
1120 extern char GEOS_DLL GEOSContains_r(
1121  GEOSContextHandle_t handle,
1122  const GEOSGeometry* g1,
1123  const GEOSGeometry* g2);
1124 
1126 extern char GEOS_DLL GEOSOverlaps_r(
1127  GEOSContextHandle_t handle,
1128  const GEOSGeometry* g1,
1129  const GEOSGeometry* g2);
1130 
1132 extern char GEOS_DLL GEOSEquals_r(
1133  GEOSContextHandle_t handle,
1134  const GEOSGeometry* g1,
1135  const GEOSGeometry* g2);
1136 
1138 extern char GEOS_DLL GEOSEqualsExact_r(
1139  GEOSContextHandle_t handle,
1140  const GEOSGeometry* g1,
1141  const GEOSGeometry* g2,
1142  double tolerance);
1143 
1145 extern char GEOS_DLL GEOSEqualsIdentical_r(
1146  GEOSContextHandle_t handle,
1147  const GEOSGeometry* g1,
1148  const GEOSGeometry* g2);
1149 
1151 extern char GEOS_DLL GEOSCovers_r(
1152  GEOSContextHandle_t handle,
1153  const GEOSGeometry* g1,
1154  const GEOSGeometry* g2);
1155 
1157 extern char GEOS_DLL GEOSCoveredBy_r(
1158  GEOSContextHandle_t handle,
1159  const GEOSGeometry* g1,
1160  const GEOSGeometry* g2);
1161 
1162 /* ========= Prepared Geometry Binary Predicates ========== */
1163 
1165 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
1166  GEOSContextHandle_t handle,
1167  const GEOSGeometry* g);
1168 
1170 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1171  GEOSContextHandle_t handle,
1172  const GEOSPreparedGeometry* g);
1173 
1175 extern char GEOS_DLL GEOSPreparedContains_r(
1176  GEOSContextHandle_t handle,
1177  const GEOSPreparedGeometry* pg1,
1178  const GEOSGeometry* g2);
1179 
1181 extern char GEOS_DLL GEOSPreparedContainsXY_r(
1182  GEOSContextHandle_t handle,
1183  const GEOSPreparedGeometry* pg1,
1184  double x,
1185  double y);
1186 
1188 extern char GEOS_DLL GEOSPreparedContainsProperly_r(
1189  GEOSContextHandle_t handle,
1190  const GEOSPreparedGeometry* pg1,
1191  const GEOSGeometry* g2);
1192 
1194 extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1195  GEOSContextHandle_t handle,
1196  const GEOSPreparedGeometry* pg1,
1197  const GEOSGeometry* g2);
1198 
1200 extern char GEOS_DLL GEOSPreparedCovers_r(
1201  GEOSContextHandle_t handle,
1202  const GEOSPreparedGeometry* pg1,
1203  const GEOSGeometry* g2);
1204 
1206 extern char GEOS_DLL GEOSPreparedCrosses_r(
1207  GEOSContextHandle_t handle,
1208  const GEOSPreparedGeometry* pg1,
1209  const GEOSGeometry* g2);
1210 
1212 extern char GEOS_DLL GEOSPreparedDisjoint_r(
1213  GEOSContextHandle_t handle,
1214  const GEOSPreparedGeometry* pg1,
1215  const GEOSGeometry* g2);
1216 
1218 extern char GEOS_DLL GEOSPreparedIntersects_r(
1219  GEOSContextHandle_t handle,
1220  const GEOSPreparedGeometry* pg1,
1221  const GEOSGeometry* g2);
1222 
1224 extern char GEOS_DLL GEOSPreparedIntersectsXY_r(
1225  GEOSContextHandle_t handle,
1226  const GEOSPreparedGeometry* pg1,
1227  double x,
1228  double y);
1229 
1231 extern char GEOS_DLL GEOSPreparedOverlaps_r(
1232  GEOSContextHandle_t handle,
1233  const GEOSPreparedGeometry* pg1,
1234  const GEOSGeometry* g2);
1235 
1237 extern char GEOS_DLL GEOSPreparedTouches_r(
1238  GEOSContextHandle_t handle,
1239  const GEOSPreparedGeometry* pg1,
1240  const GEOSGeometry* g2);
1241 
1243 extern char GEOS_DLL GEOSPreparedWithin_r(
1244  GEOSContextHandle_t handle,
1245  const GEOSPreparedGeometry* pg1,
1246  const GEOSGeometry* g2);
1247 
1250  GEOSContextHandle_t handle,
1251  const GEOSPreparedGeometry* pg1,
1252  const GEOSGeometry* g2);
1253 
1255 extern int GEOS_DLL GEOSPreparedDistance_r(
1256  GEOSContextHandle_t handle,
1257  const GEOSPreparedGeometry* pg1,
1258  const GEOSGeometry* g2, double *dist);
1259 
1261 extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1262  GEOSContextHandle_t handle,
1263  const GEOSPreparedGeometry* pg1,
1264  const GEOSGeometry* g2, double dist);
1265 
1266 /* ========== STRtree ========== */
1267 
1270  GEOSContextHandle_t handle,
1271  size_t nodeCapacity);
1272 
1274 extern int GEOS_DLL GEOSSTRtree_build_r(
1275  GEOSContextHandle_t handle,
1276  GEOSSTRtree *tree);
1277 
1279 extern void GEOS_DLL GEOSSTRtree_insert_r(
1280  GEOSContextHandle_t handle,
1281  GEOSSTRtree *tree,
1282  const GEOSGeometry *g,
1283  void *item);
1284 
1286 extern void GEOS_DLL GEOSSTRtree_query_r(
1287  GEOSContextHandle_t handle,
1288  GEOSSTRtree *tree,
1289  const GEOSGeometry *g,
1290  GEOSQueryCallback callback,
1291  void *userdata);
1292 
1294 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(
1295  GEOSContextHandle_t handle,
1296  GEOSSTRtree *tree,
1297  const GEOSGeometry* geom);
1298 
1300 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1301  GEOSContextHandle_t handle,
1302  GEOSSTRtree *tree,
1303  const void* item,
1304  const GEOSGeometry* itemEnvelope,
1305  GEOSDistanceCallback distancefn,
1306  void* userdata);
1307 
1309 extern void GEOS_DLL GEOSSTRtree_iterate_r(
1310  GEOSContextHandle_t handle,
1311  GEOSSTRtree *tree,
1312  GEOSQueryCallback callback,
1313  void *userdata);
1314 
1316 extern char GEOS_DLL GEOSSTRtree_remove_r(
1317  GEOSContextHandle_t handle,
1318  GEOSSTRtree *tree,
1319  const GEOSGeometry *g,
1320  void *item);
1321 
1323 extern void GEOS_DLL GEOSSTRtree_destroy_r(
1324  GEOSContextHandle_t handle,
1325  GEOSSTRtree *tree);
1326 
1327 
1328 /* ========= Unary predicate ========= */
1329 
1331 extern char GEOS_DLL GEOSisEmpty_r(
1332  GEOSContextHandle_t handle,
1333  const GEOSGeometry* g);
1334 
1336 extern char GEOS_DLL GEOSisSimple_r(
1337  GEOSContextHandle_t handle,
1338  const GEOSGeometry* g);
1339 
1341 extern char GEOS_DLL GEOSisRing_r(
1342  GEOSContextHandle_t handle,
1343  const GEOSGeometry* g);
1344 
1346 extern char GEOS_DLL GEOSHasZ_r(
1347  GEOSContextHandle_t handle,
1348  const GEOSGeometry* g);
1349 
1351 extern char GEOS_DLL GEOSHasM_r(
1352  GEOSContextHandle_t handle,
1353  const GEOSGeometry* g);
1354 
1356 extern char GEOS_DLL GEOSisClosed_r(
1357  GEOSContextHandle_t handle,
1358  const GEOSGeometry *g);
1359 
1360 /* ========== Dimensionally Extended 9 Intersection Model ========== */
1361 
1377 };
1378 
1380 extern char GEOS_DLL GEOSRelatePattern_r(
1381  GEOSContextHandle_t handle,
1382  const GEOSGeometry* g1,
1383  const GEOSGeometry* g2,
1384  const char *pat);
1385 
1387 extern char GEOS_DLL *GEOSRelate_r(
1388  GEOSContextHandle_t handle,
1389  const GEOSGeometry* g1,
1390  const GEOSGeometry* g2);
1391 
1393 extern char GEOS_DLL GEOSRelatePatternMatch_r(
1394  GEOSContextHandle_t handle,
1395  const char *mat,
1396  const char *pat);
1397 
1399 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1400  GEOSContextHandle_t handle,
1401  const GEOSGeometry* g1,
1402  const GEOSGeometry* g2,
1403  int bnr);
1404 
1405 /* ========= Validity checking ========= */
1406 
1409 {
1412 };
1413 
1415 extern char GEOS_DLL GEOSisValid_r(
1416  GEOSContextHandle_t handle,
1417  const GEOSGeometry* g);
1418 
1420 extern char GEOS_DLL *GEOSisValidReason_r(
1421  GEOSContextHandle_t handle,
1422  const GEOSGeometry* g);
1423 
1425 extern char GEOS_DLL GEOSisValidDetail_r(
1426  GEOSContextHandle_t handle,
1427  const GEOSGeometry* g,
1428  int flags,
1429  char** reason,
1430  GEOSGeometry** location);
1431 
1432 /* ========== Make Valid ========== */
1433 
1449 };
1450 
1453  GEOSContextHandle_t extHandle);
1454 
1456 extern void GEOS_DLL GEOSMakeValidParams_destroy_r(
1457  GEOSContextHandle_t handle,
1458  GEOSMakeValidParams* parms);
1459 
1462  GEOSContextHandle_t handle,
1464  int style);
1465 
1468  GEOSContextHandle_t handle,
1470  enum GEOSMakeValidMethods method);
1471 
1474  GEOSContextHandle_t handle,
1475  const GEOSGeometry* g);
1476 
1479  GEOSContextHandle_t handle,
1480  const GEOSGeometry* g,
1481  const GEOSMakeValidParams* makeValidParams);
1482 
1485  GEOSContextHandle_t handle,
1486  const GEOSGeometry* g,
1487  double tolerance);
1488 
1489 /* ========== Geometry info ========== */
1490 
1492 /* Return NULL on exception, result must be freed by caller. */
1493 extern char GEOS_DLL *GEOSGeomType_r(
1494  GEOSContextHandle_t handle,
1495  const GEOSGeometry* g);
1496 
1498 extern int GEOS_DLL GEOSGeomTypeId_r(
1499  GEOSContextHandle_t handle,
1500  const GEOSGeometry* g);
1501 
1503 extern int GEOS_DLL GEOSGetSRID_r(
1504  GEOSContextHandle_t handle,
1505  const GEOSGeometry* g);
1506 
1508 extern void GEOS_DLL GEOSSetSRID_r(
1509  GEOSContextHandle_t handle,
1510  GEOSGeometry* g, int SRID);
1511 
1513 extern void GEOS_DLL *GEOSGeom_getUserData_r(
1514  GEOSContextHandle_t handle,
1515  const GEOSGeometry* g);
1516 
1518 extern void GEOS_DLL GEOSGeom_setUserData_r(
1519  GEOSContextHandle_t handle,
1520  GEOSGeometry* g,
1521  void* userData);
1522 
1524 extern int GEOS_DLL GEOSGetNumGeometries_r(
1525  GEOSContextHandle_t handle,
1526  const GEOSGeometry* g);
1527 
1529 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1530  GEOSContextHandle_t handle,
1531  const GEOSGeometry* g, int n);
1532 
1534 extern int GEOS_DLL GEOSNormalize_r(
1535  GEOSContextHandle_t handle,
1536  GEOSGeometry* g);
1537 
1539 extern int GEOS_DLL GEOSOrientPolygons_r(
1540  GEOSContextHandle_t handle,
1541  GEOSGeometry* g,
1542  int exteriorCW);
1543 
1555 };
1556 
1559  GEOSContextHandle_t handle,
1560  const GEOSGeometry *g,
1561  double gridSize,
1562  int flags);
1563 
1565 extern double GEOS_DLL GEOSGeom_getPrecision_r(
1566  GEOSContextHandle_t handle,
1567  const GEOSGeometry *g);
1568 
1570 extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1571  GEOSContextHandle_t handle,
1572  const GEOSGeometry* g);
1573 
1575 extern int GEOS_DLL GEOSGeomGetNumPoints_r(
1576  GEOSContextHandle_t handle,
1577  const GEOSGeometry* g);
1578 
1580 extern int GEOS_DLL GEOSGeomGetX_r(
1581  GEOSContextHandle_t handle,
1582  const GEOSGeometry *g,
1583  double *x);
1584 
1586 extern int GEOS_DLL GEOSGeomGetY_r(
1587  GEOSContextHandle_t handle,
1588  const GEOSGeometry *g,
1589  double *y);
1590 
1592 extern int GEOS_DLL GEOSGeomGetZ_r(
1593  GEOSContextHandle_t handle,
1594  const GEOSGeometry *g,
1595  double *z);
1596 
1598 extern int GEOS_DLL GEOSGeomGetM_r(
1599  GEOSContextHandle_t handle,
1600  const GEOSGeometry *g,
1601  double *m);
1602 
1604 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
1605  GEOSContextHandle_t handle,
1606  const GEOSGeometry* g, int n);
1607 
1609 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
1610  GEOSContextHandle_t handle,
1611  const GEOSGeometry* g);
1612 
1614 extern int GEOS_DLL GEOSGetNumCoordinates_r(
1615  GEOSContextHandle_t handle,
1616  const GEOSGeometry* g);
1617 
1620  GEOSContextHandle_t handle,
1621  const GEOSGeometry* g);
1622 
1624 extern int GEOS_DLL GEOSGeom_getDimensions_r(
1625  GEOSContextHandle_t handle,
1626  const GEOSGeometry* g);
1627 
1630  GEOSContextHandle_t handle,
1631  const GEOSGeometry* g);
1632 
1634 extern int GEOS_DLL GEOSGeom_getXMin_r(
1635  GEOSContextHandle_t handle,
1636  const GEOSGeometry* g,
1637  double* value);
1638 
1640 extern int GEOS_DLL GEOSGeom_getYMin_r(
1641  GEOSContextHandle_t handle,
1642  const GEOSGeometry* g,
1643  double* value);
1644 
1646 extern int GEOS_DLL GEOSGeom_getXMax_r(
1647  GEOSContextHandle_t handle,
1648  const GEOSGeometry* g,
1649  double* value);
1650 
1652 extern int GEOS_DLL GEOSGeom_getYMax_r(
1653  GEOSContextHandle_t handle,
1654  const GEOSGeometry* g,
1655  double* value);
1656 
1658 extern int GEOS_DLL GEOSGeom_getExtent_r(
1659  GEOSContextHandle_t handle,
1660  const GEOSGeometry* g,
1661  double* xmin,
1662  double* ymin,
1663  double* xmax,
1664  double* ymax);
1665 
1668  GEOSContextHandle_t handle,
1669  const GEOSGeometry *g,
1670  int n);
1671 
1674  GEOSContextHandle_t handle,
1675  const GEOSGeometry *g);
1676 
1679  GEOSContextHandle_t handle,
1680  const GEOSGeometry *g);
1681 
1682 /* ========= Misc functions ========= */
1683 
1685 extern int GEOS_DLL GEOSArea_r(
1686  GEOSContextHandle_t handle,
1687  const GEOSGeometry* g,
1688  double *area);
1689 
1691 extern int GEOS_DLL GEOSLength_r(
1692  GEOSContextHandle_t handle,
1693  const GEOSGeometry* g,
1694  double *length);
1695 
1697 extern int GEOS_DLL GEOSDistance_r(
1698  GEOSContextHandle_t handle,
1699  const GEOSGeometry* g1,
1700  const GEOSGeometry* g2,
1701  double *dist);
1702 
1704 extern char GEOS_DLL GEOSDistanceWithin_r(
1705  GEOSContextHandle_t handle,
1706  const GEOSGeometry* g1,
1707  const GEOSGeometry* g2,
1708  double dist);
1709 
1711 extern int GEOS_DLL GEOSDistanceIndexed_r(
1712  GEOSContextHandle_t handle,
1713  const GEOSGeometry* g1,
1714  const GEOSGeometry* g2,
1715  double *dist);
1716 
1718 extern int GEOS_DLL GEOSHausdorffDistance_r(
1719  GEOSContextHandle_t handle,
1720  const GEOSGeometry *g1,
1721  const GEOSGeometry *g2,
1722  double *dist);
1723 
1726  GEOSContextHandle_t handle,
1727  const GEOSGeometry *g1,
1728  const GEOSGeometry *g2,
1729  double densifyFrac, double *dist);
1730 
1732 extern int GEOS_DLL GEOSFrechetDistance_r(
1733  GEOSContextHandle_t handle,
1734  const GEOSGeometry *g1,
1735  const GEOSGeometry *g2,
1736  double *dist);
1737 
1739 extern int GEOS_DLL GEOSFrechetDistanceDensify_r(
1740  GEOSContextHandle_t handle,
1741  const GEOSGeometry *g1,
1742  const GEOSGeometry *g2,
1743  double densifyFrac,
1744  double *dist);
1745 
1746 
1748 extern int GEOS_DLL GEOSHilbertCode_r(
1749  GEOSContextHandle_t handle,
1750  const GEOSGeometry *geom,
1751  const GEOSGeometry* extent,
1752  unsigned int level,
1753  unsigned int *code
1754 );
1755 
1757 extern int GEOS_DLL GEOSGeomGetLength_r(
1758  GEOSContextHandle_t handle,
1759  const GEOSGeometry *g,
1760  double *length);
1761 
1764  GEOSContextHandle_t handle,
1765  const GEOSGeometry* g1,
1766  const GEOSGeometry* g2);
1767 
1770  GEOSContextHandle_t handle,
1771  const GEOSGeometry* g,
1772  GEOSTransformXYCallback callback,
1773  void* userdata);
1774 
1775 /* ========= Algorithms ========= */
1776 
1778 extern int GEOS_DLL GEOSOrientationIndex_r(
1779  GEOSContextHandle_t handle,
1780  double Ax, double Ay,
1781  double Bx, double By,
1782  double Px, double Py);
1783 
1784 
1785 /* ========== Reader and Writer APIs ========== */
1786 
1787 #ifndef GEOSWKTReader
1788 
1794 typedef struct GEOSWKTReader_t GEOSWKTReader;
1795 
1801 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1802 
1808 typedef struct GEOSWKBReader_t GEOSWKBReader;
1809 
1815 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1816 
1822 typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
1823 
1829 typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
1830 
1831 #endif
1832 
1833 /* ========== WKT Reader ========== */
1834 
1837  GEOSContextHandle_t handle);
1838 
1840 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
1841  GEOSWKTReader* reader);
1842 
1845  GEOSContextHandle_t handle,
1846  GEOSWKTReader* reader,
1847  const char *wkt);
1848 
1850 extern void GEOS_DLL GEOSWKTReader_setFixStructure_r(
1851  GEOSContextHandle_t handle,
1852  GEOSWKTReader *reader,
1853  char doFix);
1854 
1855 /* ========== WKT Writer ========== */
1856 
1859  GEOSContextHandle_t handle);
1860 
1862 extern void GEOS_DLL GEOSWKTWriter_destroy_r(
1863  GEOSContextHandle_t handle,
1864  GEOSWKTWriter* writer);
1865 
1867 extern char GEOS_DLL *GEOSWKTWriter_write_r(
1868  GEOSContextHandle_t handle,
1869  GEOSWKTWriter* writer,
1870  const GEOSGeometry* g);
1871 
1873 extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
1874  GEOSContextHandle_t handle,
1875  GEOSWKTWriter *writer,
1876  char trim);
1877 
1880  GEOSContextHandle_t handle,
1881  GEOSWKTWriter *writer,
1882  int precision);
1883 
1886  GEOSContextHandle_t handle,
1887  GEOSWKTWriter *writer,
1888  int dim);
1889 
1892  GEOSContextHandle_t handle,
1893  GEOSWKTWriter *writer);
1894 
1896 extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
1897  GEOSContextHandle_t handle,
1898  GEOSWKTWriter *writer,
1899  int useOld3D);
1900 
1901 /* ========== WKB Reader ========== */
1902 
1905  GEOSContextHandle_t handle);
1906 
1908 extern void GEOS_DLL GEOSWKBReader_destroy_r(
1909  GEOSContextHandle_t handle,
1910  GEOSWKBReader* reader);
1911 
1913 extern void GEOS_DLL GEOSWKBReader_setFixStructure_r(
1914  GEOSContextHandle_t handle,
1915  GEOSWKBReader *reader,
1916  char doFix);
1917 
1920  GEOSContextHandle_t handle,
1921  GEOSWKBReader* reader,
1922  const unsigned char *wkb,
1923  size_t size);
1924 
1927  GEOSContextHandle_t handle,
1928  GEOSWKBReader* reader,
1929  const unsigned char *hex,
1930  size_t size);
1931 
1932 
1933 /* ========== WKB Writer ========== */
1934 
1937  GEOSContextHandle_t handle);
1938 
1940 extern void GEOS_DLL GEOSWKBWriter_destroy_r(
1941  GEOSContextHandle_t handle,
1942  GEOSWKBWriter* writer);
1943 
1945 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1946  GEOSContextHandle_t handle,
1947  GEOSWKBWriter* writer,
1948  const GEOSGeometry* g,
1949  size_t *size);
1950 
1952 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1953  GEOSContextHandle_t handle,
1954  GEOSWKBWriter* writer,
1955  const GEOSGeometry* g,
1956  size_t *size);
1957 
1960  GEOSContextHandle_t handle,
1961  const GEOSWKBWriter* writer);
1962 
1965  GEOSContextHandle_t handle,
1966  GEOSWKBWriter* writer, int newDimension);
1967 
1969 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(
1970  GEOSContextHandle_t handle,
1971  const GEOSWKBWriter* writer);
1972 
1974 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
1975  GEOSContextHandle_t handle,
1976  GEOSWKBWriter* writer,
1977  int byteOrder);
1978 
1980 extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
1981  GEOSContextHandle_t handle,
1982  const GEOSWKBWriter* writer);
1983 
1985 extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
1986  GEOSContextHandle_t handle,
1987  GEOSWKBWriter* writer,
1988  int flavor);
1989 
1991 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(
1992  GEOSContextHandle_t handle,
1993  const GEOSWKBWriter* writer);
1994 
1996 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(
1997  GEOSContextHandle_t handle,
1998  GEOSWKBWriter* writer, const char writeSRID);
1999 
2000 /* ========== GeoJSON Reader ========== */
2001 
2004  GEOSContextHandle_t handle);
2005 
2008  GEOSGeoJSONReader* reader);
2009 
2012  GEOSContextHandle_t handle,
2013  GEOSGeoJSONReader* reader,
2014  const char *geojson);
2015 
2016 /* ========== GeoJSON Writer ========== */
2017 
2020  GEOSContextHandle_t handle);
2021 
2024  GEOSGeoJSONWriter* writer);
2025 
2028  GEOSContextHandle_t handle,
2029  GEOSGeoJSONWriter* writer,
2030  const GEOSGeometry* g,
2031  int indent);
2032 
2034 extern void GEOS_DLL GEOSFree_r(
2035  GEOSContextHandle_t handle,
2036  void *buffer);
2037 
2045 extern const char GEOS_DLL *GEOSversion(void);
2046 
2047 /*
2048 * External code to GEOS can define GEOS_USE_ONLY_R_API
2049 * to strip the non-reentrant API functions from this header,
2050 * leaving only the "_r" compatible variants.
2051 */
2052 #ifndef GEOS_USE_ONLY_R_API
2053 
2054 /* ========== Initialization, cleanup ================================= */
2059 
2073 extern void GEOS_DLL initGEOS(
2074  GEOSMessageHandler notice_function,
2075  GEOSMessageHandler error_function);
2076 
2082 extern void GEOS_DLL finishGEOS(void);
2083 
2091 extern void GEOS_DLL GEOSFree(void *buffer);
2092 
2094 
2095 /* ========= Coordinate Sequence functions ========= */
2100 
2109 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
2110 
2121 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
2122 
2134 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
2135 
2146 extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
2147 
2159 extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
2160 
2168 
2174 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
2175 
2184 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
2185  unsigned int idx, double val);
2194 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
2195  unsigned int idx, double val);
2204 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
2205  unsigned int idx, double val);
2216 extern int GEOS_DLL GEOSCoordSeq_setXY(GEOSCoordSequence* s,
2217  unsigned int idx, double x, double y);
2230  unsigned int idx, double x, double y, double z);
2241  unsigned int idx, unsigned int dim, double val);
2242 
2251 extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2252  unsigned int idx, double *val);
2253 
2262 extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2263  unsigned int idx, double *val);
2272 extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2273  unsigned int idx, double *val);
2284 extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2285  unsigned int idx, double *x, double *y);
2297 extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2298  unsigned int idx, double *x, double *y, double *z);
2308 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2309  unsigned int idx, unsigned int dim, double *val);
2310 
2318 extern int GEOS_DLL GEOSCoordSeq_getSize(
2319  const GEOSCoordSequence* s,
2320  unsigned int *size);
2321 
2329 extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2330  const GEOSCoordSequence* s,
2331  unsigned int *dims);
2332 
2342 extern int GEOS_DLL GEOSCoordSeq_isCCW(
2343  const GEOSCoordSequence* s,
2344  char* is_ccw);
2345 
2347 
2348 /* ========= Geometry Constructors ========= */
2353 
2363 
2373 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
2374 
2383 
2392 
2401 
2410 
2419 
2434  GEOSGeometry* shell,
2435  GEOSGeometry** holes,
2436  unsigned int nholes);
2437 
2452  int type,
2453  GEOSGeometry** geoms,
2454  unsigned int ngeoms);
2455 
2473  GEOSGeometry * collection,
2474  unsigned int * ngeoms);
2475 
2485 
2497  double xmin, double ymin,
2498  double xmax, double ymax);
2499 
2507 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
2508 
2514 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
2515 
2517 
2518 /* ========== Geometry info ========== */
2522 
2533 extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
2534 
2541 extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
2542 
2549 extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
2550 
2561 extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
2562 
2573 extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
2574 
2590 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
2591  const GEOSGeometry* g,
2592  int n);
2593 
2603 extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
2604 
2612 extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
2613 
2621 extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
2622 
2631 extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
2632 
2641 extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
2642 
2652 extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
2653 
2663 extern int GEOS_DLL GEOSGeomGetM(const GEOSGeometry *g, double *m);
2664 
2674 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
2675  const GEOSGeometry* g,
2676  int n);
2677 
2686 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
2687  const GEOSGeometry* g);
2688 
2696 extern int GEOS_DLL GEOSGetNumCoordinates(
2697  const GEOSGeometry* g);
2698 
2709  const GEOSGeometry* g);
2710 
2723 extern int GEOS_DLL GEOSGeom_getDimensions(
2724  const GEOSGeometry* g);
2725 
2738  const GEOSGeometry* g);
2739 
2748 extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
2749 
2758 extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
2759 
2768 extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
2769 
2778 extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
2779 
2793 extern int GEOS_DLL GEOSGeom_getExtent(
2794  const GEOSGeometry* g,
2795  double* xmin,
2796  double* ymin,
2797  double* xmax,
2798  double* ymax);
2799 
2809 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
2810 
2820 
2829 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(const GEOSGeometry *g);
2830 
2831 
2840 extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
2841 
2850 extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
2851 
2858 extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
2859 
2867 extern char GEOS_DLL GEOSHasM(const GEOSGeometry* g);
2868 
2877 extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
2878 
2880 
2881 /* ==================================================================================== */
2885 
2893 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
2894 
2902 extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
2903 
2923 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
2924 
2934 extern int GEOS_DLL GEOSOrientPolygons(GEOSGeometry* g,
2935  int exteriorCW);
2936 
2938 
2939 /* ========== Validity checking ============================================================ */
2944 
2953 extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
2954 
2968 extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
2969 
2979 extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
2980 
2995 extern char GEOS_DLL GEOSisValidDetail(
2996  const GEOSGeometry* g,
2997  int flags,
2998  char** reason,
2999  GEOSGeometry** location);
3000 
3008 extern GEOSGeometry GEOS_DLL *GEOSMakeValid(
3009  const GEOSGeometry* g);
3010 
3025  const GEOSGeometry* g,
3026  const GEOSMakeValidParams *makeValidParams);
3027 
3037 
3046 
3055 extern int GEOS_DLL GEOSMakeValidParams_setMethod(
3057  enum GEOSMakeValidMethods method);
3058 
3071  int keepCollapsed);
3072 
3092 extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
3093 
3106 
3125  const GEOSGeometry* g,
3126  double tolerance);
3127 
3129 
3130 /* ========= Metric functions ================================================== */
3134 
3143 extern int GEOS_DLL GEOSArea(
3144  const GEOSGeometry* g,
3145  double *area);
3146 
3154 extern int GEOS_DLL GEOSLength(
3155  const GEOSGeometry* g,
3156  double *length);
3157 
3167 extern int GEOS_DLL GEOSGeomGetLength(
3168  const GEOSGeometry *g,
3169  double *length);
3170 
3172 
3173 /* ========== Distance functions ================================================ */
3178 
3188 extern int GEOS_DLL GEOSDistance(
3189  const GEOSGeometry* g1,
3190  const GEOSGeometry* g2,
3191  double *dist);
3192 
3203 extern char GEOS_DLL GEOSDistanceWithin(
3204  const GEOSGeometry* g1,
3205  const GEOSGeometry* g2,
3206  double dist);
3207 
3221 extern int GEOS_DLL GEOSDistanceIndexed(
3222  const GEOSGeometry* g1,
3223  const GEOSGeometry* g2,
3224  double *dist);
3225 
3238  const GEOSGeometry* g1,
3239  const GEOSGeometry* g2);
3240 
3252 extern int GEOS_DLL GEOSHausdorffDistance(
3253  const GEOSGeometry *g1,
3254  const GEOSGeometry *g2,
3255  double *dist);
3256 
3271 extern int GEOS_DLL GEOSHausdorffDistanceDensify(
3272  const GEOSGeometry *g1,
3273  const GEOSGeometry *g2,
3274  double densifyFrac,
3275  double *dist);
3276 
3290 extern int GEOS_DLL GEOSFrechetDistance(
3291  const GEOSGeometry *g1,
3292  const GEOSGeometry *g2,
3293  double *dist);
3294 
3311 extern int GEOS_DLL GEOSFrechetDistanceDensify(
3312  const GEOSGeometry *g1,
3313  const GEOSGeometry *g2,
3314  double densifyFrac,
3315  double *dist);
3316 
3318 
3319 /* ========== Linear referencing functions */
3324 
3335 extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
3336  const GEOSGeometry* point);
3337 
3349 extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
3350  double d);
3351 
3362 extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
3363  const GEOSGeometry* point);
3364 
3375  const GEOSGeometry *line,
3376  double proportion);
3377 
3379 
3380 /* ========== Overlay functions ========== */
3385 
3397 extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
3398 
3413 extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
3414 
3425 extern GEOSGeometry GEOS_DLL *GEOSDifference(
3426  const GEOSGeometry* ga,
3427  const GEOSGeometry* gb);
3428 
3445  const GEOSGeometry* ga,
3446  const GEOSGeometry* gb,
3447  double gridSize);
3448 
3461  const GEOSGeometry* ga,
3462  const GEOSGeometry* gb);
3463 
3481  const GEOSGeometry* ga,
3482  const GEOSGeometry* gb,
3483  double gridSize);
3484 
3495 extern GEOSGeometry GEOS_DLL *GEOSUnion(
3496  const GEOSGeometry* ga,
3497  const GEOSGeometry* gb);
3498 
3514 extern GEOSGeometry GEOS_DLL *GEOSUnionPrec(
3515  const GEOSGeometry* ga,
3516  const GEOSGeometry* gb,
3517  double gridSize);
3518 
3530 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
3531 
3548  const GEOSGeometry* g,
3549  double gridSize);
3550 
3562 
3578 extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
3579  const GEOSGeometry* g,
3580  double xmin, double ymin,
3581  double xmax, double ymax);
3582 
3602  const GEOSGeometry* g1,
3603  const GEOSGeometry* g2);
3604 
3606 
3607 /* ========== Buffer related functions ========== */
3611 
3624 extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
3625  double width, int quadsegs);
3626 
3636 
3643 extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
3644 
3653  GEOSBufferParams* p,
3654  int style);
3655 
3663 extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
3664  GEOSBufferParams* p,
3665  int joinStyle);
3666 
3679  GEOSBufferParams* p,
3680  double mitreLimit);
3681 
3693  GEOSBufferParams* p,
3694  int quadSegs);
3695 
3707  GEOSBufferParams* p,
3708  int singleSided);
3709 
3721  const GEOSGeometry* g,
3722  const GEOSBufferParams* p,
3723  double width);
3724 
3739  const GEOSGeometry* g,
3740  double width,
3741  int quadsegs,
3742  int endCapStyle,
3743  int joinStyle,
3744  double mitreLimit);
3745 
3768 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(const GEOSGeometry* g,
3769  double width, int quadsegs, int joinStyle, double mitreLimit);
3770 
3772 
3773 
3774 /* ====================================================================== */
3779 
3792 extern GEOSGeometry GEOS_DLL *GEOSCoverageUnion(const GEOSGeometry *g);
3793 
3794 
3818 extern int GEOS_DLL GEOSCoverageIsValid(
3819  const GEOSGeometry* input,
3820  double gapWidth,
3821  GEOSGeometry** invalidEdges);
3822 
3849  const GEOSGeometry* input,
3850  double tolerance,
3851  int preserveBoundary);
3852 
3854 
3855 /* ========== Construction Operations ========== */
3859 
3869 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
3870 
3884 extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
3885 
3895 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
3896 
3928  const GEOSGeometry* g,
3929  double ratio,
3930  unsigned int allowHoles);
3931 
3962  const GEOSGeometry* g,
3963  double length,
3964  unsigned int allowHoles);
3965 
4005  const GEOSGeometry* g,
4006  double lengthRatio,
4007  unsigned int isTight,
4008  unsigned int isHolesAllowed);
4009 
4030  const GEOSGeometry* g,
4031  unsigned int isOuter,
4032  double vertexNumFraction);
4033 
4034 
4043 };
4044 
4067  const GEOSGeometry* g,
4068  unsigned int isOuter,
4069  unsigned int parameterMode,
4070  double parameter);
4071 
4086 
4112  const GEOSGeometry* g,
4113  double tolerance);
4114 
4144  const GEOSGeometry* obstacles,
4145  const GEOSGeometry* boundary,
4146  double tolerance);
4147 
4161 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
4162 
4163 
4173 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(const GEOSGeometry* g);
4174 
4184 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
4185 
4199  const GEOSGeometry* g,
4200  double* radius,
4201  GEOSGeometry** center);
4202 
4217  const GEOSGeometry *g,
4218  double tolerance,
4219  int onlyEdges);
4220 
4233  const GEOSGeometry *g);
4234 
4237 {
4244 };
4245 
4267  const GEOSGeometry *g,
4268  const GEOSGeometry *env,
4269  double tolerance,
4270  int flags);
4271 
4273 
4274 /* ============================================================== */
4278 
4290 extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
4291 
4334 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
4335  const GEOSGeometry * const geoms[],
4336  unsigned int ngeoms);
4337 
4353  const GEOSGeometry * const geoms[],
4354  unsigned int ngeoms);
4355 
4370  const GEOSGeometry * const geoms[],
4371  unsigned int ngeoms);
4372 
4388  const GEOSGeometry* input,
4389  GEOSGeometry** cuts,
4390  GEOSGeometry** dangles,
4391  GEOSGeometry** invalid);
4392 
4404 extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
4405 
4407 
4408 /* ============================================================== */
4412 
4427 extern GEOSGeometry GEOS_DLL *GEOSDensify(
4428  const GEOSGeometry* g,
4429  double tolerance);
4430 
4440 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
4441 
4454 
4467  const GEOSGeometry* g,
4468  double start_fraction,
4469  double end_fraction);
4470 
4481 extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
4482 
4497 extern GEOSGeometry GEOS_DLL *GEOSSimplify(
4498  const GEOSGeometry* g,
4499  double tolerance);
4500 
4518  const GEOSGeometry* g,
4519  double tolerance);
4520 
4532  const GEOSGeometry* g);
4533 
4549 extern int GEOS_DLL GEOSHilbertCode(
4550  const GEOSGeometry *geom,
4551  const GEOSGeometry* extent,
4552  unsigned int level,
4553  unsigned int *code
4554 );
4555 
4571  const GEOSGeometry* g,
4572  GEOSTransformXYCallback callback,
4573  void* userdata);
4574 
4596 extern GEOSGeometry GEOS_DLL *GEOSSnap(
4597  const GEOSGeometry* input,
4598  const GEOSGeometry* snap_target,
4599  double tolerance);
4600 
4631  const GEOSGeometry *g,
4632  double gridSize,
4633  int flags);
4634 
4636 
4637 /* ============================================================== */
4641 
4651 extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
4652 
4662 extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
4663 
4672 extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
4673 
4683 extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
4684 
4694 extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
4695 
4704 extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
4705 
4715 extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
4716 
4725 extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
4726 
4737 extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
4738 
4749 extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
4750 
4768 extern char GEOS_DLL GEOSEqualsExact(
4769  const GEOSGeometry* g1,
4770  const GEOSGeometry* g2,
4771  double tolerance);
4772 
4785 extern char GEOS_DLL GEOSEqualsIdentical(
4786  const GEOSGeometry* g1,
4787  const GEOSGeometry* g2);
4788 
4802 extern char GEOS_DLL GEOSRelatePattern(
4803  const GEOSGeometry* g1,
4804  const GEOSGeometry* g2,
4805  const char *pat);
4806 
4816 extern char GEOS_DLL *GEOSRelate(
4817  const GEOSGeometry* g1,
4818  const GEOSGeometry* g2);
4819 
4829 extern char GEOS_DLL GEOSRelatePatternMatch(
4830  const char *mat,
4831  const char *pat);
4832 
4846 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
4847  const GEOSGeometry* g1,
4848  const GEOSGeometry* g2,
4849  int bnr);
4850 
4852 
4853 /* ========== Prepared Geometry Binary predicates ========== */
4854 
4865 
4880 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
4881 
4890 extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
4891 
4902 extern char GEOS_DLL GEOSPreparedContains(
4903  const GEOSPreparedGeometry* pg1,
4904  const GEOSGeometry* g2);
4905 
4917 extern char GEOS_DLL GEOSPreparedContainsXY(
4918  const GEOSPreparedGeometry* pg1,
4919  double x,
4920  double y);
4921 
4932 extern char GEOS_DLL GEOSPreparedContainsProperly(
4933  const GEOSPreparedGeometry* pg1,
4934  const GEOSGeometry* g2);
4935 
4946 extern char GEOS_DLL GEOSPreparedCoveredBy(
4947  const GEOSPreparedGeometry* pg1,
4948  const GEOSGeometry* g2);
4949 
4960 extern char GEOS_DLL GEOSPreparedCovers(
4961  const GEOSPreparedGeometry* pg1,
4962  const GEOSGeometry* g2);
4963 
4974 extern char GEOS_DLL GEOSPreparedCrosses(
4975  const GEOSPreparedGeometry* pg1,
4976  const GEOSGeometry* g2);
4977 
4988 extern char GEOS_DLL GEOSPreparedDisjoint(
4989  const GEOSPreparedGeometry* pg1,
4990  const GEOSGeometry* g2);
4991 
5002 extern char GEOS_DLL GEOSPreparedIntersects(
5003  const GEOSPreparedGeometry* pg1,
5004  const GEOSGeometry* g2);
5005 
5017 extern char GEOS_DLL GEOSPreparedIntersectsXY(
5018  const GEOSPreparedGeometry* pg1,
5019  double x,
5020  double y);
5021 
5032 extern char GEOS_DLL GEOSPreparedOverlaps(
5033  const GEOSPreparedGeometry* pg1,
5034  const GEOSGeometry* g2);
5035 
5046 extern char GEOS_DLL GEOSPreparedTouches(
5047  const GEOSPreparedGeometry* pg1,
5048  const GEOSGeometry* g2);
5049 
5060 extern char GEOS_DLL GEOSPreparedWithin(
5061  const GEOSPreparedGeometry* pg1,
5062  const GEOSGeometry* g2);
5063 
5077  const GEOSPreparedGeometry* pg1,
5078  const GEOSGeometry* g2);
5079 
5093 extern int GEOS_DLL GEOSPreparedDistance(
5094  const GEOSPreparedGeometry* pg1,
5095  const GEOSGeometry* g2,
5096  double *dist);
5097 
5112 extern char GEOS_DLL GEOSPreparedDistanceWithin(
5113  const GEOSPreparedGeometry* pg1,
5114  const GEOSGeometry* g2,
5115  double dist);
5116 
5118 
5119 /* ========== STRtree functions ========== */
5124 
5138 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
5139 
5151 extern int GEOS_DLL GEOSSTRtree_build(GEOSSTRtree *tree);
5152 
5165 extern void GEOS_DLL GEOSSTRtree_insert(
5166  GEOSSTRtree *tree,
5167  const GEOSGeometry *g,
5168  void *item);
5169 
5184 extern void GEOS_DLL GEOSSTRtree_query(
5185  GEOSSTRtree *tree,
5186  const GEOSGeometry *g,
5187  GEOSQueryCallback callback,
5188  void *userdata);
5189 
5204 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
5205  GEOSSTRtree *tree,
5206  const GEOSGeometry* geom);
5207 
5228 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
5229  GEOSSTRtree *tree,
5230  const void* item,
5231  const GEOSGeometry* itemEnvelope,
5232  GEOSDistanceCallback distancefn,
5233  void* userdata);
5234 
5245 extern void GEOS_DLL GEOSSTRtree_iterate(
5246  GEOSSTRtree *tree,
5247  GEOSQueryCallback callback,
5248  void *userdata);
5249 
5264 extern char GEOS_DLL GEOSSTRtree_remove(
5265  GEOSSTRtree *tree,
5266  const GEOSGeometry *g,
5267  void *item);
5268 
5277 extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
5278 
5280 
5281 /* ========== Algorithms ====================================================== */
5285 
5305 extern int GEOS_DLL GEOSSegmentIntersection(
5306  double ax0, double ay0,
5307  double ax1, double ay1,
5308  double bx0, double by0,
5309  double bx1, double by1,
5310  double* cx, double* cy);
5311 
5327 extern int GEOS_DLL GEOSOrientationIndex(
5328  double Ax, double Ay,
5329  double Bx, double By,
5330  double Px, double Py);
5331 
5333 
5334 /* ========= Reader and Writer APIs ========= */
5335 
5339 /* ========= WKT Reader ========= */
5341 
5347 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create(void);
5348 
5354 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
5355 
5365  GEOSWKTReader* reader,
5366  const char *wkt);
5367 
5376 extern void GEOS_DLL GEOSWKTReader_setFixStructure(
5377  GEOSWKTReader *reader,
5378  char doFix);
5379 
5380 /* ========= WKT Writer ========= */
5381 
5387 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create(void);
5388 
5394 extern void GEOS_DLL GEOSWKTWriter_destroy(
5395  GEOSWKTWriter* writer);
5396 
5406 extern char GEOS_DLL *GEOSWKTWriter_write(
5407  GEOSWKTWriter* writer,
5408  const GEOSGeometry* g);
5409 
5421 extern void GEOS_DLL GEOSWKTWriter_setTrim(
5422  GEOSWKTWriter *writer,
5423  char trim);
5424 
5434  GEOSWKTWriter *writer,
5435  int precision);
5436 
5446  GEOSWKTWriter *writer,
5447  int dim);
5448 
5457 
5468 extern void GEOS_DLL GEOSWKTWriter_setOld3D(
5469  GEOSWKTWriter *writer,
5470  int useOld3D);
5472 
5473 /* ============================================================================== */
5477 
5479 /* ========== WKB Reader ========== */
5485 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create(void);
5486 
5492 extern void GEOS_DLL GEOSWKBReader_destroy(
5493  GEOSWKBReader* reader);
5494 
5503 extern void GEOS_DLL GEOSWKBReader_setFixStructure(
5504  GEOSWKBReader *reader,
5505  char doFix);
5506 
5516  GEOSWKBReader* reader,
5517  const unsigned char *wkb,
5518  size_t size);
5519 
5529  GEOSWKBReader* reader,
5530  const unsigned char *hex,
5531  size_t size);
5532 
5533 /* ========== WKB Writer ========== */
5534 
5540 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create(void);
5541 
5547 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
5548 
5558 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
5559  GEOSWKBWriter* writer,
5560  const GEOSGeometry* g,
5561  size_t *size);
5562 
5572 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
5573  GEOSWKBWriter* writer,
5574  const GEOSGeometry* g,
5575  size_t *size);
5576 
5586  const GEOSWKBWriter* writer);
5587 
5596  GEOSWKBWriter* writer,
5597  int newDimension);
5598 
5608 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
5609  const GEOSWKBWriter* writer);
5610 
5618 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
5619  GEOSWKBWriter* writer,
5620  int byteOrder);
5621 
5636 extern int GEOS_DLL GEOSWKBWriter_getFlavor(
5637  const GEOSWKBWriter* writer);
5638 
5647 extern void GEOS_DLL GEOSWKBWriter_setFlavor(
5648  GEOSWKBWriter* writer,
5649  int flavor);
5650 
5656 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
5657  const GEOSWKBWriter* writer);
5658 
5666 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
5667  GEOSWKBWriter* writer,
5668  const char writeSRID);
5669 
5671 
5672 /* ============================================================================= */
5676 /* ========= GeoJSON Reader ========= */
5678 
5686 
5693 extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
5694 
5706  GEOSGeoJSONReader* reader,
5707  const char *geojson);
5708 
5709 /* ========= GeoJSON Writer ========= */
5710 
5718 
5725 extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
5726 
5737 extern char GEOS_DLL *GEOSGeoJSONWriter_writeGeometry(
5738  GEOSGeoJSONWriter* writer,
5739  const GEOSGeometry* g,
5740  int indent);
5741 
5743 
5744 #endif /* #ifndef GEOS_USE_ONLY_R_API */
5745 
5746 /* ====================================================================== */
5747 /* DEPRECATIONS */
5748 /* ====================================================================== */
5749 
5754 
5760  const GEOSGeometry* g,
5761  double width, int quadsegs,
5762  int joinStyle, double mitreLimit,
5763  int leftSide);
5764 
5769  GEOSContextHandle_t handle,
5770  const GEOSGeometry* g,
5771  double width, int quadsegs,
5772  int joinStyle, double mitreLimit,
5773  int leftSide);
5774 
5780  GEOSMessageHandler notice_function,
5781  GEOSMessageHandler error_function);
5782 
5786 extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
5787 
5792  GEOSContextHandle_t handle,
5793  const char *wkt);
5794 
5798 extern char GEOS_DLL *GEOSGeomToWKT_r(
5799  GEOSContextHandle_t handle,
5800  const GEOSGeometry* g);
5801 
5805 extern int GEOS_DLL GEOS_getWKBOutputDims_r(
5806  GEOSContextHandle_t handle);
5807 
5811 extern int GEOS_DLL GEOS_setWKBOutputDims_r(
5812  GEOSContextHandle_t handle,
5813  int newDims);
5814 
5818 extern int GEOS_DLL GEOS_getWKBByteOrder_r(
5819  GEOSContextHandle_t handle);
5820 
5824 extern int GEOS_DLL GEOS_setWKBByteOrder_r(
5825  GEOSContextHandle_t handle,
5826  int byteOrder);
5827 
5832  GEOSContextHandle_t handle,
5833  const unsigned char *wkb,
5834  size_t size);
5835 
5839 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
5840  GEOSContextHandle_t handle,
5841  const GEOSGeometry* g,
5842  size_t *size);
5843 
5848  GEOSContextHandle_t handle,
5849  const unsigned char *hex,
5850  size_t size);
5851 
5855 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
5856  GEOSContextHandle_t handle,
5857  const GEOSGeometry* g,
5858  size_t *size);
5859 
5863 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
5864 
5868 extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
5869 
5873 extern int GEOS_DLL GEOS_getWKBOutputDims(void);
5874 
5878 extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
5879 
5883 extern int GEOS_DLL GEOS_getWKBByteOrder(void);
5884 
5888 extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
5889 
5893 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
5894 
5898 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
5899 
5903 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
5904 
5908 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
5909 
5913 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(const GEOSGeometry* g);
5914 
5919  GEOSContextHandle_t handle,
5920  const GEOSGeometry* g);
5921 
5923 
5924 /* ====================================================================== */
5925 /* END DEPRECATIONS */
5926 /* ====================================================================== */
5927 
5928 
5929 #ifdef __cplusplus
5930 } // extern "C"
5931 #endif
5932 
5933 #endif /* #ifndef GEOS_C_H_INCLUDED */
GEOS_getWKBByteOrder_r
int GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle)
GEOSCoordSeq_copyToBuffer_r
int GEOSCoordSeq_copyToBuffer_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
GEOSIntersects
char GEOSIntersects(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_clone_r
GEOSCoordSequence * GEOSCoordSeq_clone_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s)
GEOSisEmpty
char GEOSisEmpty(const GEOSGeometry *g)
GEOSGeomFromHEX_buf_r
GEOSGeometry * GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle, const unsigned char *hex, size_t size)
GEOSLineSubstring_r
GEOSGeometry * GEOSLineSubstring_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double start_fraction, double end_fdraction)
GEOS_MAKE_VALID_LINEWORK
@ GEOS_MAKE_VALID_LINEWORK
Definition: geos_c.h:1443
GEOS_WKB_EXTENDED
@ GEOS_WKB_EXTENDED
Definition: geos_c.h:240
GEOSWKBWriter_setByteOrder_r
void GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int byteOrder)
GEOSMinimumBoundingCircle_r
GEOSGeometry * GEOSMinimumBoundingCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSSingleSidedBuffer
GEOSGeometry * GEOSSingleSidedBuffer(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSWKTWriter_setRoundingPrecision
void GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer, int precision)
GEOSWKBWriter
struct GEOSWKBWriter_t GEOSWKBWriter
Definition: geos_c.h:1815
GEOSUnaryUnionPrec
GEOSGeometry * GEOSUnaryUnionPrec(const GEOSGeometry *g, double gridSize)
GEOSSegmentIntersection_r
int GEOSSegmentIntersection_r(GEOSContextHandle_t extHandle, double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
GEOSPolygonize_full
GEOSGeometry * GEOSPolygonize_full(const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalid)
GEOSWKBReader_read_r
GEOSGeometry * GEOSWKBReader_read_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
GEOSSegmentIntersection
int GEOSSegmentIntersection(double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
GEOSCoordSeq_setY_r
int GEOSCoordSeq_setY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOS_MAKE_VALID_STRUCTURE
@ GEOS_MAKE_VALID_STRUCTURE
Definition: geos_c.h:1448
GEOSMakeValidParams_setMethod
int GEOSMakeValidParams_setMethod(GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
GEOSGeom_setPrecision_r
GEOSGeometry * GEOSGeom_setPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
GEOSGeom_releaseCollection
GEOSGeometry ** GEOSGeom_releaseCollection(GEOSGeometry *collection, unsigned int *ngeoms)
GEOSBuffer
GEOSGeometry * GEOSBuffer(const GEOSGeometry *g, double width, int quadsegs)
GEOSFrechetDistanceDensify_r
int GEOSFrechetDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSInterpolateNormalized
GEOSGeometry * GEOSInterpolateNormalized(const GEOSGeometry *line, double proportion)
GEOSGetGeometryN_r
const GEOSGeometry * GEOSGetGeometryN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSPreparedCovers_r
char GEOSPreparedCovers_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSLineMergeDirected
GEOSGeometry * GEOSLineMergeDirected(const GEOSGeometry *g)
GEOSGetCentroid
GEOSGeometry * GEOSGetCentroid(const GEOSGeometry *g)
GEOSUnaryUnion
GEOSGeometry * GEOSUnaryUnion(const GEOSGeometry *g)
GEOSConcaveHullByLength_r
GEOSGeometry * GEOSConcaveHullByLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
GEOSWKBWriter_getOutputDimension_r
int GEOSWKBWriter_getOutputDimension_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOSCoordSeq_getXY
int GEOSCoordSeq_getXY(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
GEOSSingleSidedBuffer_r
GEOSGeometry * GEOSSingleSidedBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSSetSRID
void GEOSSetSRID(GEOSGeometry *g, int SRID)
GEOSCoordSeq_setX
int GEOSCoordSeq_setX(GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeomGetY_r
int GEOSGeomGetY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *y)
GEOSSTRtree_nearest_r
const GEOSGeometry * GEOSSTRtree_nearest_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *geom)
GEOSWKTWriter_destroy
void GEOSWKTWriter_destroy(GEOSWKTWriter *writer)
GEOS_init_r
GEOSContextHandle_t GEOS_init_r(void)
GEOS_getWKBByteOrder
int GEOS_getWKBByteOrder(void)
GEOSGeom_getExtent
int GEOSGeom_getExtent(const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
GEOSSTRtree_nearest_generic
const void * GEOSSTRtree_nearest_generic(GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
GEOSWKBWriter_destroy
void GEOSWKBWriter_destroy(GEOSWKBWriter *writer)
GEOSHilbertCode_r
int GEOSHilbertCode_r(GEOSContextHandle_t handle, const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSCoordSeq_copyFromArrays
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays(const double *x, const double *y, const double *z, const double *m, unsigned int size)
GEOSCoordSeq_destroy_r
void GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSDistanceIndexed_r
int GEOSDistanceIndexed_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSArea
int GEOSArea(const GEOSGeometry *g, double *area)
GEOSGeomGetM_r
int GEOSGeomGetM_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *m)
GEOSGeom_getUserData_r
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSTRtree_create_r
GEOSSTRtree * GEOSSTRtree_create_r(GEOSContextHandle_t handle, size_t nodeCapacity)
GEOSGeoJSONReader_create_r
GEOSGeoJSONReader * GEOSGeoJSONReader_create_r(GEOSContextHandle_t handle)
GEOSMinimumRotatedRectangle_r
GEOSGeometry * GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeom_getXMax_r
int GEOSGeom_getXMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSNearestPoints
GEOSCoordSequence * GEOSNearestPoints(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_setZ_r
int GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSRelateBoundaryNodeRule_r
char * GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
GEOSWKBReader_readHEX
GEOSGeometry * GEOSWKBReader_readHEX(GEOSWKBReader *reader, const unsigned char *hex, size_t size)
GEOSWKBWriter_setIncludeSRID_r
void GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
GEOSLineSubstring
GEOSGeometry * GEOSLineSubstring(const GEOSGeometry *g, double start_fraction, double end_fraction)
GEOSGeomToHEX_buf_r
unsigned char * GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSBufferParams_create_r
GEOSBufferParams * GEOSBufferParams_create_r(GEOSContextHandle_t handle)
GEOSGeoJSONWriter_create_r
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create_r(GEOSContextHandle_t handle)
GEOSisRing_r
char GEOSisRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_getOrdinate_r
int GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
GEOSSTRtree_build
int GEOSSTRtree_build(GEOSSTRtree *tree)
GEOSMinimumWidth_r
GEOSGeometry * GEOSMinimumWidth_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSClipByRect_r
GEOSGeometry * GEOSClipByRect_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
GEOSCoordSeq_copyToBuffer
int GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
GEOSHasM
char GEOSHasM(const GEOSGeometry *g)
GEOSPreparedNearestPoints_r
GEOSCoordSequence * GEOSPreparedNearestPoints_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeom_getDimensions_r
int GEOSGeom_getDimensions_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSDelaunayTriangulation
GEOSGeometry * GEOSDelaunayTriangulation(const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSHULL_PARAM_AREA_RATIO
@ GEOSHULL_PARAM_AREA_RATIO
Definition: geos_c.h:4042
GEOSPolygonize_valid_r
GEOSGeometry * GEOSPolygonize_valid_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngems)
GEOSInterpolateNormalized_r
GEOSGeometry * GEOSInterpolateNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSSTRtree_query_r
void GEOSSTRtree_query_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSProjectNormalized
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
GEOSGeomType
char * GEOSGeomType(const GEOSGeometry *g)
GEOSWKBWriter_setByteOrder
void GEOSWKBWriter_setByteOrder(GEOSWKBWriter *writer, int byteOrder)
GEOSWKBWriter_writeHEX_r
unsigned char * GEOSWKBWriter_writeHEX_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSWKTWriter_create_r
GEOSWKTWriter * GEOSWKTWriter_create_r(GEOSContextHandle_t handle)
GEOSGetCentroid_r
GEOSGeometry * GEOSGetCentroid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter_getOutputDimension
int GEOSWKBWriter_getOutputDimension(const GEOSWKBWriter *writer)
GEOSGeom_getDimensions
int GEOSGeom_getDimensions(const GEOSGeometry *g)
GEOSisValidReason_r
char * GEOSisValidReason_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSContext_setErrorHandler_r
GEOSMessageHandler GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler ef)
GEOSNormalize
int GEOSNormalize(GEOSGeometry *g)
GEOSSTRtree_remove
char GEOSSTRtree_remove(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSGeomGetLength_r
int GEOSGeomGetLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
GEOSRelateBoundaryNodeRule
char * GEOSRelateBoundaryNodeRule(const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
GEOSGeoJSONWriter_writeGeometry_r
char * GEOSGeoJSONWriter_writeGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSGeom_createPointFromXY_r
GEOSGeometry * GEOSGeom_createPointFromXY_r(GEOSContextHandle_t handle, double x, double y)
GEOSGeom_createEmptyPoint
GEOSGeometry * GEOSGeom_createEmptyPoint(void)
GEOSGeomToWKT
char * GEOSGeomToWKT(const GEOSGeometry *g)
GEOSArea_r
int GEOSArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *area)
GEOSGeom_getCoordinateDimension
int GEOSGeom_getCoordinateDimension(const GEOSGeometry *g)
GEOSSnap
GEOSGeometry * GEOSSnap(const GEOSGeometry *input, const GEOSGeometry *snap_target, double tolerance)
GEOSBufferParams_setMitreLimit
int GEOSBufferParams_setMitreLimit(GEOSBufferParams *p, double mitreLimit)
GEOSEnvelope_r
GEOSGeometry * GEOSEnvelope_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSMakeValidParams_create_r
GEOSMakeValidParams * GEOSMakeValidParams_create_r(GEOSContextHandle_t extHandle)
GEOSConcaveHull
GEOSGeometry * GEOSConcaveHull(const GEOSGeometry *g, double ratio, unsigned int allowHoles)
GEOSGeom_setUserData_r
void GEOSGeom_setUserData_r(GEOSContextHandle_t handle, GEOSGeometry *g, void *userData)
GEOSGeoJSONReader
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition: geos_c.h:1822
GEOSCoverageUnion_r
GEOSGeometry * GEOSCoverageUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSConstrainedDelaunayTriangulation
GEOSGeometry * GEOSConstrainedDelaunayTriangulation(const GEOSGeometry *g)
GEOSWKTWriter_getOutputDimension
int GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer)
GEOSCoordSeq_setOrdinate_r
int GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
GEOSBUF_CAP_FLAT
@ GEOSBUF_CAP_FLAT
Definition: geos_c.h:597
GEOSCoordSeq_getDimensions
int GEOSCoordSeq_getDimensions(const GEOSCoordSequence *s, unsigned int *dims)
GEOSGeom_getPrecision_r
double GEOSGeom_getPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeom_getYMax
int GEOSGeom_getYMax(const GEOSGeometry *g, double *value)
GEOS_PREC_NO_TOPO
@ GEOS_PREC_NO_TOPO
Definition: geos_c.h:1552
GEOSBUF_JOIN_ROUND
@ GEOSBUF_JOIN_ROUND
Definition: geos_c.h:612
GEOSPrepare_r
const GEOSPreparedGeometry * GEOSPrepare_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSTRtree_destroy
void GEOSSTRtree_destroy(GEOSSTRtree *tree)
GEOSGetExteriorRing
const GEOSGeometry * GEOSGetExteriorRing(const GEOSGeometry *g)
GEOSLargestEmptyCircle
GEOSGeometry * GEOSLargestEmptyCircle(const GEOSGeometry *obstacles, const GEOSGeometry *boundary, double tolerance)
GEOSOffsetCurve
GEOSGeometry * GEOSOffsetCurve(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSCovers
char GEOSCovers(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_copyFromBuffer
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer(const double *buf, unsigned int size, int hasZ, int hasM)
GEOSWKBWriter_getFlavor_r
int GEOSWKBWriter_getFlavor_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOSGeoJSONWriter_destroy
void GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter *writer)
GEOSLength
int GEOSLength(const GEOSGeometry *g, double *length)
GEOSCoordSeq_copyFromArrays_r
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays_r(GEOSContextHandle_t handle, const double *x, const double *y, const double *z, const double *m, unsigned int size)
GEOSGeom_getYMax_r
int GEOSGeom_getYMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSPreparedIntersectsXY_r
char GEOSPreparedIntersectsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGeom_getYMin_r
int GEOSGeom_getYMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeomFromWKB_buf_r
GEOSGeometry * GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle, const unsigned char *wkb, size_t size)
GEOSContains_r
char GEOSContains_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSSharedPaths
GEOSGeometry * GEOSSharedPaths(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeomGetPointN_r
GEOSGeometry * GEOSGeomGetPointN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSRelatePatternMatch
char GEOSRelatePatternMatch(const char *mat, const char *pat)
GEOSDistanceWithin_r
char GEOSDistanceWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSGeomGetNumPoints_r
int GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPreparedContains
char GEOSPreparedContains(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCoordSeq_copyToArrays
int GEOSCoordSeq_copyToArrays(const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSGeom_clone_r
GEOSGeometry * GEOSGeom_clone_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSnap_r
GEOSGeometry * GEOSSnap_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSPreparedIntersectsXY
char GEOSPreparedIntersectsXY(const GEOSPreparedGeometry *pg1, double x, double y)
GEOSContext_setNoticeMessageHandler_r
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
GEOSisEmpty_r
char GEOSisEmpty_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_getX_r
int GEOSCoordSeq_getX_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSBufCapStyles
GEOSBufCapStyles
Definition: geos_c.h:591
GEOSFree_r
void GEOSFree_r(GEOSContextHandle_t handle, void *buffer)
GEOSUnion
GEOSGeometry * GEOSUnion(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSWKBWriter_setFlavor
void GEOSWKBWriter_setFlavor(GEOSWKBWriter *writer, int flavor)
GEOSSTRtree_nearest_generic_r
const void * GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
GEOSMakeValidWithParams
GEOSGeometry * GEOSMakeValidWithParams(const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
GEOSisValidDetail_r
char GEOSisValidDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSDifference
GEOSGeometry * GEOSDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSCoordSeq_getX
int GEOSCoordSeq_getX(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSOverlaps_r
char GEOSOverlaps_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSTouches
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSDisjointSubsetUnion_r
GEOSGeometry * GEOSDisjointSubsetUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPolygonize_valid
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
initGEOS
void initGEOS(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOS_getWKBOutputDims_r
int GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle)
GEOSTransformXYCallback
int(* GEOSTransformXYCallback)(double *x, double *y, void *userdata)
Definition: geos_c.h:290
GEOSisSimple
char GEOSisSimple(const GEOSGeometry *g)
GEOSGeom_getPrecision
double GEOSGeom_getPrecision(const GEOSGeometry *g)
GEOSPreparedCrosses
char GEOSPreparedCrosses(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWKTWriter_destroy_r
void GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
GEOSSharedPaths_r
GEOSGeometry * GEOSSharedPaths_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGetNumCoordinates_r
int GEOSGetNumCoordinates_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSProjectNormalized_r
double GEOSProjectNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *p)
GEOSUnaryUnion_r
GEOSGeometry * GEOSUnaryUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeomGetPointN
GEOSGeometry * GEOSGeomGetPointN(const GEOSGeometry *g, int n)
GEOSGeoJSONWriter_destroy_r
void GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
GEOSMessageHandler
void(* GEOSMessageHandler)(const char *fmt,...)
Definition: geos_c.h:105
GEOSHasZ
char GEOSHasZ(const GEOSGeometry *g)
GEOSRelatePattern
char GEOSRelatePattern(const GEOSGeometry *g1, const GEOSGeometry *g2, const char *pat)
GEOSGeom_transformXY_r
GEOSGeometry * GEOSGeom_transformXY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition: geos_c.h:1411
GEOSHausdorffDistance
int GEOSHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry
struct GEOSGeom_t GEOSGeometry
Definition: geos_c.h:139
GEOSGetInteriorRingN_r
const GEOSGeometry * GEOSGetInteriorRingN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSisClosed_r
char GEOSisClosed_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeoJSONWriter
struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter
Definition: geos_c.h:1829
GEOSisSimple_r
char GEOSisSimple_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_getY_r
int GEOSCoordSeq_getY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOS_setWKBByteOrder
int GEOS_setWKBByteOrder(int byteOrder)
GEOS_interruptRegisterCallback
GEOSInterruptCallback * GEOS_interruptRegisterCallback(GEOSInterruptCallback *cb)
GEOSDisjointSubsetUnion
GEOSGeometry * GEOSDisjointSubsetUnion(const GEOSGeometry *g)
GEOSWKBReader_read
GEOSGeometry * GEOSWKBReader_read(GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
GEOSGeomGetNumPoints
int GEOSGeomGetNumPoints(const GEOSGeometry *g)
GEOSBufferParams_setSingleSided
int GEOSBufferParams_setSingleSided(GEOSBufferParams *p, int singleSided)
GEOSHausdorffDistanceDensify_r
int GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSNearestPoints_r
GEOSCoordSequence * GEOSNearestPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPolygonHullSimplifyMode
GEOSGeometry * GEOSPolygonHullSimplifyMode(const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
GEOSGeoJSONWriter_writeGeometry
char * GEOSGeoJSONWriter_writeGeometry(GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSGeomTypeId_r
int GEOSGeomTypeId_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSHasM_r
char GEOSHasM_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCrosses
char GEOSCrosses(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSInterpolate
GEOSGeometry * GEOSInterpolate(const GEOSGeometry *line, double d)
GEOSGetGeometryN
const GEOSGeometry * GEOSGetGeometryN(const GEOSGeometry *g, int n)
GEOSBuildArea
GEOSGeometry * GEOSBuildArea(const GEOSGeometry *g)
GEOSGeom_createCollection
GEOSGeometry * GEOSGeom_createCollection(int type, GEOSGeometry **geoms, unsigned int ngeoms)
GEOSConcaveHullOfPolygons
GEOSGeometry * GEOSConcaveHullOfPolygons(const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
GEOSConvexHull
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSBufferParams_setEndCapStyle_r
int GEOSBufferParams_setEndCapStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int style)
GEOSCoordSeq_isCCW
int GEOSCoordSeq_isCCW(const GEOSCoordSequence *s, char *is_ccw)
GEOSGeom_getXMax
int GEOSGeom_getXMax(const GEOSGeometry *g, double *value)
GEOSCoordSeq_getXYZ
int GEOSCoordSeq_getXYZ(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSSTRtree_iterate_r
void GEOSSTRtree_iterate_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOSDifference_r
GEOSGeometry * GEOSDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSBufferWithStyle
GEOSGeometry * GEOSBufferWithStyle(const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSMakeValidParams_setMethod_r
int GEOSMakeValidParams_setMethod_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
GEOSGeom_createLineString_r
GEOSGeometry * GEOSGeom_createLineString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSGeom_getCoordinateDimension_r
int GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSBufferParams_setQuadrantSegments
int GEOSBufferParams_setQuadrantSegments(GEOSBufferParams *p, int quadSegs)
GEOSBufferWithStyle_r
GEOSGeometry * GEOSBufferWithStyle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSConvexHull_r
GEOSGeometry * GEOSConvexHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoverageSimplifyVW_r
GEOSGeometry * GEOSCoverageSimplifyVW_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double tolerance, int preserveBoundary)
GEOSTopologyPreserveSimplify_r
GEOSGeometry * GEOSTopologyPreserveSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSWithin_r
char GEOSWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSWKBWriter_write
unsigned char * GEOSWKBWriter_write(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSWKTWriter_setRoundingPrecision_r
void GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int precision)
GEOSPreparedIntersects
char GEOSPreparedIntersects(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWKBWriter_getIncludeSRID_r
char GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOSConcaveHullOfPolygons_r
GEOSGeometry * GEOSConcaveHullOfPolygons_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
GEOSPreparedCovers
char GEOSPreparedCovers(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeom_createEmptyLineString_r
GEOSGeometry * GEOSGeom_createEmptyLineString_r(GEOSContextHandle_t handle)
GEOSRELATE_BNR_OGC
@ GEOSRELATE_BNR_OGC
Definition: geos_c.h:1370
GEOSPreparedNearestPoints
GEOSCoordSequence * GEOSPreparedNearestPoints(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMakeValidParams_setKeepCollapsed_r
int GEOSMakeValidParams_setKeepCollapsed_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, int style)
GEOSRelate_r
char * GEOSRelate_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSBufferParams
struct GEOSBufParams_t GEOSBufferParams
Definition: geos_c.h:168
GEOSFrechetDistance_r
int GEOSFrechetDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSPreparedDistance
int GEOSPreparedDistance(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSWKTWriter_write
char * GEOSWKTWriter_write(GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSWKBWriter_create
GEOSWKBWriter * GEOSWKBWriter_create(void)
GEOSBufferWithParams_r
GEOSGeometry * GEOSBufferWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOS_PREC_KEEP_COLLAPSED
@ GEOS_PREC_KEEP_COLLAPSED
Definition: geos_c.h:1554
GEOSDisjoint
char GEOSDisjoint(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPolygonize
GEOSGeometry * GEOSPolygonize(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSQueryCallback
void(* GEOSQueryCallback)(void *item, void *userdata)
Definition: geos_c.h:252
GEOSGeom_getExtent_r
int GEOSGeom_getExtent_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
initGEOS_r
GEOSContextHandle_t initGEOS_r(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSCoordSeq_getXYZ_r
int GEOSCoordSeq_getXYZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSCoverageUnion
GEOSGeometry * GEOSCoverageUnion(const GEOSGeometry *g)
GEOSGeom_extractUniquePoints
GEOSGeometry * GEOSGeom_extractUniquePoints(const GEOSGeometry *g)
GEOSGeom_getYMin
int GEOSGeom_getYMin(const GEOSGeometry *g, double *value)
GEOSWKBReader_destroy
void GEOSWKBReader_destroy(GEOSWKBReader *reader)
GEOSRelate
char * GEOSRelate(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMakeValidParams_create
GEOSMakeValidParams * GEOSMakeValidParams_create(void)
GEOSVoronoiDiagram
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
GEOSMaximumInscribedCircle
GEOSGeometry * GEOSMaximumInscribedCircle(const GEOSGeometry *g, double tolerance)
GEOSWKTReader
struct GEOSWKTReader_t GEOSWKTReader
Definition: geos_c.h:1794
GEOSWKBReader_create_r
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
GEOSRELATE_BNR_ENDPOINT
@ GEOSRELATE_BNR_ENDPOINT
Definition: geos_c.h:1372
GEOSPreparedDistanceWithin
char GEOSPreparedDistanceWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSGeom_getXMin_r
int GEOSGeom_getXMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSInterruptCallback
void() GEOSInterruptCallback(void)
Definition: geos_c.h:306
GEOSGeomToWKT_r
char * GEOSGeomToWKT_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSBufferParams_setMitreLimit_r
int GEOSBufferParams_setMitreLimit_r(GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
GEOSGeomFromWKB_buf
GEOSGeometry * GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size)
GEOSPreparedOverlaps
char GEOSPreparedOverlaps(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
finishGEOS_r
void finishGEOS_r(GEOSContextHandle_t handle)
GEOSOrientPolygons
int GEOSOrientPolygons(GEOSGeometry *g, int exteriorCW)
GEOSVoronoiDiagram_r
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
GEOSConstrainedDelaunayTriangulation_r
GEOSGeometry * GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeom_getUserData
void * GEOSGeom_getUserData(const GEOSGeometry *g)
GEOSRelatePattern_r
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *pat)
GEOSGeom_createPoint_r
GEOSGeometry * GEOSGeom_createPoint_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOS_MULTIPOLYGON
@ GEOS_MULTIPOLYGON
Definition: geos_c.h:211
GEOS_VORONOI_ONLY_EDGES
@ GEOS_VORONOI_ONLY_EDGES
Definition: geos_c.h:4239
GEOSWKBWriter_setIncludeSRID
void GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter *writer, const char writeSRID)
GEOSPolygonizer_getCutEdges
GEOSGeometry * GEOSPolygonizer_getCutEdges(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSFrechetDistance
int GEOSFrechetDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSisValidDetail
char GEOSisValidDetail(const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSPreparedDistanceWithin_r
char GEOSPreparedDistanceWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSSTRtree_nearest
const GEOSGeometry * GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry *geom)
GEOSEquals_r
char GEOSEquals_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMinimumClearanceLine
GEOSGeometry * GEOSMinimumClearanceLine(const GEOSGeometry *g)
GEOSGeom_createLineString
GEOSGeometry * GEOSGeom_createLineString(GEOSCoordSequence *s)
GEOSWKBWriter_create_r
GEOSWKBWriter * GEOSWKBWriter_create_r(GEOSContextHandle_t handle)
GEOSProject
double GEOSProject(const GEOSGeometry *line, const GEOSGeometry *point)
GEOSMakeValidParams_destroy
void GEOSMakeValidParams_destroy(GEOSMakeValidParams *parms)
GEOSWKBWriter_writeHEX
unsigned char * GEOSWKBWriter_writeHEX(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeom_getCoordSeq_r
const GEOSCoordSequence * GEOSGeom_getCoordSeq_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter_setFlavor_r
void GEOSWKBWriter_setFlavor_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int flavor)
GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition: geos_c.h:1374
GEOSFree
void GEOSFree(void *buffer)
GEOSGetSRID_r
int GEOSGetSRID_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_isCCW_r
int GEOSCoordSeq_isCCW_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, char *is_ccw)
GEOSCoordSeq_setXYZ
int GEOSCoordSeq_setXYZ(GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
GEOSCoordSeq_setX_r
int GEOSCoordSeq_setX_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSTopologyPreserveSimplify
GEOSGeometry * GEOSTopologyPreserveSimplify(const GEOSGeometry *g, double tolerance)
GEOSCoordSeq_getDimensions_r
int GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *dims)
GEOSWKTReader_read
GEOSGeometry * GEOSWKTReader_read(GEOSWKTReader *reader, const char *wkt)
GEOSBufJoinStyles
GEOSBufJoinStyles
Definition: geos_c.h:607
GEOSLineMergeDirected_r
GEOSGeometry * GEOSLineMergeDirected_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSDifferencePrec
GEOSGeometry * GEOSDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSGeomTypeId
int GEOSGeomTypeId(const GEOSGeometry *g)
GEOSGeoJSONReader_create
GEOSGeoJSONReader * GEOSGeoJSONReader_create(void)
GEOS_setWKBOutputDims
int GEOS_setWKBOutputDims(int newDims)
GEOSPreparedGeometry
struct GEOSPrepGeom_t GEOSPreparedGeometry
Definition: geos_c.h:146
GEOSGeoJSONReader_readGeometry
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSUnaryUnionPrec_r
GEOSGeometry * GEOSUnaryUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
GEOSSTRtree_create
GEOSSTRtree * GEOSSTRtree_create(size_t nodeCapacity)
GEOSCoordSeq_setOrdinate
int GEOSCoordSeq_setOrdinate(GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
GEOSWKTWriter_setOutputDimension
void GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer, int dim)
GEOSWKTWriter_create
GEOSWKTWriter * GEOSWKTWriter_create(void)
GEOSBufferParams_setQuadrantSegments_r
int GEOSBufferParams_setQuadrantSegments_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int quadSegs)
GEOSOverlaps
char GEOSOverlaps(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMinimumClearanceLine_r
GEOSGeometry * GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSEnvelope
GEOSGeometry * GEOSEnvelope(const GEOSGeometry *g)
GEOSGeom_createPoint
GEOSGeometry * GEOSGeom_createPoint(GEOSCoordSequence *s)
GEOSCoordSeq_setXY_r
int GEOSCoordSeq_setXY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSBufferParams_setJoinStyle
int GEOSBufferParams_setJoinStyle(GEOSBufferParams *p, int joinStyle)
GEOSBUF_CAP_ROUND
@ GEOSBUF_CAP_ROUND
Definition: geos_c.h:594
GEOSReverse_r
GEOSGeometry * GEOSReverse_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence
struct GEOSCoordSeq_t GEOSCoordSequence
Definition: geos_c.h:154
GEOSWKBReader
struct GEOSWKBReader_t GEOSWKBReader
Definition: geos_c.h:1808
GEOSProject_r
double GEOSProject_r(GEOSContextHandle_t handle, const GEOSGeometry *line, const GEOSGeometry *point)
GEOSBuildArea_r
GEOSGeometry * GEOSBuildArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSMakeValidMethods
GEOSMakeValidMethods
Definition: geos_c.h:1439
GEOS_setWKBByteOrder_r
int GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle, int byteOrder)
GEOS_PREC_VALID_OUTPUT
@ GEOS_PREC_VALID_OUTPUT
Definition: geos_c.h:1550
GEOSGetNumGeometries
int GEOSGetNumGeometries(const GEOSGeometry *g)
GEOSGeomGetLength
int GEOSGeomGetLength(const GEOSGeometry *g, double *length)
GEOSWKBReader_destroy_r
void GEOSWKBReader_destroy_r(GEOSContextHandle_t handle, GEOSWKBReader *reader)
GEOSPreparedTouches
char GEOSPreparedTouches(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSFrechetDistanceDensify
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSSymDifferencePrec
GEOSGeometry * GEOSSymDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSSTRtree_insert
void GEOSSTRtree_insert(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSGeom_extractUniquePoints_r
GEOSGeometry * GEOSGeom_extractUniquePoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPreparedDisjoint_r
char GEOSPreparedDisjoint_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSisRing
char GEOSisRing(const GEOSGeometry *g)
GEOSGeom_releaseCollection_r
GEOSGeometry ** GEOSGeom_releaseCollection_r(GEOSContextHandle_t handle, GEOSGeometry *collection, unsigned int *ngeoms)
GEOSSimplify
GEOSGeometry * GEOSSimplify(const GEOSGeometry *g, double tolerance)
GEOS_setWKBOutputDims_r
int GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle, int newDims)
GEOSGeom_createPointFromXY
GEOSGeometry * GEOSGeom_createPointFromXY(double x, double y)
GEOSMaximumInscribedCircle_r
GEOSGeometry * GEOSMaximumInscribedCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSSTRtree_remove_r
char GEOSSTRtree_remove_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSPrecisionRules
GEOSPrecisionRules
Definition: geos_c.h:1548
GEOSTouches_r
char GEOSTouches_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSContextHandle_t
struct GEOSContextHandle_HS * GEOSContextHandle_t
Definition: geos_c.h:95
GEOSSTRtree_iterate
void GEOSSTRtree_iterate(GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOSRELATE_BNR_MOD2
@ GEOSRELATE_BNR_MOD2
Definition: geos_c.h:1368
GEOSLength_r
int GEOSLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
GEOSWKBWriter_write_r
unsigned char * GEOSWKBWriter_write_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeom_destroy
void GEOSGeom_destroy(GEOSGeometry *g)
GEOSPreparedDistance_r
int GEOSPreparedDistance_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSHausdorffDistance_r
int GEOSHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSCoordSeq_copyToArrays_r
int GEOSCoordSeq_copyToArrays_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSIntersection_r
GEOSGeometry * GEOSIntersection_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSOrientationIndex_r
int GEOSOrientationIndex_r(GEOSContextHandle_t handle, double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOS_MULTILINESTRING
@ GEOS_MULTILINESTRING
Definition: geos_c.h:209
GEOSCoordSeq_getOrdinate
int GEOSCoordSeq_getOrdinate(const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
GEOSSymDifference
GEOSGeometry * GEOSSymDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSContains
char GEOSContains(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSWKBFlavors
GEOSWKBFlavors
Definition: geos_c.h:238
GEOSCoveredBy_r
char GEOSCoveredBy_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOS_interruptCancel
void GEOS_interruptCancel(void)
GEOSContext_setNoticeHandler_r
GEOSMessageHandler GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler nf)
GEOSWKTWriter_setOld3D_r
void GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int useOld3D)
GEOSPreparedGeom_destroy
void GEOSPreparedGeom_destroy(const GEOSPreparedGeometry *g)
GEOSPointOnSurface
GEOSGeometry * GEOSPointOnSurface(const GEOSGeometry *g)
GEOSGeomGetEndPoint_r
GEOSGeometry * GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeoJSONWriter_create
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create(void)
GEOS_LINEARRING
@ GEOS_LINEARRING
Definition: geos_c.h:203
GEOSWKBWriter_destroy_r
void GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer)
GEOS_POLYGON
@ GEOS_POLYGON
Definition: geos_c.h:205
GEOSGeomGetEndPoint
GEOSGeometry * GEOSGeomGetEndPoint(const GEOSGeometry *g)
GEOSDistanceIndexed
int GEOSDistanceIndexed(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSDistance_r
int GEOSDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSCoordSeq_getZ
int GEOSCoordSeq_getZ(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSBoundary
GEOSGeometry * GEOSBoundary(const GEOSGeometry *g)
GEOSCoordSeq_getSize
int GEOSCoordSeq_getSize(const GEOSCoordSequence *s, unsigned int *size)
GEOSWKBReader_setFixStructure
void GEOSWKBReader_setFixStructure(GEOSWKBReader *reader, char doFix)
GEOSMinimumBoundingCircle
GEOSGeometry * GEOSMinimumBoundingCircle(const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSGeomGetM
int GEOSGeomGetM(const GEOSGeometry *g, double *m)
GEOS_interruptRequest
void GEOS_interruptRequest(void)
GEOSGeom_setUserData
void GEOSGeom_setUserData(GEOSGeometry *g, void *userData)
GEOSCoordSeq_destroy
void GEOSCoordSeq_destroy(GEOSCoordSequence *s)
GEOSContext_setErrorMessageHandler_r
GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r ef, void *userData)
GEOSGetInteriorRingN
const GEOSGeometry * GEOSGetInteriorRingN(const GEOSGeometry *g, int n)
GEOSOffsetCurve_r
GEOSGeometry * GEOSOffsetCurve_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSCoverageIsValid_r
int GEOSCoverageIsValid_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double gapWidth, GEOSGeometry **output)
GEOSMinimumRotatedRectangle
GEOSGeometry * GEOSMinimumRotatedRectangle(const GEOSGeometry *g)
GEOSBufferParams_destroy_r
void GEOSBufferParams_destroy_r(GEOSContextHandle_t handle, GEOSBufferParams *parms)
GEOSGeom_destroy_r
void GEOSGeom_destroy_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSPolygonize_r
GEOSGeometry * GEOSPolygonize_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGeoJSONReader_destroy_r
void GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader)
GEOSSTRtree_insert_r
void GEOSSTRtree_insert_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOS_finish_r
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSisValid_r
char GEOSisValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCrosses_r
char GEOSCrosses_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSBufferParams_setEndCapStyle
int GEOSBufferParams_setEndCapStyle(GEOSBufferParams *p, int style)
GEOSGeomType_r
char * GEOSGeomType_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOS_POINT
@ GEOS_POINT
Definition: geos_c.h:199
GEOSUnion_r
GEOSGeometry * GEOSUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPreparedContainsProperly
char GEOSPreparedContainsProperly(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSDistance
int GEOSDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeomToWKB_buf
unsigned char * GEOSGeomToWKB_buf(const GEOSGeometry *g, size_t *size)
GEOSCoordSeq_getXY_r
int GEOSCoordSeq_getXY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
GEOSGeom_clone
GEOSGeometry * GEOSGeom_clone(const GEOSGeometry *g)
GEOSHilbertCode
int GEOSHilbertCode(const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSMinimumWidth
GEOSGeometry * GEOSMinimumWidth(const GEOSGeometry *g)
GEOSHULL_PARAM_VERTEX_RATIO
@ GEOSHULL_PARAM_VERTEX_RATIO
Definition: geos_c.h:4040
GEOSCoverageIsValid
int GEOSCoverageIsValid(const GEOSGeometry *input, double gapWidth, GEOSGeometry **invalidEdges)
GEOSPreparedDisjoint
char GEOSPreparedDisjoint(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCoordSeq_setZ
int GEOSCoordSeq_setZ(GEOSCoordSequence *s, unsigned int idx, double val)
GEOSUnionPrec_r
GEOSGeometry * GEOSUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeomGetZ
int GEOSGeomGetZ(const GEOSGeometry *g, double *z)
GEOSGeoJSONReader_destroy
void GEOSGeoJSONReader_destroy(GEOSGeoJSONReader *reader)
GEOSEqualsIdentical
char GEOSEqualsIdentical(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSWKTWriter_setOutputDimension_r
void GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int dim)
GEOSGeomToHEX_buf
unsigned char * GEOSGeomToHEX_buf(const GEOSGeometry *g, size_t *size)
GEOSPolygonize_full_r
GEOSGeometry * GEOSPolygonize_full_r(GEOSContextHandle_t handle, const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalidRings)
GEOSWKBReader_readHEX_r
GEOSGeometry * GEOSWKBReader_readHEX_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *hex, size_t size)
GEOSSymDifference_r
GEOSGeometry * GEOSSymDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMakeValidParams_setKeepCollapsed
int GEOSMakeValidParams_setKeepCollapsed(GEOSMakeValidParams *p, int keepCollapsed)
GEOSMinimumClearance
int GEOSMinimumClearance(const GEOSGeometry *g, double *d)
GEOSUnionCascaded_r
GEOSGeometry * GEOSUnionCascaded_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPolygonHullSimplify_r
GEOSGeometry * GEOSPolygonHullSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
GEOSEqualsIdentical_r
char GEOSEqualsIdentical_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSEquals
char GEOSEquals(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeom_getXMin
int GEOSGeom_getXMin(const GEOSGeometry *g, double *value)
GEOSGeomGetStartPoint_r
GEOSGeometry * GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSVoronoiFlags
GEOSVoronoiFlags
Definition: geos_c.h:4237
GEOSRelatePatternMatch_r
char GEOSRelatePatternMatch_r(GEOSContextHandle_t handle, const char *mat, const char *pat)
GEOSIntersectionPrec
GEOSGeometry * GEOSIntersectionPrec(const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSSTRtree_query
void GEOSSTRtree_query(GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSBufferParams_setSingleSided_r
int GEOSBufferParams_setSingleSided_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int singleSided)
GEOS_GEOMETRYCOLLECTION
@ GEOS_GEOMETRYCOLLECTION
Definition: geos_c.h:213
GEOSGeom_createEmptyLineString
GEOSGeometry * GEOSGeom_createEmptyLineString(void)
GEOSCoordSeq_create_r
GEOSCoordSequence * GEOSCoordSeq_create_r(GEOSContextHandle_t handle, unsigned int size, unsigned int dims)
GEOSDelaunayTriangulation_r
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSBufferParams_create
GEOSBufferParams * GEOSBufferParams_create(void)
GEOSMakeValidWithParams_r
GEOSGeometry * GEOSMakeValidWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
GEOSPointOnSurface_r
GEOSGeometry * GEOSPointOnSurface_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSTRtree
struct GEOSSTRtree_t GEOSSTRtree
Definition: geos_c.h:161
GEOSSTRtree_destroy_r
void GEOSSTRtree_destroy_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
GEOSCoordSeq_create
GEOSCoordSequence * GEOSCoordSeq_create(unsigned int size, unsigned int dims)
GEOSOrientPolygons_r
int GEOSOrientPolygons_r(GEOSContextHandle_t handle, GEOSGeometry *g, int exteriorCW)
GEOSBufferWithParams
GEOSGeometry * GEOSBufferWithParams(const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOS_WKB_XDR
@ GEOS_WKB_XDR
Definition: geos_c.h:224
GEOSPreparedIntersects_r
char GEOSPreparedIntersects_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
finishGEOS
void finishGEOS(void)
GEOSNode_r
GEOSGeometry * GEOSNode_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPreparedContainsXY
char GEOSPreparedContainsXY(const GEOSPreparedGeometry *pg1, double x, double y)
GEOSCoordSeq_getY
int GEOSCoordSeq_getY(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSUnionPrec
GEOSGeometry * GEOSUnionPrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSDifferencePrec_r
GEOSGeometry * GEOSDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSIntersection
GEOSGeometry * GEOSIntersection(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeomGetX_r
int GEOSGeomGetX_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *x)
GEOSCoordSeq_copyFromBuffer_r
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer_r(GEOSContextHandle_t handle, const double *buf, unsigned int size, int hasZ, int hasM)
GEOSGeomFromHEX_buf
GEOSGeometry * GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size)
GEOSWKBWriter_getIncludeSRID
char GEOSWKBWriter_getIncludeSRID(const GEOSWKBWriter *writer)
GEOSWithin
char GEOSWithin(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSWKBWriter_getByteOrder_r
int GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOS_VORONOI_PRESERVE_ORDER
@ GEOS_VORONOI_PRESERVE_ORDER
Definition: geos_c.h:4243
GEOSDistanceWithin
char GEOSDistanceWithin(const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSMakeValidParams
struct GEOSMakeValidParams_t GEOSMakeValidParams
Definition: geos_c.h:175
GEOSGeomGetZ_r
int GEOSGeomGetZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
GEOSWKTWriter_setOld3D
void GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer, int useOld3D)
GEOSGetNumInteriorRings_r
int GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSLargestEmptyCircle_r
GEOSGeometry * GEOSLargestEmptyCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *boundary, double tolerance)
GEOSGeom_setPrecision
GEOSGeometry * GEOSGeom_setPrecision(const GEOSGeometry *g, double gridSize, int flags)
GEOSRemoveRepeatedPoints
GEOSGeometry * GEOSRemoveRepeatedPoints(const GEOSGeometry *g, double tolerance)
GEOSCoordSeq_setXYZ_r
int GEOSCoordSeq_setXYZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
GEOSGeom_createEmptyPolygon_r
GEOSGeometry * GEOSGeom_createEmptyPolygon_r(GEOSContextHandle_t handle)
GEOSGeom_createPolygon_r
GEOSGeometry * GEOSGeom_createPolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeom_createLinearRing
GEOSGeometry * GEOSGeom_createLinearRing(GEOSCoordSequence *s)
GEOSCoordSeq_setY
int GEOSCoordSeq_setY(GEOSCoordSequence *s, unsigned int idx, double val)
GEOS_WKB_NDR
@ GEOS_WKB_NDR
Definition: geos_c.h:226
GEOS_MULTIPOINT
@ GEOS_MULTIPOINT
Definition: geos_c.h:207
GEOSGetNumGeometries_r
int GEOSGetNumGeometries_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeoJSONReader_readGeometry_r
GEOSGeometry * GEOSGeoJSONReader_readGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader, const char *geojson)
GEOSisClosed
char GEOSisClosed(const GEOSGeometry *g)
GEOSWKTReader_destroy_r
void GEOSWKTReader_destroy_r(GEOSContextHandle_t handle, GEOSWKTReader *reader)
GEOSGeom_createEmptyPolygon
GEOSGeometry * GEOSGeom_createEmptyPolygon(void)
GEOSRemoveRepeatedPoints_r
GEOSGeometry * GEOSRemoveRepeatedPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSWKBWriter_setOutputDimension
void GEOSWKBWriter_setOutputDimension(GEOSWKBWriter *writer, int newDimension)
GEOSWKBReader_setFixStructure_r
void GEOSWKBReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, char doFix)
GEOSConcaveHull_r
GEOSGeometry * GEOSConcaveHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
GEOSMinimumClearance_r
int GEOSMinimumClearance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *distance)
GEOSWKTReader_setFixStructure_r
void GEOSWKTReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, char doFix)
GEOSisValid
char GEOSisValid(const GEOSGeometry *g)
GEOSEqualsExact_r
char GEOSEqualsExact_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSHausdorffDistanceDensify
int GEOSHausdorffDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSReverse
GEOSGeometry * GEOSReverse(const GEOSGeometry *g)
GEOS_LINESTRING
@ GEOS_LINESTRING
Definition: geos_c.h:201
GEOSDisjoint_r
char GEOSDisjoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPreparedWithin_r
char GEOSPreparedWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSLineMerge_r
GEOSGeometry * GEOSLineMerge_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTWriter_getOutputDimension_r
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
GEOSWKTReader_setFixStructure
void GEOSWKTReader_setFixStructure(GEOSWKTReader *reader, char doFix)
GEOSMakeValid
GEOSGeometry * GEOSMakeValid(const GEOSGeometry *g)
GEOS_getWKBOutputDims
int GEOS_getWKBOutputDims(void)
GEOSWKTWriter_write_r
char * GEOSWKTWriter_write_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSMakeValid_r
GEOSGeometry * GEOSMakeValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_getZ_r
int GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSCoordSeq_getSize_r
int GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *size)
GEOSGeom_createEmptyCollection_r
GEOSGeometry * GEOSGeom_createEmptyCollection_r(GEOSContextHandle_t handle, int type)
GEOSGeomFromWKT
GEOSGeometry * GEOSGeomFromWKT(const char *wkt)
GEOSWKBWriter_getByteOrder
int GEOSWKBWriter_getByteOrder(const GEOSWKBWriter *writer)
GEOSHasZ_r
char GEOSHasZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSRELATE_BNR_MONOVALENT_ENDPOINT
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition: geos_c.h:1376
GEOSDistanceCallback
int(* GEOSDistanceCallback)(const void *item1, const void *item2, double *distance, void *userdata)
Definition: geos_c.h:271
GEOSWKTWriter_setTrim
void GEOSWKTWriter_setTrim(GEOSWKTWriter *writer, char trim)
GEOSCoveredBy
char GEOSCoveredBy(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSisValidReason
char * GEOSisValidReason(const GEOSGeometry *g)
GEOSWKBWriter_getFlavor
int GEOSWKBWriter_getFlavor(const GEOSWKBWriter *writer)
GEOSGeomTypes
GEOSGeomTypes
Definition: geos_c.h:197
GEOSSymDifferencePrec_r
GEOSGeometry * GEOSSymDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGetNumInteriorRings
int GEOSGetNumInteriorRings(const GEOSGeometry *g)
GEOSSetSRID_r
void GEOSSetSRID_r(GEOSContextHandle_t handle, GEOSGeometry *g, int SRID)
GEOSBufferParams_destroy
void GEOSBufferParams_destroy(GEOSBufferParams *parms)
GEOSMessageHandler_r
void(* GEOSMessageHandler_r)(const char *message, void *userdata)
Definition: geos_c.h:117
GEOSPolygonHullParameterModes
GEOSPolygonHullParameterModes
Definition: geos_c.h:4038
GEOSWKTWriter
struct GEOSWKTWriter_t GEOSWKTWriter
Definition: geos_c.h:1801
GEOSGeom_createRectangle_r
GEOSGeometry * GEOSGeom_createRectangle_r(GEOSContextHandle_t handle, double xmin, double ymin, double xmax, double ymax)
GEOSIntersects_r
char GEOSIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSNode
GEOSGeometry * GEOSNode(const GEOSGeometry *g)
GEOSEqualsExact
char GEOSEqualsExact(const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSPreparedGeom_destroy_r
void GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *g)
GEOSSimplify_r
GEOSGeometry * GEOSSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGetSRID
int GEOSGetSRID(const GEOSGeometry *g)
GEOSSTRtree_build_r
int GEOSSTRtree_build_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
GEOSGeom_getCoordSeq
const GEOSCoordSequence * GEOSGeom_getCoordSeq(const GEOSGeometry *g)
GEOSLineMerge
GEOSGeometry * GEOSLineMerge(const GEOSGeometry *g)
GEOSValidFlags
GEOSValidFlags
Definition: geos_c.h:1409
GEOSPreparedOverlaps_r
char GEOSPreparedOverlaps_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWKBWriter_setOutputDimension_r
void GEOSWKBWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int newDimension)
GEOSPreparedCoveredBy
char GEOSPreparedCoveredBy(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSInterpolate_r
GEOSGeometry * GEOSInterpolate_r(GEOSContextHandle_t handle, const GEOSGeometry *line, double d)
GEOSBufferParams_setJoinStyle_r
int GEOSBufferParams_setJoinStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int joinStyle)
GEOSWKTReader_create
GEOSWKTReader * GEOSWKTReader_create(void)
GEOSIntersectionPrec_r
GEOSGeometry * GEOSIntersectionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeom_createPolygon
GEOSGeometry * GEOSGeom_createPolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSWKTWriter_setTrim_r
void GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, char trim)
GEOSPreparedContainsProperly_r
char GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSOrientationIndex
int GEOSOrientationIndex(double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSCoordSeq_clone
GEOSCoordSequence * GEOSCoordSeq_clone(const GEOSCoordSequence *s)
GEOSBUF_JOIN_MITRE
@ GEOSBUF_JOIN_MITRE
Definition: geos_c.h:617
GEOSDensify_r
GEOSGeometry * GEOSDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeom_createCollection_r
GEOSGeometry * GEOSGeom_createCollection_r(GEOSContextHandle_t handle, int type, GEOSGeometry **geoms, unsigned int ngeoms)
GEOSWKTReader_create_r
GEOSWKTReader * GEOSWKTReader_create_r(GEOSContextHandle_t handle)
GEOSCoordSeq_setXY
int GEOSCoordSeq_setXY(GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSPolygonizer_getCutEdges_r
GEOSGeometry * GEOSPolygonizer_getCutEdges_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGeomToWKB_buf_r
unsigned char * GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSBUF_CAP_SQUARE
@ GEOSBUF_CAP_SQUARE
Definition: geos_c.h:600
GEOSversion
const char * GEOSversion(void)
GEOSGeomGetStartPoint
GEOSGeometry * GEOSGeomGetStartPoint(const GEOSGeometry *g)
GEOSClipByRect
GEOSGeometry * GEOSClipByRect(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
GEOSDensify
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
GEOSRelateBoundaryNodeRules
GEOSRelateBoundaryNodeRules
Definition: geos_c.h:1366
GEOSBuffer_r
GEOSGeometry * GEOSBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs)
GEOSWKBReader_create
GEOSWKBReader * GEOSWKBReader_create(void)
GEOSPreparedCoveredBy_r
char GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSBoundary_r
GEOSGeometry * GEOSBoundary_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPreparedTouches_r
char GEOSPreparedTouches_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSPolygonHullSimplifyMode_r
GEOSGeometry * GEOSPolygonHullSimplifyMode_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
GEOSConcaveHullByLength
GEOSGeometry * GEOSConcaveHullByLength(const GEOSGeometry *g, double length, unsigned int allowHoles)
GEOSMakeValidParams_destroy_r
void GEOSMakeValidParams_destroy_r(GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
GEOSPolygonHullSimplify
GEOSGeometry * GEOSPolygonHullSimplify(const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
GEOSBUF_JOIN_BEVEL
@ GEOSBUF_JOIN_BEVEL
Definition: geos_c.h:622
GEOSPreparedCrosses_r
char GEOSPreparedCrosses_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWKTReader_read_r
GEOSGeometry * GEOSWKTReader_read_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, const char *wkt)
GEOSGeom_createEmptyCollection
GEOSGeometry * GEOSGeom_createEmptyCollection(int type)
GEOSGeomGetY
int GEOSGeomGetY(const GEOSGeometry *g, double *y)
GEOSGeom_createRectangle
GEOSGeometry * GEOSGeom_createRectangle(double xmin, double ymin, double xmax, double ymax)
GEOSPreparedContains_r
char GEOSPreparedContains_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWKBByteOrders
GEOSWKBByteOrders
Definition: geos_c.h:222
GEOSGeomGetX
int GEOSGeomGetX(const GEOSGeometry *g, double *x)
GEOSGeomFromWKT_r
GEOSGeometry * GEOSGeomFromWKT_r(GEOSContextHandle_t handle, const char *wkt)
GEOSUnionCascaded
GEOSGeometry * GEOSUnionCascaded(const GEOSGeometry *g)
GEOSPreparedWithin
char GEOSPreparedWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGetNumCoordinates
int GEOSGetNumCoordinates(const GEOSGeometry *g)
GEOSGeom_createEmptyPoint_r
GEOSGeometry * GEOSGeom_createEmptyPoint_r(GEOSContextHandle_t handle)
GEOSPreparedContainsXY_r
char GEOSPreparedContainsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOS_WKB_ISO
@ GEOS_WKB_ISO
Definition: geos_c.h:242
GEOSCovers_r
char GEOSCovers_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeom_transformXY
GEOSGeometry * GEOSGeom_transformXY(const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSGeom_createLinearRing_r
GEOSGeometry * GEOSGeom_createLinearRing_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSPrepare
const GEOSPreparedGeometry * GEOSPrepare(const GEOSGeometry *g)
GEOSCoverageSimplifyVW
GEOSGeometry * GEOSCoverageSimplifyVW(const GEOSGeometry *input, double tolerance, int preserveBoundary)
GEOSGetExteriorRing_r
const GEOSGeometry * GEOSGetExteriorRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSNormalize_r
int GEOSNormalize_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSWKTReader_destroy
void GEOSWKTReader_destroy(GEOSWKTReader *reader)