### ----------------------------------------------------
### -- GEOS
### -- Licenses: MIT
### -- Authors: Brian Duggan
### -- File: lib/GEOS/Native.rakumod
### ----------------------------------------------------
### -- Chunk 2 of 4
 GEOSGeometry, Pointer, uint32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSGeom_createEmptyCurvePolygon */
# extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCurvePolygon_r(
#     GEOSContextHandle_t handle);
sub GEOSGeom_createEmptyCurvePolygon_r(GEOSContextHandle) returns GEOSGeometry is native(GEOS) is export { * } 

# /* ========= Coverages ========= */
# 
# /** \see GEOSCoverageUnion */
# extern GEOSGeometry GEOS_DLL *
# GEOSCoverageUnion_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSCoverageUnion_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSCoverageIsValid */
# extern int GEOS_DLL
# GEOSCoverageIsValid_r(
#     GEOSContextHandle_t extHandle,
#     const GEOSGeometry* input,
#     double gapWidth,
#     GEOSGeometry** output);
sub GEOSCoverageIsValid_r(GEOSContextHandle, GEOSGeometry, num64, Pointer) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSCoverageSimplifyVW */
# extern GEOSGeometry GEOS_DLL *
# GEOSCoverageSimplifyVW_r(
#     GEOSContextHandle_t extHandle,
#     const GEOSGeometry* input,
#     double tolerance,
#     int preserveBoundary);
sub GEOSCoverageSimplifyVW_r(GEOSContextHandle, GEOSGeometry, num64, int32) returns GEOSGeometry is native(GEOS) is export { * } 

