GEOS  3.11.0beta3
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 11
65 #endif
66 #ifndef GEOS_VERSION_PATCH
67 #define GEOS_VERSION_PATCH 0beta3
68 #endif
69 #ifndef GEOS_VERSION
70 #define GEOS_VERSION "3.11.0beta3"
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 16
78 #define GEOS_CAPI_VERSION_PATCH 0
79 #define GEOS_CAPI_VERSION "3.11.0beta3-CAPI-1.16.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 
106 typedef void (*GEOSMessageHandler)(const char *fmt, ...);
107 
118 typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
119 
120 /*
121 * When we're included by geos_c.cpp, these types are #defined to the
122 * C++ definitions via preprocessor. We don't touch them to allow the
123 * compiler to cross-check the declarations. However, for all "normal"
124 * C-API users, we need to define these types as "opaque" struct pointers, as
125 * those clients don't have access to the original C++ headers, by design.
126 */
127 #ifndef GEOSGeometry
128 
140 typedef struct GEOSGeom_t GEOSGeometry;
141 
147 typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
148 
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 
227 };
228 
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 
316 
320 extern void GEOS_DLL GEOS_interruptRequest(void);
321 
325 extern void GEOS_DLL GEOS_interruptCancel(void);
326 
327 /* ========== Initialization and Cleanup ========== */
328 
334 extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
335 
341 extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
342 
350  GEOSContextHandle_t extHandle,
351  GEOSMessageHandler nf);
352 
362  GEOSContextHandle_t extHandle,
363  GEOSMessageHandler ef);
364 
373  GEOSContextHandle_t extHandle,
375  void *userData);
376 
387  GEOSContextHandle_t extHandle,
389  void *userData);
390 
391 /* ========== Coordinate Sequence functions ========== */
392 
395  GEOSContextHandle_t handle,
396  unsigned int size,
397  unsigned int dims);
398 
401  GEOSContextHandle_t handle,
402  const double* buf,
403  unsigned int size,
404  int hasZ,
405  int hasM);
406 
409  GEOSContextHandle_t handle,
410  const double* x,
411  const double* y,
412  const double* z,
413  const double* m,
414  unsigned int size);
415 
417 extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
418  GEOSContextHandle_t handle,
419  const GEOSCoordSequence* s,
420  double* buf,
421  int hasZ,
422  int hasM);
423 
425 extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
426  GEOSContextHandle_t handle,
427  const GEOSCoordSequence* s,
428  double* x,
429  double* y,
430  double* z,
431  double* m);
432 
434 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone_r(
435  GEOSContextHandle_t handle,
436  const GEOSCoordSequence* s);
437 
439 extern void GEOS_DLL GEOSCoordSeq_destroy_r(
440  GEOSContextHandle_t handle,
441  GEOSCoordSequence* s);
442 
444 extern int GEOS_DLL GEOSCoordSeq_setX_r(
445  GEOSContextHandle_t handle,
446  GEOSCoordSequence* s, unsigned int idx,
447  double val);
448 
450 extern int GEOS_DLL GEOSCoordSeq_setY_r(
451  GEOSContextHandle_t handle,
452  GEOSCoordSequence* s, unsigned int idx,
453  double val);
454 
456 extern int GEOS_DLL GEOSCoordSeq_setZ_r(
457  GEOSContextHandle_t handle,
458  GEOSCoordSequence* s, unsigned int idx,
459  double val);
460 
462 extern int GEOS_DLL GEOSCoordSeq_setXY_r(
463  GEOSContextHandle_t handle,
464  GEOSCoordSequence* s, unsigned int idx,
465  double x, double y);
466 
468 extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
469  GEOSContextHandle_t handle,
470  GEOSCoordSequence* s, unsigned int idx,
471  double x, double y, double z);
472 
474 extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
475  GEOSContextHandle_t handle,
477  unsigned int idx,
478  unsigned int dim, double val);
479 
481 extern int GEOS_DLL GEOSCoordSeq_getX_r(
482  GEOSContextHandle_t handle,
483  const GEOSCoordSequence* s,
484  unsigned int idx, double *val);
485 
487 extern int GEOS_DLL GEOSCoordSeq_getY_r(
488  GEOSContextHandle_t handle,
489  const GEOSCoordSequence* s,
490  unsigned int idx, double *val);
491 
493 extern int GEOS_DLL GEOSCoordSeq_getZ_r(
494  GEOSContextHandle_t handle,
495  const GEOSCoordSequence* s,
496  unsigned int idx, double *val);
497 
499 extern int GEOS_DLL GEOSCoordSeq_getXY_r(
500  GEOSContextHandle_t handle,
501  const GEOSCoordSequence* s,
502  unsigned int idx,
503  double *x, double *y);
504 
506 extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
507  GEOSContextHandle_t handle,
508  const GEOSCoordSequence* s,
509  unsigned int idx,
510  double *x, double *y, double *z);
511 
513 extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
514  GEOSContextHandle_t handle,
515  const GEOSCoordSequence* s,
516  unsigned int idx,
517  unsigned int dim, double *val);
518 
520 extern int GEOS_DLL GEOSCoordSeq_getSize_r(
521  GEOSContextHandle_t handle,
522  const GEOSCoordSequence* s,
523  unsigned int *size);
524 
526 extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(
527  GEOSContextHandle_t handle,
528  const GEOSCoordSequence* s,
529  unsigned int *dims);
530 
532 extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
533  GEOSContextHandle_t handle,
534  const GEOSCoordSequence* s,
535  char* is_ccw);
536 
537 /* ========= Linear referencing functions ========= */
538 
540 extern double GEOS_DLL GEOSProject_r(
541  GEOSContextHandle_t handle,
542  const GEOSGeometry *line,
543  const GEOSGeometry *point);
544 
546 extern GEOSGeometry GEOS_DLL *GEOSInterpolate_r(
547  GEOSContextHandle_t handle,
548  const GEOSGeometry *line,
549  double d);
550 
552 extern double GEOS_DLL GEOSProjectNormalized_r(
553  GEOSContextHandle_t handle,
554  const GEOSGeometry *g,
555  const GEOSGeometry *p);
556 
559  GEOSContextHandle_t handle,
560  const GEOSGeometry *g,
561  double d);
562 
563 /* ========== Buffer related functions ========== */
564 
566 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
567  GEOSContextHandle_t handle,
568  const GEOSGeometry* g,
569  double width, int quadsegs);
570 
576 
579 
582 
585 };
586 
607 };
608 
611  GEOSContextHandle_t handle);
612 
614 extern void GEOS_DLL GEOSBufferParams_destroy_r(
615  GEOSContextHandle_t handle,
616  GEOSBufferParams* parms);
617 
619 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle_r(
620  GEOSContextHandle_t handle,
621  GEOSBufferParams* p,
622  int style);
623 
625 extern int GEOS_DLL GEOSBufferParams_setJoinStyle_r(
626  GEOSContextHandle_t handle,
627  GEOSBufferParams* p,
628  int joinStyle);
629 
631 extern int GEOS_DLL GEOSBufferParams_setMitreLimit_r(
632  GEOSContextHandle_t handle,
633  GEOSBufferParams* p,
634  double mitreLimit);
635 
637 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments_r(
638  GEOSContextHandle_t handle,
639  GEOSBufferParams* p,
640  int quadSegs);
641 
643 extern int GEOS_DLL GEOSBufferParams_setSingleSided_r(
644  GEOSContextHandle_t handle,
645  GEOSBufferParams* p,
646  int singleSided);
647 
649 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams_r(
650  GEOSContextHandle_t handle,
651  const GEOSGeometry* g,
652  const GEOSBufferParams* p,
653  double width);
654 
656 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle_r(
657  GEOSContextHandle_t handle,
658  const GEOSGeometry* g,
659  double width, int quadsegs, int endCapStyle,
660  int joinStyle, double mitreLimit);
661 
663 extern GEOSGeometry GEOS_DLL *GEOSDensify_r(
664  GEOSContextHandle_t handle,
665  const GEOSGeometry* g,
666  double tolerance);
667 
669 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve_r(
670  GEOSContextHandle_t handle,
671  const GEOSGeometry* g, double width, int quadsegs,
672  int joinStyle, double mitreLimit);
673 
674 
675 /* ========= Geometry Constructors ========= */
676 
678 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
679  GEOSContextHandle_t handle,
680  GEOSCoordSequence* s);
681 
684  GEOSContextHandle_t handle,
685  double x, double y);
686 
689  GEOSContextHandle_t handle);
690 
693  GEOSContextHandle_t handle,
694  GEOSCoordSequence* s);
695 
698  GEOSContextHandle_t handle,
699  GEOSCoordSequence* s);
700 
703  GEOSContextHandle_t handle);
704 
707  GEOSContextHandle_t handle);
708 
710 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
711  GEOSContextHandle_t handle,
712  GEOSGeometry* shell,
713  GEOSGeometry** holes,
714  unsigned int nholes);
715 
718  GEOSContextHandle_t handle,
719  int type,
720  GEOSGeometry* *geoms,
721  unsigned int ngeoms);
722 
725  GEOSContextHandle_t handle, int type);
726 
729  GEOSContextHandle_t handle,
730  double xmin, double ymin,
731  double xmax, double ymax);
732 
734 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(
735  GEOSContextHandle_t handle,
736  const GEOSGeometry* g);
737 
738 /* ========= Memory management ========= */
739 
741 extern void GEOS_DLL GEOSGeom_destroy_r(
742  GEOSContextHandle_t handle,
743  GEOSGeometry* g);
744 
745 /* ========= Topology Operations ========= */
746 
748 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(
749  GEOSContextHandle_t handle,
750  const GEOSGeometry* g);
751 
753 extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(
754  GEOSContextHandle_t handle,
755  const GEOSGeometry* g1,
756  const GEOSGeometry* g2);
757 
759 extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec_r(
760  GEOSContextHandle_t handle,
761  const GEOSGeometry* g1,
762  const GEOSGeometry* g2,
763  double gridSize);
764 
766 extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(
767  GEOSContextHandle_t handle,
768  const GEOSGeometry* g);
769 
771 extern GEOSGeometry GEOS_DLL *GEOSConcaveHull_r(
772  GEOSContextHandle_t handle,
773  const GEOSGeometry* g,
774  double ratio,
775  unsigned int allowHoles);
776 
778 extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify_r(
779  GEOSContextHandle_t handle,
780  const GEOSGeometry* g,
781  unsigned int isOuter,
782  double vertexNumFraction);
783 
786  GEOSContextHandle_t handle,
787  const GEOSGeometry* g,
788  unsigned int isOuter,
789  unsigned int parameterMode,
790  double parameter);
791 
794  GEOSContextHandle_t handle,
795  const GEOSGeometry* g,
796  double lengthRatio,
797  unsigned int isTight,
798  unsigned int isHolesAllowed);
799 
802  GEOSContextHandle_t handle,
803  const GEOSGeometry* g);
804 
807  GEOSContextHandle_t handle,
808  const GEOSGeometry* g,
809  double tolerance);
810 
812 extern GEOSGeometry GEOS_DLL *GEOSLargestEmptyCircle_r(
813  GEOSContextHandle_t handle,
814  const GEOSGeometry* g,
815  const GEOSGeometry* boundary,
816  double tolerance);
817 
819 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(
820  GEOSContextHandle_t handle,
821  const GEOSGeometry* g);
822 
825  GEOSContextHandle_t handle,
826  const GEOSGeometry* g);
827 
829 extern int GEOS_DLL GEOSMinimumClearance_r(
830  GEOSContextHandle_t handle,
831  const GEOSGeometry* g,
832  double* distance);
833 
835 extern GEOSGeometry GEOS_DLL *GEOSDifference_r(
836  GEOSContextHandle_t handle,
837  const GEOSGeometry* g1,
838  const GEOSGeometry* g2);
839 
841 extern GEOSGeometry GEOS_DLL *GEOSDifferencePrec_r(
842  GEOSContextHandle_t handle,
843  const GEOSGeometry* g1,
844  const GEOSGeometry* g2,
845  double gridSize);
846 
848 extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(
849  GEOSContextHandle_t handle,
850  const GEOSGeometry* g1,
851  const GEOSGeometry* g2);
852 
854 extern GEOSGeometry GEOS_DLL *GEOSSymDifferencePrec_r(
855  GEOSContextHandle_t handle,
856  const GEOSGeometry* g1,
857  const GEOSGeometry* g2,
858  double gridSize);
859 
861 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(
862  GEOSContextHandle_t handle,
863  const GEOSGeometry* g);
864 
866 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
867  GEOSContextHandle_t handle,
868  const GEOSGeometry* g1,
869  const GEOSGeometry* g2);
870 
872 extern GEOSGeometry GEOS_DLL *GEOSUnionPrec_r(
873  GEOSContextHandle_t handle,
874  const GEOSGeometry* g1,
875  const GEOSGeometry* g2,
876  double gridSize);
877 
879 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(
880  GEOSContextHandle_t handle,
881  const GEOSGeometry* g);
882 
884 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnionPrec_r(
885  GEOSContextHandle_t handle,
886  const GEOSGeometry* g,
887  double gridSize);
888 
890 extern GEOSGeometry GEOS_DLL *GEOSCoverageUnion_r(
891  GEOSContextHandle_t handle,
892  const GEOSGeometry* g);
893 
895 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(
896  GEOSContextHandle_t handle,
897  const GEOSGeometry* g);
898 
900 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(
901  GEOSContextHandle_t handle,
902  const GEOSGeometry* g);
903 
906  GEOSContextHandle_t handle,
907  const GEOSGeometry* g,
908  double* radius,
909  GEOSGeometry** center);
910 
912 extern GEOSGeometry GEOS_DLL *GEOSNode_r(
913  GEOSContextHandle_t handle,
914  const GEOSGeometry* g);
915 
917 extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(
918  GEOSContextHandle_t handle,
919  const GEOSGeometry* g,
920  double xmin, double ymin,
921  double xmax, double ymax);
922 
924 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(
925  GEOSContextHandle_t handle,
926  const GEOSGeometry *const geoms[],
927  unsigned int ngeoms);
928 
930 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_valid_r(
931  GEOSContextHandle_t handle,
932  const GEOSGeometry *const geoms[],
933  unsigned int ngems);
934 
937  GEOSContextHandle_t handle,
938  const GEOSGeometry * const geoms[],
939  unsigned int ngeoms);
940 
942 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(
943  GEOSContextHandle_t handle,
944  const GEOSGeometry* input,
945  GEOSGeometry** cuts,
946  GEOSGeometry** dangles,
947  GEOSGeometry** invalidRings);
948 
950 extern GEOSGeometry GEOS_DLL *GEOSBuildArea_r(
951  GEOSContextHandle_t handle,
952  const GEOSGeometry* g);
953 
955 extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(
956  GEOSContextHandle_t handle,
957  const GEOSGeometry* g);
958 
960 extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected_r(
961  GEOSContextHandle_t handle,
962  const GEOSGeometry* g);
963 
965 extern GEOSGeometry GEOS_DLL *GEOSReverse_r(
966  GEOSContextHandle_t handle,
967  const GEOSGeometry* g);
968 
970 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(
971  GEOSContextHandle_t handle,
972  const GEOSGeometry* g,
973  double tolerance);
974 
977  GEOSContextHandle_t handle,
978  const GEOSGeometry* g, double tolerance);
979 
982  GEOSContextHandle_t handle,
983  const GEOSGeometry* g);
984 
986 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(
987  GEOSContextHandle_t handle,
988  const GEOSGeometry* g1,
989  const GEOSGeometry* g2);
990 
992 extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
993  GEOSContextHandle_t handle,
994  const GEOSGeometry* g1,
995  const GEOSGeometry* g2,
996  double tolerance);
997 
999 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
1000  GEOSContextHandle_t handle,
1001  const GEOSGeometry *g,
1002  double tolerance,
1003  int onlyEdges);
1004 
1007  GEOSContextHandle_t handle,
1008  const GEOSGeometry *g);
1009 
1011 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
1012  GEOSContextHandle_t extHandle,
1013  const GEOSGeometry *g,
1014  const GEOSGeometry *env,
1015  double tolerance,
1016  int onlyEdges);
1017 
1019 extern int GEOS_DLL GEOSSegmentIntersection_r(
1020  GEOSContextHandle_t extHandle,
1021  double ax0, double ay0,
1022  double ax1, double ay1,
1023  double bx0, double by0,
1024  double bx1, double by1,
1025  double* cx, double* cy);
1026 
1027 /* ========= Binary predicates ========= */
1028 
1030 extern char GEOS_DLL GEOSDisjoint_r(
1031  GEOSContextHandle_t handle,
1032  const GEOSGeometry* g1,
1033  const GEOSGeometry* g2);
1034 
1036 extern char GEOS_DLL GEOSTouches_r(
1037  GEOSContextHandle_t handle,
1038  const GEOSGeometry* g1,
1039  const GEOSGeometry* g2);
1040 
1042 extern char GEOS_DLL GEOSIntersects_r(
1043  GEOSContextHandle_t handle,
1044  const GEOSGeometry* g1,
1045  const GEOSGeometry* g2);
1046 
1048 extern char GEOS_DLL GEOSCrosses_r(
1049  GEOSContextHandle_t handle,
1050  const GEOSGeometry* g1,
1051  const GEOSGeometry* g2);
1052 
1054 extern char GEOS_DLL GEOSWithin_r(
1055  GEOSContextHandle_t handle,
1056  const GEOSGeometry* g1,
1057  const GEOSGeometry* g2);
1058 
1060 extern char GEOS_DLL GEOSContains_r(
1061  GEOSContextHandle_t handle,
1062  const GEOSGeometry* g1,
1063  const GEOSGeometry* g2);
1064 
1066 extern char GEOS_DLL GEOSOverlaps_r(
1067  GEOSContextHandle_t handle,
1068  const GEOSGeometry* g1,
1069  const GEOSGeometry* g2);
1070 
1072 extern char GEOS_DLL GEOSEquals_r(
1073  GEOSContextHandle_t handle,
1074  const GEOSGeometry* g1,
1075  const GEOSGeometry* g2);
1076 
1078 extern char GEOS_DLL GEOSEqualsExact_r(
1079  GEOSContextHandle_t handle,
1080  const GEOSGeometry* g1,
1081  const GEOSGeometry* g2,
1082  double tolerance);
1083 
1085 extern char GEOS_DLL GEOSCovers_r(
1086  GEOSContextHandle_t handle,
1087  const GEOSGeometry* g1,
1088  const GEOSGeometry* g2);
1089 
1091 extern char GEOS_DLL GEOSCoveredBy_r(
1092  GEOSContextHandle_t handle,
1093  const GEOSGeometry* g1,
1094  const GEOSGeometry* g2);
1095 
1096 /* ========= Prepared Geometry Binary Predicates ========== */
1097 
1099 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
1100  GEOSContextHandle_t handle,
1101  const GEOSGeometry* g);
1102 
1104 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1105  GEOSContextHandle_t handle,
1106  const GEOSPreparedGeometry* g);
1107 
1109 extern char GEOS_DLL GEOSPreparedContains_r(
1110  GEOSContextHandle_t handle,
1111  const GEOSPreparedGeometry* pg1,
1112  const GEOSGeometry* g2);
1113 
1115 extern char GEOS_DLL GEOSPreparedContainsProperly_r(
1116  GEOSContextHandle_t handle,
1117  const GEOSPreparedGeometry* pg1,
1118  const GEOSGeometry* g2);
1119 
1121 extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1122  GEOSContextHandle_t handle,
1123  const GEOSPreparedGeometry* pg1,
1124  const GEOSGeometry* g2);
1125 
1127 extern char GEOS_DLL GEOSPreparedCovers_r(
1128  GEOSContextHandle_t handle,
1129  const GEOSPreparedGeometry* pg1,
1130  const GEOSGeometry* g2);
1131 
1133 extern char GEOS_DLL GEOSPreparedCrosses_r(
1134  GEOSContextHandle_t handle,
1135  const GEOSPreparedGeometry* pg1,
1136  const GEOSGeometry* g2);
1137 
1139 extern char GEOS_DLL GEOSPreparedDisjoint_r(
1140  GEOSContextHandle_t handle,
1141  const GEOSPreparedGeometry* pg1,
1142  const GEOSGeometry* g2);
1143 
1145 extern char GEOS_DLL GEOSPreparedIntersects_r(
1146  GEOSContextHandle_t handle,
1147  const GEOSPreparedGeometry* pg1,
1148  const GEOSGeometry* g2);
1149 
1151 extern char GEOS_DLL GEOSPreparedOverlaps_r(
1152  GEOSContextHandle_t handle,
1153  const GEOSPreparedGeometry* pg1,
1154  const GEOSGeometry* g2);
1155 
1157 extern char GEOS_DLL GEOSPreparedTouches_r(
1158  GEOSContextHandle_t handle,
1159  const GEOSPreparedGeometry* pg1,
1160  const GEOSGeometry* g2);
1161 
1163 extern char GEOS_DLL GEOSPreparedWithin_r(
1164  GEOSContextHandle_t handle,
1165  const GEOSPreparedGeometry* pg1,
1166  const GEOSGeometry* g2);
1167 
1170  GEOSContextHandle_t handle,
1171  const GEOSPreparedGeometry* pg1,
1172  const GEOSGeometry* g2);
1173 
1175 extern int GEOS_DLL GEOSPreparedDistance_r(
1176  GEOSContextHandle_t handle,
1177  const GEOSPreparedGeometry* pg1,
1178  const GEOSGeometry* g2, double *dist);
1179 
1181 extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1182  GEOSContextHandle_t handle,
1183  const GEOSPreparedGeometry* pg1,
1184  const GEOSGeometry* g2, double dist);
1185 
1186 /* ========== STRtree ========== */
1187 
1189 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
1190  GEOSContextHandle_t handle,
1191  size_t nodeCapacity);
1192 
1194 extern void GEOS_DLL GEOSSTRtree_insert_r(
1195  GEOSContextHandle_t handle,
1196  GEOSSTRtree *tree,
1197  const GEOSGeometry *g,
1198  void *item);
1199 
1201 extern void GEOS_DLL GEOSSTRtree_query_r(
1202  GEOSContextHandle_t handle,
1203  GEOSSTRtree *tree,
1204  const GEOSGeometry *g,
1205  GEOSQueryCallback callback,
1206  void *userdata);
1207 
1209 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(
1210  GEOSContextHandle_t handle,
1211  GEOSSTRtree *tree,
1212  const GEOSGeometry* geom);
1213 
1215 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1216  GEOSContextHandle_t handle,
1217  GEOSSTRtree *tree,
1218  const void* item,
1219  const GEOSGeometry* itemEnvelope,
1220  GEOSDistanceCallback distancefn,
1221  void* userdata);
1222 
1224 extern void GEOS_DLL GEOSSTRtree_iterate_r(
1225  GEOSContextHandle_t handle,
1226  GEOSSTRtree *tree,
1227  GEOSQueryCallback callback,
1228  void *userdata);
1229 
1231 extern char GEOS_DLL GEOSSTRtree_remove_r(
1232  GEOSContextHandle_t handle,
1233  GEOSSTRtree *tree,
1234  const GEOSGeometry *g,
1235  void *item);
1236 
1238 extern void GEOS_DLL GEOSSTRtree_destroy_r(
1239  GEOSContextHandle_t handle,
1240  GEOSSTRtree *tree);
1241 
1242 
1243 /* ========= Unary predicate ========= */
1244 
1246 extern char GEOS_DLL GEOSisEmpty_r(
1247  GEOSContextHandle_t handle,
1248  const GEOSGeometry* g);
1249 
1251 extern char GEOS_DLL GEOSisSimple_r(
1252  GEOSContextHandle_t handle,
1253  const GEOSGeometry* g);
1254 
1256 extern char GEOS_DLL GEOSisRing_r(
1257  GEOSContextHandle_t handle,
1258  const GEOSGeometry* g);
1259 
1261 extern char GEOS_DLL GEOSHasZ_r(
1262  GEOSContextHandle_t handle,
1263  const GEOSGeometry* g);
1264 
1266 extern char GEOS_DLL GEOSisClosed_r(
1267  GEOSContextHandle_t handle,
1268  const GEOSGeometry *g);
1269 
1270 /* ========== Dimensionally Extended 9 Intersection Model ========== */
1271 
1287 };
1288 
1290 extern char GEOS_DLL GEOSRelatePattern_r(
1291  GEOSContextHandle_t handle,
1292  const GEOSGeometry* g1,
1293  const GEOSGeometry* g2,
1294  const char *pat);
1295 
1297 extern char GEOS_DLL *GEOSRelate_r(
1298  GEOSContextHandle_t handle,
1299  const GEOSGeometry* g1,
1300  const GEOSGeometry* g2);
1301 
1303 extern char GEOS_DLL GEOSRelatePatternMatch_r(
1304  GEOSContextHandle_t handle,
1305  const char *mat,
1306  const char *pat);
1307 
1309 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1310  GEOSContextHandle_t handle,
1311  const GEOSGeometry* g1,
1312  const GEOSGeometry* g2,
1313  int bnr);
1314 
1315 /* ========= Validity checking ========= */
1316 
1319 {
1322 };
1323 
1325 extern char GEOS_DLL GEOSisValid_r(
1326  GEOSContextHandle_t handle,
1327  const GEOSGeometry* g);
1328 
1330 extern char GEOS_DLL *GEOSisValidReason_r(
1331  GEOSContextHandle_t handle,
1332  const GEOSGeometry* g);
1333 
1335 extern char GEOS_DLL GEOSisValidDetail_r(
1336  GEOSContextHandle_t handle,
1337  const GEOSGeometry* g,
1338  int flags,
1339  char** reason,
1340  GEOSGeometry** location);
1341 
1342 /* ========== Make Valid ========== */
1343 
1359 };
1360 
1363  GEOSContextHandle_t extHandle);
1364 
1366 extern void GEOS_DLL GEOSMakeValidParams_destroy_r(
1367  GEOSContextHandle_t handle,
1368  GEOSMakeValidParams* parms);
1369 
1371 extern int GEOS_DLL GEOSMakeValidParams_setKeepCollapsed_r(
1372  GEOSContextHandle_t handle,
1374  int style);
1375 
1377 extern int GEOS_DLL GEOSMakeValidParams_setMethod_r(
1378  GEOSContextHandle_t handle,
1380  enum GEOSMakeValidMethods method);
1381 
1383 extern GEOSGeometry GEOS_DLL *GEOSMakeValid_r(
1384  GEOSContextHandle_t handle,
1385  const GEOSGeometry* g);
1386 
1388 extern GEOSGeometry GEOS_DLL *GEOSMakeValidWithParams_r(
1389  GEOSContextHandle_t handle,
1390  const GEOSGeometry* g,
1391  const GEOSMakeValidParams* makeValidParams);
1392 
1394 extern GEOSGeometry GEOS_DLL *GEOSRemoveRepeatedPoints_r(
1395  GEOSContextHandle_t handle,
1396  const GEOSGeometry* g,
1397  double tolerance);
1398 
1399 /* ========== Geometry info ========== */
1400 
1402 /* Return NULL on exception, result must be freed by caller. */
1403 extern char GEOS_DLL *GEOSGeomType_r(
1404  GEOSContextHandle_t handle,
1405  const GEOSGeometry* g);
1406 
1408 extern int GEOS_DLL GEOSGeomTypeId_r(
1409  GEOSContextHandle_t handle,
1410  const GEOSGeometry* g);
1411 
1413 extern int GEOS_DLL GEOSGetSRID_r(
1414  GEOSContextHandle_t handle,
1415  const GEOSGeometry* g);
1416 
1418 extern void GEOS_DLL GEOSSetSRID_r(
1419  GEOSContextHandle_t handle,
1420  GEOSGeometry* g, int SRID);
1421 
1423 extern void GEOS_DLL *GEOSGeom_getUserData_r(
1424  GEOSContextHandle_t handle,
1425  const GEOSGeometry* g);
1426 
1428 extern void GEOS_DLL GEOSGeom_setUserData_r(
1429  GEOSContextHandle_t handle,
1430  GEOSGeometry* g,
1431  void* userData);
1432 
1434 extern int GEOS_DLL GEOSGetNumGeometries_r(
1435  GEOSContextHandle_t handle,
1436  const GEOSGeometry* g);
1437 
1439 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1440  GEOSContextHandle_t handle,
1441  const GEOSGeometry* g, int n);
1442 
1444 extern int GEOS_DLL GEOSNormalize_r(
1445  GEOSContextHandle_t handle,
1446  GEOSGeometry* g);
1447 
1459 };
1460 
1462 extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision_r(
1463  GEOSContextHandle_t handle,
1464  const GEOSGeometry *g,
1465  double gridSize,
1466  int flags);
1467 
1469 extern double GEOS_DLL GEOSGeom_getPrecision_r(
1470  GEOSContextHandle_t handle,
1471  const GEOSGeometry *g);
1472 
1474 extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1475  GEOSContextHandle_t handle,
1476  const GEOSGeometry* g);
1477 
1479 extern int GEOS_DLL GEOSGeomGetNumPoints_r(
1480  GEOSContextHandle_t handle,
1481  const GEOSGeometry* g);
1482 
1484 extern int GEOS_DLL GEOSGeomGetX_r(
1485  GEOSContextHandle_t handle,
1486  const GEOSGeometry *g,
1487  double *x);
1488 
1490 extern int GEOS_DLL GEOSGeomGetY_r(
1491  GEOSContextHandle_t handle,
1492  const GEOSGeometry *g,
1493  double *y);
1494 
1496 extern int GEOS_DLL GEOSGeomGetZ_r(
1497  GEOSContextHandle_t handle,
1498  const GEOSGeometry *g,
1499  double *z);
1500 
1502 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
1503  GEOSContextHandle_t handle,
1504  const GEOSGeometry* g, int n);
1505 
1507 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
1508  GEOSContextHandle_t handle,
1509  const GEOSGeometry* g);
1510 
1512 extern int GEOS_DLL GEOSGetNumCoordinates_r(
1513  GEOSContextHandle_t handle,
1514  const GEOSGeometry* g);
1515 
1517 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
1518  GEOSContextHandle_t handle,
1519  const GEOSGeometry* g);
1520 
1522 extern int GEOS_DLL GEOSGeom_getDimensions_r(
1523  GEOSContextHandle_t handle,
1524  const GEOSGeometry* g);
1525 
1527 extern int GEOS_DLL GEOSGeom_getCoordinateDimension_r(
1528  GEOSContextHandle_t handle,
1529  const GEOSGeometry* g);
1530 
1532 extern int GEOS_DLL GEOSGeom_getXMin_r(
1533  GEOSContextHandle_t handle,
1534  const GEOSGeometry* g,
1535  double* value);
1536 
1538 extern int GEOS_DLL GEOSGeom_getYMin_r(
1539  GEOSContextHandle_t handle,
1540  const GEOSGeometry* g,
1541  double* value);
1542 
1544 extern int GEOS_DLL GEOSGeom_getXMax_r(
1545  GEOSContextHandle_t handle,
1546  const GEOSGeometry* g,
1547  double* value);
1548 
1550 extern int GEOS_DLL GEOSGeom_getYMax_r(
1551  GEOSContextHandle_t handle,
1552  const GEOSGeometry* g,
1553  double* value);
1554 
1556 extern int GEOS_DLL GEOSGeom_getExtent_r(
1557  GEOSContextHandle_t handle,
1558  const GEOSGeometry* g,
1559  double* xmin,
1560  double* ymin,
1561  double* xmax,
1562  double* ymax);
1563 
1565 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN_r(
1566  GEOSContextHandle_t handle,
1567  const GEOSGeometry *g,
1568  int n);
1569 
1571 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint_r(
1572  GEOSContextHandle_t handle,
1573  const GEOSGeometry *g);
1574 
1576 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint_r(
1577  GEOSContextHandle_t handle,
1578  const GEOSGeometry *g);
1579 
1580 /* ========= Misc functions ========= */
1581 
1583 extern int GEOS_DLL GEOSArea_r(
1584  GEOSContextHandle_t handle,
1585  const GEOSGeometry* g,
1586  double *area);
1587 
1589 extern int GEOS_DLL GEOSLength_r(
1590  GEOSContextHandle_t handle,
1591  const GEOSGeometry* g,
1592  double *length);
1593 
1595 extern int GEOS_DLL GEOSDistance_r(
1596  GEOSContextHandle_t handle,
1597  const GEOSGeometry* g1,
1598  const GEOSGeometry* g2,
1599  double *dist);
1600 
1602 extern char GEOS_DLL GEOSDistanceWithin_r(
1603  GEOSContextHandle_t handle,
1604  const GEOSGeometry* g1,
1605  const GEOSGeometry* g2,
1606  double dist);
1607 
1609 extern int GEOS_DLL GEOSDistanceIndexed_r(
1610  GEOSContextHandle_t handle,
1611  const GEOSGeometry* g1,
1612  const GEOSGeometry* g2,
1613  double *dist);
1614 
1616 extern int GEOS_DLL GEOSHausdorffDistance_r(
1617  GEOSContextHandle_t handle,
1618  const GEOSGeometry *g1,
1619  const GEOSGeometry *g2,
1620  double *dist);
1621 
1623 extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(
1624  GEOSContextHandle_t handle,
1625  const GEOSGeometry *g1,
1626  const GEOSGeometry *g2,
1627  double densifyFrac, double *dist);
1628 
1630 extern int GEOS_DLL GEOSFrechetDistance_r(
1631  GEOSContextHandle_t handle,
1632  const GEOSGeometry *g1,
1633  const GEOSGeometry *g2,
1634  double *dist);
1635 
1637 extern int GEOS_DLL GEOSFrechetDistanceDensify_r(
1638  GEOSContextHandle_t handle,
1639  const GEOSGeometry *g1,
1640  const GEOSGeometry *g2,
1641  double densifyFrac,
1642  double *dist);
1643 
1644 
1646 extern int GEOS_DLL GEOSHilbertCode_r(
1647  GEOSContextHandle_t handle,
1648  const GEOSGeometry *geom,
1649  const GEOSGeometry* extent,
1650  unsigned int level,
1651  unsigned int *code
1652 );
1653 
1655 extern int GEOS_DLL GEOSGeomGetLength_r(
1656  GEOSContextHandle_t handle,
1657  const GEOSGeometry *g,
1658  double *length);
1659 
1661 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints_r(
1662  GEOSContextHandle_t handle,
1663  const GEOSGeometry* g1,
1664  const GEOSGeometry* g2);
1665 
1667 extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXY_r(
1668  GEOSContextHandle_t handle,
1669  const GEOSGeometry* g,
1670  GEOSTransformXYCallback callback,
1671  void* userdata);
1672 
1673 /* ========= Algorithms ========= */
1674 
1676 extern int GEOS_DLL GEOSOrientationIndex_r(
1677  GEOSContextHandle_t handle,
1678  double Ax, double Ay,
1679  double Bx, double By,
1680  double Px, double Py);
1681 
1682 
1683 /* ========== Reader and Writer APIs ========== */
1684 
1685 #ifndef GEOSWKTReader
1686 
1692 typedef struct GEOSWKTReader_t GEOSWKTReader;
1693 
1699 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1700 
1706 typedef struct GEOSWKBReader_t GEOSWKBReader;
1707 
1713 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1714 
1720 typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
1721 
1727 typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
1728 
1729 #endif
1730 
1731 /* ========== WKT Reader ========== */
1732 
1734 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
1735  GEOSContextHandle_t handle);
1736 
1738 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
1739  GEOSWKTReader* reader);
1740 
1742 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(
1743  GEOSContextHandle_t handle,
1744  GEOSWKTReader* reader,
1745  const char *wkt);
1746 
1748 extern void GEOS_DLL GEOSWKTReader_setFixStructure_r(
1749  GEOSContextHandle_t handle,
1750  GEOSWKTReader *reader,
1751  char doFix);
1752 
1753 /* ========== WKT Writer ========== */
1754 
1756 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
1757  GEOSContextHandle_t handle);
1758 
1760 extern void GEOS_DLL GEOSWKTWriter_destroy_r(
1761  GEOSContextHandle_t handle,
1762  GEOSWKTWriter* writer);
1763 
1765 extern char GEOS_DLL *GEOSWKTWriter_write_r(
1766  GEOSContextHandle_t handle,
1767  GEOSWKTWriter* writer,
1768  const GEOSGeometry* g);
1769 
1771 extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
1772  GEOSContextHandle_t handle,
1773  GEOSWKTWriter *writer,
1774  char trim);
1775 
1777 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision_r(
1778  GEOSContextHandle_t handle,
1779  GEOSWKTWriter *writer,
1780  int precision);
1781 
1783 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension_r(
1784  GEOSContextHandle_t handle,
1785  GEOSWKTWriter *writer,
1786  int dim);
1787 
1789 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension_r(
1790  GEOSContextHandle_t handle,
1791  GEOSWKTWriter *writer);
1792 
1794 extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
1795  GEOSContextHandle_t handle,
1796  GEOSWKTWriter *writer,
1797  int useOld3D);
1798 
1799 /* ========== WKB Reader ========== */
1800 
1802 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
1803  GEOSContextHandle_t handle);
1804 
1806 extern void GEOS_DLL GEOSWKBReader_destroy_r(
1807  GEOSContextHandle_t handle,
1808  GEOSWKBReader* reader);
1809 
1811 extern void GEOS_DLL GEOSWKBReader_setFixStructure_r(
1812  GEOSContextHandle_t handle,
1813  GEOSWKBReader *reader,
1814  char doFix);
1815 
1817 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(
1818  GEOSContextHandle_t handle,
1819  GEOSWKBReader* reader,
1820  const unsigned char *wkb,
1821  size_t size);
1822 
1824 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
1825  GEOSContextHandle_t handle,
1826  GEOSWKBReader* reader,
1827  const unsigned char *hex,
1828  size_t size);
1829 
1830 
1831 /* ========== WKB Writer ========== */
1832 
1834 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
1835  GEOSContextHandle_t handle);
1836 
1838 extern void GEOS_DLL GEOSWKBWriter_destroy_r(
1839  GEOSContextHandle_t handle,
1840  GEOSWKBWriter* writer);
1841 
1843 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1844  GEOSContextHandle_t handle,
1845  GEOSWKBWriter* writer,
1846  const GEOSGeometry* g,
1847  size_t *size);
1848 
1850 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1851  GEOSContextHandle_t handle,
1852  GEOSWKBWriter* writer,
1853  const GEOSGeometry* g,
1854  size_t *size);
1855 
1857 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
1858  GEOSContextHandle_t handle,
1859  const GEOSWKBWriter* writer);
1860 
1862 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
1863  GEOSContextHandle_t handle,
1864  GEOSWKBWriter* writer, int newDimension);
1865 
1867 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(
1868  GEOSContextHandle_t handle,
1869  const GEOSWKBWriter* writer);
1870 
1872 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
1873  GEOSContextHandle_t handle,
1874  GEOSWKBWriter* writer,
1875  int byteOrder);
1876 
1878 extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
1879  GEOSContextHandle_t handle,
1880  const GEOSWKBWriter* writer);
1881 
1883 extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
1884  GEOSContextHandle_t handle,
1885  GEOSWKBWriter* writer,
1886  int flavor);
1887 
1889 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(
1890  GEOSContextHandle_t handle,
1891  const GEOSWKBWriter* writer);
1892 
1894 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(
1895  GEOSContextHandle_t handle,
1896  GEOSWKBWriter* writer, const char writeSRID);
1897 
1898 /* ========== GeoJSON Reader ========== */
1899 
1902  GEOSContextHandle_t handle);
1903 
1905 extern void GEOS_DLL GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle,
1906  GEOSGeoJSONReader* reader);
1907 
1910  GEOSContextHandle_t handle,
1911  GEOSGeoJSONReader* reader,
1912  const char *geojson);
1913 
1914 /* ========== GeoJSON Writer ========== */
1915 
1918  GEOSContextHandle_t handle);
1919 
1921 extern void GEOS_DLL GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle,
1922  GEOSGeoJSONWriter* writer);
1923 
1925 extern char GEOS_DLL *GEOSGeoJSONWriter_writeGeometry_r(
1926  GEOSContextHandle_t handle,
1927  GEOSGeoJSONWriter* writer,
1928  const GEOSGeometry* g,
1929  int indent);
1930 
1932 extern void GEOS_DLL GEOSFree_r(
1933  GEOSContextHandle_t handle,
1934  void *buffer);
1935 
1942 extern const char GEOS_DLL *GEOSversion(void);
1943 
1944 /*
1945 * External code to GEOS can define GEOS_USE_ONLY_R_API
1946 * to strip the non-reentrant API functions from this header,
1947 * leaving only the "_r" compatible variants.
1948 */
1949 #ifndef GEOS_USE_ONLY_R_API
1950 
1951 /* ========== Initialization, cleanup ================================= */
1956 
1969 extern void GEOS_DLL initGEOS(
1970  GEOSMessageHandler notice_function,
1971  GEOSMessageHandler error_function);
1972 
1977 extern void GEOS_DLL finishGEOS(void);
1978 
1985 extern void GEOS_DLL GEOSFree(void *buffer);
1986 
1988 
1989 /* ========= Coordinate Sequence functions ========= */
1994 
2002 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
2003 
2012 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
2013 
2023 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
2024 
2033 extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
2034 
2044 extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
2045 
2051 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(const GEOSCoordSequence* s);
2052 
2057 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
2058 
2066 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
2067  unsigned int idx, double val);
2075 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
2076  unsigned int idx, double val);
2084 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
2085  unsigned int idx, double val);
2094 extern int GEOS_DLL GEOSCoordSeq_setXY(GEOSCoordSequence* s,
2095  unsigned int idx, double x, double y);
2105 extern int GEOS_DLL GEOSCoordSeq_setXYZ(GEOSCoordSequence* s,
2106  unsigned int idx, double x, double y, double z);
2115 extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
2116  unsigned int idx, unsigned int dim, double val);
2117 
2125 extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2126  unsigned int idx, double *val);
2127 
2135 extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2136  unsigned int idx, double *val);
2144 extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2145  unsigned int idx, double *val);
2154 extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2155  unsigned int idx, double *x, double *y);
2165 extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2166  unsigned int idx, double *x, double *y, double *z);
2175 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2176  unsigned int idx, unsigned int dim, double *val);
2177 
2184 extern int GEOS_DLL GEOSCoordSeq_getSize(
2185  const GEOSCoordSequence* s,
2186  unsigned int *size);
2187 
2194 extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2195  const GEOSCoordSequence* s,
2196  unsigned int *dims);
2197 
2206 extern int GEOS_DLL GEOSCoordSeq_isCCW(
2207  const GEOSCoordSequence* s,
2208  char* is_ccw);
2209 
2211 
2212 /* ========= Geometry Constructors ========= */
2217 
2226 
2234 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
2235 
2241 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint(void);
2242 
2250 
2258 
2264 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString(void);
2265 
2271 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon(void);
2272 
2285 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(
2286  GEOSGeometry* shell,
2287  GEOSGeometry** holes,
2288  unsigned int nholes);
2289 
2302 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(
2303  int type,
2304  GEOSGeometry** geoms,
2305  unsigned int ngeoms);
2306 
2313 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection(int type);
2314 
2323 extern GEOSGeometry GEOS_DLL *GEOSGeom_createRectangle(
2324  double xmin, double ymin,
2325  double xmax, double ymax);
2326 
2333 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
2334 
2339 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
2340 
2342 
2343 /* ========== Geometry info ========== */
2347 
2357 extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
2358 
2364 extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
2365 
2371 extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
2372 
2381 extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
2382 
2392 extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
2393 
2408 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
2409  const GEOSGeometry* g,
2410  int n);
2411 
2419 extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
2420 
2427 extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
2428 
2435 extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
2436 
2444 extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
2445 
2453 extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
2454 
2462 extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
2463 
2472 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
2473  const GEOSGeometry* g,
2474  int n);
2475 
2483 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
2484  const GEOSGeometry* g);
2485 
2492 extern int GEOS_DLL GEOSGetNumCoordinates(
2493  const GEOSGeometry* g);
2494 
2503 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
2504  const GEOSGeometry* g);
2505 
2517 extern int GEOS_DLL GEOSGeom_getDimensions(
2518  const GEOSGeometry* g);
2519 
2529 extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
2530  const GEOSGeometry* g);
2531 
2538 extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
2539 
2546 extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
2547 
2554 extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
2555 
2562 extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
2563 
2575 extern int GEOS_DLL GEOSGeom_getExtent(
2576  const GEOSGeometry* g,
2577  double* xmin,
2578  double* ymin,
2579  double* xmax,
2580  double* ymax);
2581 
2590 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
2591 
2599 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(const GEOSGeometry *g);
2600 
2608 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(const GEOSGeometry *g);
2609 
2610 
2618 extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
2619 
2627 extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
2628 
2634 extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
2635 
2643 extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
2644 
2646 
2647 /* ==================================================================================== */
2651 
2658 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
2659 
2666 extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
2667 
2686 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
2687 
2689 
2690 /* ========== Validity checking ============================================================ */
2695 
2703 extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
2704 
2717 extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
2718 
2726 extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
2727 
2740 extern char GEOS_DLL GEOSisValidDetail(
2741  const GEOSGeometry* g,
2742  int flags,
2743  char** reason,
2744  GEOSGeometry** location);
2745 
2751 extern GEOSGeometry GEOS_DLL *GEOSMakeValid(
2752  const GEOSGeometry* g);
2753 
2765 extern GEOSGeometry GEOS_DLL *GEOSMakeValidWithParams(
2766  const GEOSGeometry* g,
2767  const GEOSMakeValidParams *makeValidParams);
2768 
2775 extern GEOSMakeValidParams GEOS_DLL *GEOSMakeValidParams_create(void);
2776 
2782 extern void GEOS_DLL GEOSMakeValidParams_destroy(GEOSMakeValidParams* parms);
2783 
2790 extern int GEOS_DLL GEOSMakeValidParams_setMethod(
2792  enum GEOSMakeValidMethods method);
2793 
2802 extern int GEOS_DLL GEOSMakeValidParams_setKeepCollapsed(
2804  int keepCollapsed);
2805 
2823 extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
2824 
2834 extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(const GEOSGeometry* g);
2835 
2851 extern GEOSGeometry GEOS_DLL *GEOSRemoveRepeatedPoints(
2852  const GEOSGeometry* g,
2853  double tolerance);
2854 
2856 
2857 /* ========= Metric functions ================================================== */
2861 
2869 extern int GEOS_DLL GEOSArea(
2870  const GEOSGeometry* g,
2871  double *area);
2872 
2879 extern int GEOS_DLL GEOSLength(
2880  const GEOSGeometry* g,
2881  double *length);
2882 
2891 extern int GEOS_DLL GEOSGeomGetLength(
2892  const GEOSGeometry *g,
2893  double *length);
2894 
2896 
2897 /* ========== Distance functions ================================================ */
2902 
2911 extern int GEOS_DLL GEOSDistance(
2912  const GEOSGeometry* g1,
2913  const GEOSGeometry* g2,
2914  double *dist);
2915 
2924 extern char GEOS_DLL GEOSDistanceWithin(
2925  const GEOSGeometry* g1,
2926  const GEOSGeometry* g2,
2927  double dist);
2928 
2940 extern int GEOS_DLL GEOSDistanceIndexed(
2941  const GEOSGeometry* g1,
2942  const GEOSGeometry* g2,
2943  double *dist);
2944 
2954 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
2955  const GEOSGeometry* g1,
2956  const GEOSGeometry* g2);
2957 
2968 extern int GEOS_DLL GEOSHausdorffDistance(
2969  const GEOSGeometry *g1,
2970  const GEOSGeometry *g2,
2971  double *dist);
2972 
2986 extern int GEOS_DLL GEOSHausdorffDistanceDensify(
2987  const GEOSGeometry *g1,
2988  const GEOSGeometry *g2,
2989  double densifyFrac,
2990  double *dist);
2991 
3003 extern int GEOS_DLL GEOSFrechetDistance(
3004  const GEOSGeometry *g1,
3005  const GEOSGeometry *g2,
3006  double *dist);
3007 
3022 extern int GEOS_DLL GEOSFrechetDistanceDensify(
3023  const GEOSGeometry *g1,
3024  const GEOSGeometry *g2,
3025  double densifyFrac,
3026  double *dist);
3027 
3029 
3030 /* ========== Linear referencing functions */
3035 
3045 extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
3046  const GEOSGeometry* point);
3047 
3058 extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
3059  double d);
3060 
3070 extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
3071  const GEOSGeometry* point);
3072 
3081 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
3082  const GEOSGeometry *line,
3083  double proportion);
3084 
3086 
3087 /* ========== Overlay functions ========== */
3092 
3103 extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
3104 
3117 extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
3118 
3128 extern GEOSGeometry GEOS_DLL *GEOSDifference(
3129  const GEOSGeometry* ga,
3130  const GEOSGeometry* gb);
3131 
3145 extern GEOSGeometry GEOS_DLL *GEOSDifferencePrec(
3146  const GEOSGeometry* ga,
3147  const GEOSGeometry* gb,
3148  double gridSize);
3149 
3160 extern GEOSGeometry GEOS_DLL *GEOSSymDifference(
3161  const GEOSGeometry* ga,
3162  const GEOSGeometry* gb);
3163 
3178 extern GEOSGeometry GEOS_DLL *GEOSSymDifferencePrec(
3179  const GEOSGeometry* ga,
3180  const GEOSGeometry* gb,
3181  double gridSize);
3182 
3192 extern GEOSGeometry GEOS_DLL *GEOSUnion(
3193  const GEOSGeometry* ga,
3194  const GEOSGeometry* gb);
3195 
3209 extern GEOSGeometry GEOS_DLL *GEOSUnionPrec(
3210  const GEOSGeometry* ga,
3211  const GEOSGeometry* gb,
3212  double gridSize);
3213 
3223 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
3224 
3238 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnionPrec(
3239  const GEOSGeometry* g,
3240  double gridSize);
3241 
3250 extern GEOSGeometry GEOS_DLL *GEOSCoverageUnion(const GEOSGeometry *g);
3251 
3265 extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
3266  const GEOSGeometry* g,
3267  double xmin, double ymin,
3268  double xmax, double ymax);
3269 
3286 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
3287  const GEOSGeometry* g1,
3288  const GEOSGeometry* g2);
3289 
3291 
3292 /* ========== Buffer related functions ========== */
3296 
3308 extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
3309  double width, int quadsegs);
3310 
3317 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create(void);
3318 
3323 extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
3324 
3330 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle(
3331  GEOSBufferParams* p,
3332  int style);
3333 
3339 extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
3340  GEOSBufferParams* p,
3341  int joinStyle);
3342 
3352 extern int GEOS_DLL GEOSBufferParams_setMitreLimit(
3353  GEOSBufferParams* p,
3354  double mitreLimit);
3355 
3364 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments(
3365  GEOSBufferParams* p,
3366  int quadSegs);
3367 
3376 extern int GEOS_DLL GEOSBufferParams_setSingleSided(
3377  GEOSBufferParams* p,
3378  int singleSided);
3379 
3388 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
3389  const GEOSGeometry* g,
3390  const GEOSBufferParams* p,
3391  double width);
3392 
3404 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
3405  const GEOSGeometry* g,
3406  double width,
3407  int quadsegs,
3408  int endCapStyle,
3409  int joinStyle,
3410  double mitreLimit);
3411 
3432 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(const GEOSGeometry* g,
3433  double width, int quadsegs, int joinStyle, double mitreLimit);
3434 
3436 
3437 /* ========== Construction Operations ========== */
3441 
3449 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
3450 
3463 extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
3464 
3473 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
3474 
3495 extern GEOSGeometry GEOS_DLL *GEOSConcaveHull(
3496  const GEOSGeometry* g,
3497  double ratio,
3498  unsigned int allowHoles);
3499 
3500 
3518 extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify(
3519  const GEOSGeometry* g,
3520  unsigned int isOuter,
3521  double vertexNumFraction);
3522 
3523 
3532 };
3533 
3551 extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplifyMode(
3552  const GEOSGeometry* g,
3553  unsigned int isOuter,
3554  unsigned int parameterMode,
3555  double parameter);
3556 
3590 extern GEOSGeometry GEOS_DLL *GEOSConcaveHullOfPolygons(
3591  const GEOSGeometry* g,
3592  double lengthRatio,
3593  unsigned int isTight,
3594  unsigned int isHolesAllowed);
3595 
3607 extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(const GEOSGeometry* g);
3608 
3631 extern GEOSGeometry GEOS_DLL *GEOSMaximumInscribedCircle(
3632  const GEOSGeometry* g,
3633  double tolerance);
3634 
3657 extern GEOSGeometry GEOS_DLL *GEOSLargestEmptyCircle(
3658  const GEOSGeometry* obstacles,
3659  const GEOSGeometry* boundary,
3660  double tolerance);
3661 
3673 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
3674 
3675 
3683 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(const GEOSGeometry* g);
3684 
3692 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
3693 
3704 extern GEOSGeometry GEOS_DLL *GEOSMinimumBoundingCircle(
3705  const GEOSGeometry* g,
3706  double* radius,
3707  GEOSGeometry** center);
3708 
3720 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
3721  const GEOSGeometry *g,
3722  double tolerance,
3723  int onlyEdges);
3724 
3735  const GEOSGeometry *g);
3736 
3751 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
3752  const GEOSGeometry *g,
3753  const GEOSGeometry *env,
3754  double tolerance,
3755  int onlyEdges);
3756 
3758 
3759 /* ============================================================== */
3763 
3773 extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
3774 
3815 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
3816  const GEOSGeometry * const geoms[],
3817  unsigned int ngeoms);
3818 
3829 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_valid(
3830  const GEOSGeometry * const geoms[],
3831  unsigned int ngeoms);
3832 
3844 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
3845  const GEOSGeometry * const geoms[],
3846  unsigned int ngeoms);
3847 
3860 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full(
3861  const GEOSGeometry* input,
3862  GEOSGeometry** cuts,
3863  GEOSGeometry** dangles,
3864  GEOSGeometry** invalid);
3865 
3875 extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
3876 
3878 
3879 /* ============================================================== */
3883 
3896 extern GEOSGeometry GEOS_DLL *GEOSDensify(
3897  const GEOSGeometry* g,
3898  double tolerance);
3899 
3908 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
3909 
3919 extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected(const GEOSGeometry* g);
3920 
3929 extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
3930 
3943 extern GEOSGeometry GEOS_DLL *GEOSSimplify(
3944  const GEOSGeometry* g,
3945  double tolerance);
3946 
3962  const GEOSGeometry* g,
3963  double tolerance);
3964 
3974  const GEOSGeometry* g);
3975 
3989 extern int GEOS_DLL GEOSHilbertCode(
3990  const GEOSGeometry *geom,
3991  const GEOSGeometry* extent,
3992  unsigned int level,
3993  unsigned int *code
3994 );
3995 
4008 extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXY(
4009  const GEOSGeometry* g,
4010  GEOSTransformXYCallback callback,
4011  void* userdata);
4012 
4021 extern GEOSGeometry GEOS_DLL *GEOSSnap(
4022  const GEOSGeometry* input,
4023  const GEOSGeometry* snap_target,
4024  double tolerance);
4025 
4053 extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
4054  const GEOSGeometry *g,
4055  double gridSize,
4056  int flags);
4057 
4059 
4060 /* ============================================================== */
4064 
4073 extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
4074 
4083 extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
4084 
4092 extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
4093 
4102 extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
4103 
4112 extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
4113 
4121 extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
4122 
4131 extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
4132 
4140 extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
4141 
4150 extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
4151 
4160 extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
4161 
4176 extern char GEOS_DLL GEOSEqualsExact(
4177  const GEOSGeometry* g1,
4178  const GEOSGeometry* g2,
4179  double tolerance);
4180 
4193 extern char GEOS_DLL GEOSRelatePattern(
4194  const GEOSGeometry* g1,
4195  const GEOSGeometry* g2,
4196  const char *pat);
4197 
4206 extern char GEOS_DLL *GEOSRelate(
4207  const GEOSGeometry* g1,
4208  const GEOSGeometry* g2);
4209 
4217 extern char GEOS_DLL GEOSRelatePatternMatch(
4218  const char *mat,
4219  const char *pat);
4220 
4232 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
4233  const GEOSGeometry* g1,
4234  const GEOSGeometry* g2,
4235  int bnr);
4236 
4238 
4239 /* ========== Prepared Geometry Binary predicates ========== */
4240 
4251 
4264 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
4265 
4272 extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
4273 
4282 extern char GEOS_DLL GEOSPreparedContains(
4283  const GEOSPreparedGeometry* pg1,
4284  const GEOSGeometry* g2);
4285 
4294 extern char GEOS_DLL GEOSPreparedContainsProperly(
4295  const GEOSPreparedGeometry* pg1,
4296  const GEOSGeometry* g2);
4297 
4306 extern char GEOS_DLL GEOSPreparedCoveredBy(
4307  const GEOSPreparedGeometry* pg1,
4308  const GEOSGeometry* g2);
4309 
4318 extern char GEOS_DLL GEOSPreparedCovers(
4319  const GEOSPreparedGeometry* pg1,
4320  const GEOSGeometry* g2);
4321 
4330 extern char GEOS_DLL GEOSPreparedCrosses(
4331  const GEOSPreparedGeometry* pg1,
4332  const GEOSGeometry* g2);
4333 
4342 extern char GEOS_DLL GEOSPreparedDisjoint(
4343  const GEOSPreparedGeometry* pg1,
4344  const GEOSGeometry* g2);
4345 
4354 extern char GEOS_DLL GEOSPreparedIntersects(
4355  const GEOSPreparedGeometry* pg1,
4356  const GEOSGeometry* g2);
4357 
4366 extern char GEOS_DLL GEOSPreparedOverlaps(
4367  const GEOSPreparedGeometry* pg1,
4368  const GEOSGeometry* g2);
4369 
4378 extern char GEOS_DLL GEOSPreparedTouches(
4379  const GEOSPreparedGeometry* pg1,
4380  const GEOSGeometry* g2);
4381 
4390 extern char GEOS_DLL GEOSPreparedWithin(
4391  const GEOSPreparedGeometry* pg1,
4392  const GEOSGeometry* g2);
4393 
4405  const GEOSPreparedGeometry* pg1,
4406  const GEOSGeometry* g2);
4407 
4419 extern int GEOS_DLL GEOSPreparedDistance(
4420  const GEOSPreparedGeometry* pg1,
4421  const GEOSGeometry* g2,
4422  double *dist);
4423 
4436 extern char GEOS_DLL GEOSPreparedDistanceWithin(
4437  const GEOSPreparedGeometry* pg1,
4438  const GEOSGeometry* g2,
4439  double dist);
4440 
4442 
4443 /* ========== STRtree functions ========== */
4448 
4460 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
4461 
4472 extern void GEOS_DLL GEOSSTRtree_insert(
4473  GEOSSTRtree *tree,
4474  const GEOSGeometry *g,
4475  void *item);
4476 
4487 extern void GEOS_DLL GEOSSTRtree_query(
4488  GEOSSTRtree *tree,
4489  const GEOSGeometry *g,
4490  GEOSQueryCallback callback,
4491  void *userdata);
4492 
4503 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
4504  GEOSSTRtree *tree,
4505  const GEOSGeometry* geom);
4506 
4523 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
4524  GEOSSTRtree *tree,
4525  const void* item,
4526  const GEOSGeometry* itemEnvelope,
4527  GEOSDistanceCallback distancefn,
4528  void* userdata);
4529 
4537 extern void GEOS_DLL GEOSSTRtree_iterate(
4538  GEOSSTRtree *tree,
4539  GEOSQueryCallback callback,
4540  void *userdata);
4541 
4552 extern char GEOS_DLL GEOSSTRtree_remove(
4553  GEOSSTRtree *tree,
4554  const GEOSGeometry *g,
4555  void *item);
4556 
4563 extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
4564 
4566 
4567 /* ========== Algorithms ====================================================== */
4571 
4589 extern int GEOS_DLL GEOSSegmentIntersection(
4590  double ax0, double ay0,
4591  double ax1, double ay1,
4592  double bx0, double by0,
4593  double bx1, double by1,
4594  double* cx, double* cy);
4595 
4609 extern int GEOS_DLL GEOSOrientationIndex(
4610  double Ax, double Ay,
4611  double Bx, double By,
4612  double Px, double Py);
4613 
4615 
4616 /* ========= Reader and Writer APIs ========= */
4617 
4621 /* ========= WKT Reader ========= */
4623 
4628 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create(void);
4629 
4634 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
4635 
4643 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(
4644  GEOSWKTReader* reader,
4645  const char *wkt);
4646 
4653 extern void GEOS_DLL GEOSWKTReader_setFixStructure(
4654  GEOSWKTReader *reader,
4655  char doFix);
4656 
4657 /* ========= WKT Writer ========= */
4658 
4663 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create(void);
4664 
4669 extern void GEOS_DLL GEOSWKTWriter_destroy(
4670  GEOSWKTWriter* writer);
4671 
4680 extern char GEOS_DLL *GEOSWKTWriter_write(
4681  GEOSWKTWriter* writer,
4682  const GEOSGeometry* g);
4683 
4692 extern void GEOS_DLL GEOSWKTWriter_setTrim(
4693  GEOSWKTWriter *writer,
4694  char trim);
4695 
4702 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision(
4703  GEOSWKTWriter *writer,
4704  int precision);
4705 
4712 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension(
4713  GEOSWKTWriter *writer,
4714  int dim);
4715 
4721 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer);
4722 
4730 extern void GEOS_DLL GEOSWKTWriter_setOld3D(
4731  GEOSWKTWriter *writer,
4732  int useOld3D);
4734 
4735 /* ============================================================================== */
4739 
4741 /* ========== WKB Reader ========== */
4746 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create(void);
4747 
4752 extern void GEOS_DLL GEOSWKBReader_destroy(
4753  GEOSWKBReader* reader);
4754 
4761 extern void GEOS_DLL GEOSWKBReader_setFixStructure(
4762  GEOSWKBReader *reader,
4763  char doFix);
4764 
4772 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(
4773  GEOSWKBReader* reader,
4774  const unsigned char *wkb,
4775  size_t size);
4776 
4784 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(
4785  GEOSWKBReader* reader,
4786  const unsigned char *hex,
4787  size_t size);
4788 
4789 /* ========== WKB Writer ========== */
4790 
4795 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create(void);
4796 
4801 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
4802 
4811 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
4812  GEOSWKBWriter* writer,
4813  const GEOSGeometry* g,
4814  size_t *size);
4815 
4824 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
4825  GEOSWKBWriter* writer,
4826  const GEOSGeometry* g,
4827  size_t *size);
4828 
4836 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(
4837  const GEOSWKBWriter* writer);
4838 
4845 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(
4846  GEOSWKBWriter* writer,
4847  int newDimension);
4848 
4857 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
4858  const GEOSWKBWriter* writer);
4859 
4866 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
4867  GEOSWKBWriter* writer,
4868  int byteOrder);
4869 
4882 extern int GEOS_DLL GEOSWKBWriter_getFlavor(
4883  const GEOSWKBWriter* writer);
4884 
4891 extern void GEOS_DLL GEOSWKBWriter_setFlavor(
4892  GEOSWKBWriter* writer,
4893  int flavor);
4894 
4899 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
4900  const GEOSWKBWriter* writer);
4901 
4908 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
4909  GEOSWKBWriter* writer,
4910  const char writeSRID);
4911 
4913 
4914 /* ============================================================================= */
4918 /* ========= GeoJSON Reader ========= */
4920 
4925 extern GEOSGeoJSONReader GEOS_DLL *GEOSGeoJSONReader_create(void);
4926 
4931 extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
4932 
4942  GEOSGeoJSONReader* reader,
4943  const char *geojson);
4944 
4945 /* ========= GeoJSON Writer ========= */
4946 
4951 extern GEOSGeoJSONWriter GEOS_DLL *GEOSGeoJSONWriter_create(void);
4952 
4957 extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
4958 
4967 extern char GEOS_DLL *GEOSGeoJSONWriter_writeGeometry(
4968  GEOSGeoJSONWriter* writer,
4969  const GEOSGeometry* g,
4970  int indent);
4971 
4973 
4974 #endif /* #ifndef GEOS_USE_ONLY_R_API */
4975 
4976 /* ====================================================================== */
4977 /* DEPRECATIONS */
4978 /* ====================================================================== */
4979 
4984 
4989 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer(
4990  const GEOSGeometry* g,
4991  double width, int quadsegs,
4992  int joinStyle, double mitreLimit,
4993  int leftSide);
4994 
4998 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer_r(
4999  GEOSContextHandle_t handle,
5000  const GEOSGeometry* g,
5001  double width, int quadsegs,
5002  int joinStyle, double mitreLimit,
5003  int leftSide);
5004 
5009 extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
5010  GEOSMessageHandler notice_function,
5011  GEOSMessageHandler error_function);
5012 
5016 extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
5017 
5021 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT_r(
5022  GEOSContextHandle_t handle,
5023  const char *wkt);
5024 
5028 extern char GEOS_DLL *GEOSGeomToWKT_r(
5029  GEOSContextHandle_t handle,
5030  const GEOSGeometry* g);
5031 
5035 extern int GEOS_DLL GEOS_getWKBOutputDims_r(
5036  GEOSContextHandle_t handle);
5037 
5041 extern int GEOS_DLL GEOS_setWKBOutputDims_r(
5042  GEOSContextHandle_t handle,
5043  int newDims);
5044 
5048 extern int GEOS_DLL GEOS_getWKBByteOrder_r(
5049  GEOSContextHandle_t handle);
5050 
5054 extern int GEOS_DLL GEOS_setWKBByteOrder_r(
5055  GEOSContextHandle_t handle,
5056  int byteOrder);
5057 
5061 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf_r(
5062  GEOSContextHandle_t handle,
5063  const unsigned char *wkb,
5064  size_t size);
5065 
5069 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
5070  GEOSContextHandle_t handle,
5071  const GEOSGeometry* g,
5072  size_t *size);
5073 
5077 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf_r(
5078  GEOSContextHandle_t handle,
5079  const unsigned char *hex,
5080  size_t size);
5081 
5085 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
5086  GEOSContextHandle_t handle,
5087  const GEOSGeometry* g,
5088  size_t *size);
5089 
5093 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
5094 
5098 extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
5099 
5103 extern int GEOS_DLL GEOS_getWKBOutputDims(void);
5104 
5108 extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
5109 
5113 extern int GEOS_DLL GEOS_getWKBByteOrder(void);
5114 
5118 extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
5119 
5123 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
5124 
5128 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
5129 
5133 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
5134 
5138 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
5139 
5143 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(const GEOSGeometry* g);
5144 
5148 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(
5149  GEOSContextHandle_t handle,
5150  const GEOSGeometry* g);
5151 
5153 
5154 /* ====================================================================== */
5155 /* END DEPRECATIONS */
5156 /* ====================================================================== */
5157 
5158 
5159 #ifdef __cplusplus
5160 } // extern "C"
5161 #endif
5162 
5163 #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)
GEOS_MAKE_VALID_LINEWORK
@ GEOS_MAKE_VALID_LINEWORK
Definition: geos_c.h:1353
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:1713
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:1358
GEOSMakeValidParams_setMethod
int GEOSMakeValidParams_setMethod(GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
GEOSVoronoiDiagram_r
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int onlyEdges)
GEOSGeom_setPrecision_r
GEOSGeometry * GEOSGeom_setPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
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)
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)
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)
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)
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)
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:3531
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:1720
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:581
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:1456
GEOSBUF_JOIN_ROUND
@ GEOSBUF_JOIN_ROUND
Definition: geos_c.h:596
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)
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)
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:575
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)
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:106
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:1321
GEOSHausdorffDistance
int GEOSHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry
struct GEOSGeom_t GEOSGeometry
Definition: geos_c.h:140
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:1727
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)
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)
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)
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:1280
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:1458
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)
GEOSMaximumInscribedCircle
GEOSGeometry * GEOSMaximumInscribedCircle(const GEOSGeometry *g, double tolerance)
GEOSWKTReader
struct GEOSWKTReader_t GEOSWKTReader
Definition: geos_c.h:1692
GEOSWKBReader_create_r
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
GEOSRELATE_BNR_ENDPOINT
@ GEOSRELATE_BNR_ENDPOINT
Definition: geos_c.h:1282
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)
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
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:1284
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:591
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:147
GEOSGeoJSONReader_readGeometry
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSUnaryUnionPrec_r
GEOSGeometry * GEOSUnaryUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
GEOSVoronoiDiagram
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int onlyEdges)
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:578
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:1706
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:1349
GEOS_setWKBByteOrder_r
int GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle, int byteOrder)
GEOS_PREC_VALID_OUTPUT
@ GEOS_PREC_VALID_OUTPUT
Definition: geos_c.h:1454
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)
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:1452
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:1278
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)
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)
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:3529
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)
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)
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)
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)
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)
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)
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:1286
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:118
GEOSPolygonHullParameterModes
GEOSPolygonHullParameterModes
Definition: geos_c.h:3527
GEOSWKTWriter
struct GEOSWKTWriter_t GEOSWKTWriter
Definition: geos_c.h:1699
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)
GEOSGeom_getCoordSeq
const GEOSCoordSequence * GEOSGeom_getCoordSeq(const GEOSGeometry *g)
GEOSLineMerge
GEOSGeometry * GEOSLineMerge(const GEOSGeometry *g)
GEOSValidFlags
GEOSValidFlags
Definition: geos_c.h:1318
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:601
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:584
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:1276
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)
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:606
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)
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)
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)