# /* ========= Topology Operations ========= */
# 
# /** \see GEOSEnvelope */
# extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSEnvelope_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSIntersection */
# extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSIntersection_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSIntersectionPrec */
# extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2,
#     double gridSize);
sub GEOSIntersectionPrec_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSConvexHull */
# extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSConvexHull_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSConcaveHull */
# extern GEOSGeometry GEOS_DLL *GEOSConcaveHull_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double ratio,
#     unsigned int allowHoles);
sub GEOSConcaveHull_r(GEOSContextHandle, GEOSGeometry, num64, int32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSConcaveHullByLength */
# extern GEOSGeometry GEOS_DLL *GEOSConcaveHullByLength_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double ratio,
#     unsigned int allowHoles);
sub GEOSConcaveHullByLength_r(GEOSContextHandle, GEOSGeometry, num64, int32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPolygonHullSimplify */
# extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     unsigned int isOuter,
#     double vertexNumFraction);
sub GEOSPolygonHullSimplify_r(GEOSContextHandle, GEOSGeometry, int32, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPolygonHullSimplifyMode */
# extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplifyMode_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     unsigned int isOuter,
#     unsigned int parameterMode,
#     double parameter);
sub GEOSPolygonHullSimplifyMode_r(GEOSContextHandle, GEOSGeometry, int32, int32, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSConcaveHullOfPolygons */
# extern GEOSGeometry GEOS_DLL *GEOSConcaveHullOfPolygons_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double lengthRatio,
#     unsigned int isTight,
#     unsigned int isHolesAllowed);
sub GEOSConcaveHullOfPolygons_r(GEOSContextHandle, GEOSGeometry, num64, int32, int32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSMinimumRotatedRectangle */
# extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSMinimumRotatedRectangle_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSMaximumInscribedCircle */
# extern GEOSGeometry GEOS_DLL *GEOSMaximumInscribedCircle_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double tolerance);
sub GEOSMaximumInscribedCircle_r(GEOSContextHandle, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSLargestEmptyCircle */
# extern GEOSGeometry GEOS_DLL *GEOSLargestEmptyCircle_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     const GEOSGeometry* boundary,
#     double tolerance);
sub GEOSLargestEmptyCircle_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSMinimumWidth */
# extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSMinimumWidth_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSMinimumClearanceLine */
# extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSMinimumClearanceLine_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSMinimumClearance */
# extern int GEOS_DLL GEOSMinimumClearance_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double* distance);
sub GEOSMinimumClearance_r(GEOSContextHandle, GEOSGeometry, num64) returns int32 is native(GEOS) is export { * }

# /** \see GEOSDifference */
# extern GEOSGeometry GEOS_DLL *GEOSDifference_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSDifference_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSDifferencePrec */
# extern GEOSGeometry GEOS_DLL *GEOSDifferencePrec_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2,
#     double gridSize);
sub GEOSDifferencePrec_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSymDifference */
# extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSSymDifference_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSymDifferencePrec */
# extern GEOSGeometry GEOS_DLL *GEOSSymDifferencePrec_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2,
#     double gridSize);
sub GEOSSymDifferencePrec_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSBoundary */
# extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSBoundary_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSUnion */
# extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSUnion_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * }

# /** \see GEOSUnionPrec */
# extern GEOSGeometry GEOS_DLL *GEOSUnionPrec_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2,
#     double gridSize);
sub GEOSUnionPrec_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSUnaryUnion */
# extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSUnaryUnion_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSUnaryUnionPrec */
# extern GEOSGeometry GEOS_DLL *GEOSUnaryUnionPrec_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double gridSize);
sub GEOSUnaryUnionPrec_r(GEOSContextHandle, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSDisjointSubsetUnion */
# extern GEOSGeometry GEOS_DLL *GEOSDisjointSubsetUnion_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSDisjointSubsetUnion_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPointOnSurface */
# extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSPointOnSurface_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSGetCentroid */
# extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSGetCentroid_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSMinimumBoundingCircle */
# extern GEOSGeometry GEOS_DLL *GEOSMinimumBoundingCircle_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double* radius,
#     GEOSGeometry** center);
sub GEOSMinimumBoundingCircle_r(GEOSContextHandle, GEOSGeometry, num64, Pointer) returns GEOSGeometry is native(GEOS) is export { * }
 
# /** \see GEOSNode */
# extern GEOSGeometry GEOS_DLL *GEOSNode_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSNode_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSClipByRect */
# extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double xmin, double ymin,
#     double xmax, double ymax);
sub GEOSClipByRect_r(GEOSContextHandle, GEOSGeometry, num64, num64, num64, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPolygonize */
# extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry *const geoms[],
#     unsigned int ngeoms);
sub GEOSPolygonize_r(GEOSContextHandle, Pointer, uint32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPolygonize_valid */
# extern GEOSGeometry GEOS_DLL *GEOSPolygonize_valid_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry *const geoms[],
#     unsigned int ngems);
sub GEOSPolygonize_valid_r(GEOSContextHandle, Pointer, uint32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPolygonizer_getCutEdges */
# extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry * const geoms[],
#     unsigned int ngeoms);
sub GEOSPolygonizer_getCutEdges_r(GEOSContextHandle, Pointer, uint32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSPolygonize_full */
# extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* input,
#     GEOSGeometry** cuts,
#     GEOSGeometry** dangles,
#     GEOSGeometry** invalidRings);
sub GEOSPolygonize_full_r(GEOSContextHandle, GEOSGeometry, Pointer, Pointer, Pointer) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSBuildArea */
# extern GEOSGeometry GEOS_DLL *GEOSBuildArea_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSBuildArea_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSLineMerge */
# extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSLineMerge_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSLineMergeDirected */
# extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSLineMergeDirected_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSLineSubstring */
# extern GEOSGeometry GEOS_DLL *GEOSLineSubstring_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double start_fraction,
#     double end_fdraction);
sub GEOSLineSubstring_r(GEOSContextHandle, GEOSGeometry, num64, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSReverse */
# extern GEOSGeometry GEOS_DLL *GEOSReverse_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSReverse_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSimplify */
# extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g,
#     double tolerance);
sub GEOSSimplify_r(GEOSContextHandle, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSTopologyPreserveSimplify */
# extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g, double tolerance);
sub GEOSTopologyPreserveSimplify_r(GEOSContextHandle, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSGeom_extractUniquePoints */
# extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSGeom_extractUniquePoints_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSharedPaths */
# extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSSharedPaths_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSnap */
# extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2,
#     double tolerance);
sub GEOSSnap_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSDelaunayTriangulation */
# extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry *g,
#     double tolerance,
#     int onlyEdges);
sub GEOSDelaunayTriangulation_r(GEOSContextHandle, GEOSGeometry, num64, int32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSConstrainedDelaunayTriangulation */
# extern GEOSGeometry GEOS_DLL * GEOSConstrainedDelaunayTriangulation_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry *g);
sub GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * }

# /** \see GEOSVoronoiDiagram */
# extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
#     GEOSContextHandle_t extHandle,
#     const GEOSGeometry *g,
#     const GEOSGeometry *env,
#     double tolerance,
#     int flags);
sub GEOSVoronoiDiagram_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64, int32) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSegmentIntersection */
# extern int GEOS_DLL 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);
sub GEOSSegmentIntersection_r(GEOSContextHandle, num64, num64, num64, num64, num64, num64, num64, num64, num64, num64) returns int32 is native(GEOS) is export { * } 

# /* ========= Binary predicates ========= */
# 
# /** \see GEOSDisjoint */
# extern char GEOS_DLL GEOSDisjoint_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSDisjoint_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSTouches */
# extern char GEOS_DLL GEOSTouches_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSTouches_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSIntersects */
# extern char GEOS_DLL GEOSIntersects_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSIntersects_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSCrosses */
# extern char GEOS_DLL GEOSCrosses_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSCrosses_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSWithin */
# extern char GEOS_DLL GEOSWithin_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSWithin_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSContains */
# extern char GEOS_DLL GEOSContains_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSContains_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * }
 
# /** \see GEOSOverlaps */
# extern char GEOS_DLL GEOSOverlaps_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSOverlaps_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSEquals */
# extern char GEOS_DLL GEOSEquals_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSEquals_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * }
 
# /** \see GEOSEqualsExact */
# extern char GEOS_DLL GEOSEqualsExact_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2,
#     double tolerance);
sub GEOSEqualsExact_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry, num64) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSEqualsIdentical */
# extern char GEOS_DLL GEOSEqualsIdentical_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSEqualsIdentical_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSCovers */
# extern char GEOS_DLL GEOSCovers_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSCovers_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSCoveredBy */
# extern char GEOS_DLL GEOSCoveredBy_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g1,
#     const GEOSGeometry* g2);
sub GEOSCoveredBy_r(GEOSContextHandle, GEOSGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /* ========= Prepared Geometry Binary Predicates ========== */
# 
# /** \see GEOSPrepare */
# extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
#     GEOSContextHandle_t handle,
#     const GEOSGeometry* g);
sub GEOSPrepare_r(GEOSContextHandle, GEOSGeometry) returns GEOSPreparedGeometry is native(GEOS) is export { * } 

# /** \see GEOSPreparedGeom_destroy */
# extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* g);
sub GEOSPreparedGeom_destroy_r(GEOSContextHandle, GEOSPreparedGeometry) is native(GEOS) is export { * } 

# /** \see GEOSPreparedContains */
# extern char GEOS_DLL GEOSPreparedContains_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedContains_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedContainsXY */
# extern char GEOS_DLL GEOSPreparedContainsXY_r(
#         GEOSContextHandle_t handle,
#         const GEOSPreparedGeometry* pg1,
#         double x,
#         double y);
sub GEOSPreparedContainsXY_r(GEOSContextHandle, GEOSPreparedGeometry, num64, num64) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedContainsProperly */
# extern char GEOS_DLL GEOSPreparedContainsProperly_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedContainsProperly_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedCoveredBy */
# extern char GEOS_DLL GEOSPreparedCoveredBy_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedCoveredBy_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedCovers */
# extern char GEOS_DLL GEOSPreparedCovers_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedCovers_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedCrosses */
# extern char GEOS_DLL GEOSPreparedCrosses_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedCrosses_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedDisjoint */
# extern char GEOS_DLL GEOSPreparedDisjoint_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedDisjoint_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedIntersects */
# extern char GEOS_DLL GEOSPreparedIntersects_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedIntersects_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedIntersectsXY */
# extern char GEOS_DLL GEOSPreparedIntersectsXY_r(
#         GEOSContextHandle_t handle,
#         const GEOSPreparedGeometry* pg1,
#         double x,
#         double y);
sub GEOSPreparedIntersectsXY_r(GEOSContextHandle, GEOSPreparedGeometry, num64, num64) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedOverlaps */
# extern char GEOS_DLL GEOSPreparedOverlaps_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedOverlaps_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedTouches */
# extern char GEOS_DLL GEOSPreparedTouches_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedTouches_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedWithin */
# extern char GEOS_DLL GEOSPreparedWithin_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedWithin_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedRelate */
# extern char GEOS_DLL * GEOSPreparedRelate_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedRelate_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns Str is native(GEOS) is export { * } 

# /** \see GEOSPreparedRelatePattern */
# extern char GEOS_DLL GEOSPreparedRelatePattern_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2,
#     const char* im);
sub GEOSPreparedRelatePattern_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry, Str) returns int32 is native(GEOS) is export { * }

# /** \see GEOSPreparedNearestPoints */
# extern GEOSCoordSequence GEOS_DLL *GEOSPreparedNearestPoints_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2);
sub GEOSPreparedNearestPoints_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry) returns GEOSCoordSequence is native(GEOS) is export { * } 

# /** \see GEOSPreparedDistance */
# extern int GEOS_DLL GEOSPreparedDistance_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2, double *dist);
sub GEOSPreparedDistance_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry, num64) returns int32 is native(GEOS) is export { * } 

# /** \see GEOSPreparedDistanceWithin */
# extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
#     GEOSContextHandle_t handle,
#     const GEOSPreparedGeometry* pg1,
#     const GEOSGeometry* g2, double dist);
sub GEOSPreparedDistanceWithin_r(GEOSContextHandle, GEOSPreparedGeometry, GEOSGeometry, num64) returns int32 is native(GEOS) is export { * } 
# /* ========== STRtree ========== */
# 
# /** \see GEOSSTRtree_create */
# extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
#     GEOSContextHandle_t handle,
#     size_t nodeCapacity);
sub GEOSSTRtree_create_r(GEOSContextHandle, size_t) returns GEOSStrTree is native(GEOS) is export { * }
 
# /** \see GEOSSTRtree_build */
# extern int GEOS_DLL GEOSSTRtree_build_r(
#     GEOSContextHandle_t handle,
#     GEOSSTRtree *tree);
sub GEOSSTRtree_build_r(GEOSContextHandle, GEOSStrTree) returns int32 is native(GEOS) is export { * }

# /** \see GEOSSTRtree_insert */
# extern void GEOS_DLL GEOSSTRtree_insert_r(
#     GEOSContextHandle_t handle,
#     GEOSSTRtree *tree,
#     const GEOSGeometry *g,
#     void *item);
sub GEOSSTRtree_insert_r(GEOSContextHandle, GEOSStrTree, GEOSGeometry, Pointer) is native(GEOS) is export { * }

# /** \see GEOSSTRtree_query */
# extern void GEOS_DLL GEOSSTRtree_query_r(
#     GEOSContextHandle_t handle,
#     GEOSSTRtree *tree,
#     const GEOSGeometry *g,
#     GEOSQueryCallback callback,
#     void *userdata);
sub GEOSSTRtree_query_r(GEOSContextHandle, GEOSStrTree, GEOSGeometry, GEOSQueryCallback, Pointer) is native(GEOS) is export { * } 

# /** \see GEOSSTRtree_nearest */
# extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(
#     GEOSContextHandle_t handle,
#     GEOSSTRtree *tree,
#     const GEOSGeometry* geom);
sub GEOSSTRtree_nearest_r(GEOSContextHandle, GEOSStrTree, GEOSGeometry) returns GEOSGeometry is native(GEOS) is export { * } 

# /** \see GEOSSTRtree_nearest_generic */
# extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
#     GEOSContextHandle_t handle,
#     GEOSSTRtree *tree,
#     const void* item,
#     const GEOSGeometry* itemEnvelope,
#     GEOSDistanceCallback distancefn,
#     void* userdata);
sub GEOSSTRtree_nearest_generic_r(GEOSContextHandle, GEOSStrTree, Pointer, GEOSGeometry, GEOSDistanceCallback, Pointer) returns Pointer is native(GEOS) is export { * } 

# /** \see GEOSSTRtree_iterate */
# extern void GEOS_DLL GEOSSTRtree_iterate_r(
#     GEOSContextHandle_t handle,
#     GEOSSTRtree *tree,
#     GEOSQueryCallback callback,
#     void *userdata);
sub GEOSSTRtree_iterate_r(GEOSContextHandle, GEOSStrTree, GEOSQueryCallback, Pointer) is native(GEOS