@crossbind/port-geos-ios 2.0.0-beta.56 → 2.0.0-beta.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1005) hide show
  1. package/dist/prebuilt/ios-iphoneos-mt-release/bin/geos-config +2 -2
  2. package/dist/prebuilt/ios-iphoneos-mt-release/crossbind-source.fingerprint +1 -1
  3. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/Angle.h +28 -0
  4. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/CircularArcIntersector.h +146 -0
  5. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/CircularArcs.h +241 -2
  6. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/CurveToLineParams.h +76 -0
  7. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/Interpolate.h +17 -2
  8. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/LineIntersector.h +5 -1
  9. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/LineToCurveConverter.h +74 -0
  10. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/LineToCurveParams.h +79 -0
  11. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/PointLocator.h +10 -2
  12. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/RayCrossingCounter.h +1 -3
  13. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/distance/DiscreteHausdorffDistance.h +2 -2
  14. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/algorithm/distance/DistanceToPoint.h +2 -1
  15. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/CoverageCleaner.h +3 -3
  16. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/CoverageEdge.h +6 -6
  17. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/CoverageEdges.h +61 -0
  18. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/CoveragePolygonValidator.h +0 -1
  19. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/CoverageRing.h +1 -1
  20. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/CoverageSimplifier.h +17 -7
  21. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/coverage/TPVWSimplifier.h +10 -4
  22. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/dissolve/LineDissolver.h +3 -1
  23. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/edgegraph/HalfEdge.h +1 -1
  24. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/CircularArc.h +163 -133
  25. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/CircularString.h +30 -1
  26. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/CompoundCurve.h +23 -0
  27. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Coordinate.h +108 -0
  28. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/CoordinateSequence.h +122 -2
  29. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Curve.h +32 -0
  30. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/CurvePolygon.h +16 -1
  31. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Envelope.h +26 -0
  32. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Geometry.h +41 -3
  33. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/GeometryCollection.h +13 -0
  34. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/GeometryFactory.h +36 -1
  35. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/LineSegment.h +42 -0
  36. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/LineString.h +19 -0
  37. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/LinearRing.h +3 -0
  38. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/MultiCurve.h +13 -0
  39. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/MultiLineString.h +11 -0
  40. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/MultiPolygon.h +4 -1
  41. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/MultiSurface.h +12 -0
  42. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Point.h +4 -0
  43. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Polygon.h +11 -1
  44. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Quadrant.h +2 -2
  45. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/SimpleCurve.h +17 -26
  46. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/Surface.h +4 -0
  47. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/SurfaceImpl.h +3 -6
  48. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/util/CurveBuilder.h +89 -0
  49. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/util/GeometryTransformer.h +25 -0
  50. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/util/LinealExtracter.h +51 -0
  51. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/util/SimpleCurveExtracter.h +52 -0
  52. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geom/util/SurfaceExtracter.h +60 -0
  53. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/geomgraph/EdgeNodingValidator.h +2 -9
  54. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h +2 -1
  55. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/index/intervalrtree/IntervalRTreeNode.h +2 -1
  56. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/index/intervalrtree/SortedPackedIntervalRTree.h +2 -1
  57. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/index/kdtree/KdNode.h +5 -5
  58. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/index/kdtree/KdNodeVisitor.h +1 -0
  59. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/index/kdtree/KdTree.h +21 -21
  60. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/io/GeoJSONReader.h +1 -0
  61. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/io/WKBReader.h +12 -0
  62. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/io/WKTReader.h +2 -0
  63. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/linearref/LengthIndexedLine.h +4 -5
  64. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/linearref/LinearLocation.h +3 -1
  65. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/math/DD.h +3 -0
  66. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/ArcIntersectionAdder.h +44 -0
  67. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/ArcIntersector.h +44 -0
  68. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/ArcNoder.h +53 -0
  69. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/ArcString.h +72 -0
  70. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/BasicSegmentString.h +1 -1
  71. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/BoundaryChainNoder.h +21 -22
  72. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/DirectionIndependentArcString.h +52 -0
  73. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/FastNodingValidator.h +6 -3
  74. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/GeometryNoder.h +31 -10
  75. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/IteratedNoder.h +10 -6
  76. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/MCIndexNoder.h +5 -6
  77. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/NodableArcString.h +44 -0
  78. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/NodablePath.h +40 -0
  79. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/NodableSegmentString.h +1 -1
  80. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/NodedSegmentString.h +9 -14
  81. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/Noder.h +13 -9
  82. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/NodingValidator.h +8 -4
  83. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/Octant.h +4 -4
  84. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/PathString.h +76 -0
  85. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/ScaledNoder.h +4 -4
  86. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SegmentExtractingNoder.h +9 -7
  87. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SegmentNodeList.h +3 -3
  88. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SegmentPointComparator.h +2 -2
  89. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SegmentString.h +24 -38
  90. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SegmentStringUtil.h +2 -2
  91. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SimpleNoder.h +13 -18
  92. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/SinglePassNoder.h +0 -21
  93. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/ValidatingNoder.h +11 -4
  94. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/snap/SnappingNoder.h +9 -8
  95. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/snapround/MCIndexSnapRounder.h +8 -8
  96. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/noding/snapround/SnapRoundingNoder.h +5 -5
  97. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/BoundaryOp.h +6 -3
  98. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/buffer/BufferCurveSetBuilder.h +2 -2
  99. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/buffer/OffsetCurveBuilder.h +4 -5
  100. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/buffer/OffsetSegmentGenerator.h +4 -3
  101. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/distance/DistanceOp.h +32 -5
  102. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/distance/FacetSequence.h +25 -15
  103. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/distance/FacetSequenceTreeBuilder.h +14 -5
  104. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/distance/GeometryLocation.h +5 -5
  105. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/distance/IndexedFacetDistance.h +3 -6
  106. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/Cell.h +12 -4
  107. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/Grid.h +78 -21
  108. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/GridIntersection.h +16 -5
  109. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/PerimeterDistance.h +13 -2
  110. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/Side.h +23 -2
  111. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/Traversal.h +13 -4
  112. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/grid/TraversalAreas.h +4 -2
  113. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/linemerge/EdgeString.h +3 -3
  114. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/linemerge/LineMergeDirectedEdge.h +1 -1
  115. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/linemerge/LineMergeEdge.h +6 -6
  116. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/linemerge/LineMergeGraph.h +17 -8
  117. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/linemerge/LineMerger.h +6 -4
  118. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlay/snap/GeometrySnapper.h +4 -6
  119. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/Edge.h +26 -36
  120. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/EdgeKey.h +1 -1
  121. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/EdgeNodingBuilder.h +36 -24
  122. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/InputGeometry.h +2 -1
  123. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/LineBuilder.h +4 -4
  124. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/LineLimiter.h +13 -5
  125. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/OverlayEdge.h +16 -13
  126. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/OverlayEdgeRing.h +21 -16
  127. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/OverlayGraph.h +4 -5
  128. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/OverlayMixedPoints.h +12 -5
  129. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/OverlayUtil.h +10 -7
  130. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/PolygonBuilder.h +3 -3
  131. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/overlayng/RingClipper.h +5 -4
  132. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/polygonize/EdgeRing.h +26 -44
  133. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/polygonize/PolygonizeDirectedEdge.h +1 -1
  134. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/polygonize/PolygonizeEdge.h +4 -4
  135. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/polygonize/PolygonizeGraph.h +16 -7
  136. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/polygonize/Polygonizer.h +39 -27
  137. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/relateng/RelateGeometry.h +4 -5
  138. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/relateng/RelateSegmentString.h +8 -8
  139. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/spanning/SpanningTree.h +59 -0
  140. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/split/GeometrySplitter.h +64 -0
  141. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/split/SplitLinealAtPoint.h +90 -0
  142. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/union/CascadedPolygonUnion.h +33 -25
  143. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/union/UnaryUnionOp.h +12 -23
  144. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/valid/IsSimpleOp.h +2 -2
  145. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/valid/PolygonTopologyAnalyzer.h +0 -5
  146. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/operation/valid/RepeatedPointRemover.h +7 -0
  147. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/planargraph/DirectedEdge.h +13 -11
  148. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/planargraph/DirectedEdgeStar.h +6 -6
  149. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/planargraph/Edge.h +2 -1
  150. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/planargraph/Node.h +15 -34
  151. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/planargraph/NodeMap.h +3 -3
  152. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/planargraph/PlanarGraph.h +1 -1
  153. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/precision/GeometryPrecisionReducer.h +1 -3
  154. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/precision/PointwisePrecisionReducerTransformer.h +1 -1
  155. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/precision/PrecisionReducerTransformer.h +2 -2
  156. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/shape/GeometricShapeBuilder.h +83 -0
  157. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/shape/random/RandomPointsBuilder.h +65 -0
  158. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/simplify/DouglasPeuckerSimplifier.h +1 -1
  159. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/triangulate/polygon/PolygonHoleJoiner.h +3 -3
  160. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/triangulate/polygon/PolygonNoder.h +5 -5
  161. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/triangulate/quadedge/TrianglePredicate.h +1 -1
  162. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/util/Assert.h +7 -0
  163. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/util/Progress.h +84 -0
  164. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/util/TopologyException.h +6 -0
  165. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos/version.h +4 -4
  166. package/dist/prebuilt/ios-iphoneos-mt-release/include/geos_c.h +1181 -152
  167. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/GEOS/geos-config-version.cmake +1 -1
  168. package/dist/prebuilt/ios-iphoneos-mt-release/lib/cmake/GEOS/geos-targets.cmake +2 -2
  169. package/dist/prebuilt/ios-iphoneos-mt-release/lib/libgeos.a +0 -0
  170. package/dist/prebuilt/ios-iphoneos-mt-release/lib/libgeos_c.a +0 -0
  171. package/dist/prebuilt/ios-iphoneos-mt-release/lib/pkgconfig/geos.pc +1 -1
  172. package/dist/prebuilt/ios-iphonesimulator-mt-release/bin/geos-config +2 -2
  173. package/dist/prebuilt/ios-iphonesimulator-mt-release/crossbind-source.fingerprint +1 -1
  174. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/Angle.h +28 -0
  175. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/CircularArcIntersector.h +146 -0
  176. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/CircularArcs.h +241 -2
  177. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/CurveToLineParams.h +76 -0
  178. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/Interpolate.h +17 -2
  179. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/LineIntersector.h +5 -1
  180. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/LineToCurveConverter.h +74 -0
  181. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/LineToCurveParams.h +79 -0
  182. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/PointLocator.h +10 -2
  183. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/RayCrossingCounter.h +1 -3
  184. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/distance/DiscreteHausdorffDistance.h +2 -2
  185. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/algorithm/distance/DistanceToPoint.h +2 -1
  186. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/CoverageCleaner.h +3 -3
  187. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/CoverageEdge.h +6 -6
  188. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/CoverageEdges.h +61 -0
  189. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/CoveragePolygonValidator.h +0 -1
  190. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/CoverageRing.h +1 -1
  191. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/CoverageSimplifier.h +17 -7
  192. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/coverage/TPVWSimplifier.h +10 -4
  193. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/dissolve/LineDissolver.h +3 -1
  194. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/edgegraph/HalfEdge.h +1 -1
  195. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/CircularArc.h +163 -133
  196. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/CircularString.h +30 -1
  197. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/CompoundCurve.h +23 -0
  198. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Coordinate.h +108 -0
  199. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/CoordinateSequence.h +122 -2
  200. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Curve.h +32 -0
  201. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/CurvePolygon.h +16 -1
  202. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Envelope.h +26 -0
  203. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Geometry.h +41 -3
  204. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/GeometryCollection.h +13 -0
  205. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/GeometryFactory.h +36 -1
  206. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/LineSegment.h +42 -0
  207. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/LineString.h +19 -0
  208. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/LinearRing.h +3 -0
  209. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/MultiCurve.h +13 -0
  210. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/MultiLineString.h +11 -0
  211. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/MultiPolygon.h +4 -1
  212. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/MultiSurface.h +12 -0
  213. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Point.h +4 -0
  214. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Polygon.h +11 -1
  215. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Quadrant.h +2 -2
  216. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/SimpleCurve.h +17 -26
  217. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/Surface.h +4 -0
  218. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/SurfaceImpl.h +3 -6
  219. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/util/CurveBuilder.h +89 -0
  220. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/util/GeometryTransformer.h +25 -0
  221. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/util/LinealExtracter.h +51 -0
  222. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/util/SimpleCurveExtracter.h +52 -0
  223. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geom/util/SurfaceExtracter.h +60 -0
  224. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/geomgraph/EdgeNodingValidator.h +2 -9
  225. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h +2 -1
  226. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/index/intervalrtree/IntervalRTreeNode.h +2 -1
  227. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/index/intervalrtree/SortedPackedIntervalRTree.h +2 -1
  228. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/index/kdtree/KdNode.h +5 -5
  229. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/index/kdtree/KdNodeVisitor.h +1 -0
  230. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/index/kdtree/KdTree.h +21 -21
  231. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/io/GeoJSONReader.h +1 -0
  232. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/io/WKBReader.h +12 -0
  233. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/io/WKTReader.h +2 -0
  234. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/linearref/LengthIndexedLine.h +4 -5
  235. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/linearref/LinearLocation.h +3 -1
  236. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/math/DD.h +3 -0
  237. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/ArcIntersectionAdder.h +44 -0
  238. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/ArcIntersector.h +44 -0
  239. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/ArcNoder.h +53 -0
  240. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/ArcString.h +72 -0
  241. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/BasicSegmentString.h +1 -1
  242. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/BoundaryChainNoder.h +21 -22
  243. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/DirectionIndependentArcString.h +52 -0
  244. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/FastNodingValidator.h +6 -3
  245. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/GeometryNoder.h +31 -10
  246. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/IteratedNoder.h +10 -6
  247. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/MCIndexNoder.h +5 -6
  248. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/NodableArcString.h +44 -0
  249. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/NodablePath.h +40 -0
  250. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/NodableSegmentString.h +1 -1
  251. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/NodedSegmentString.h +9 -14
  252. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/Noder.h +13 -9
  253. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/NodingValidator.h +8 -4
  254. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/Octant.h +4 -4
  255. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/PathString.h +76 -0
  256. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/ScaledNoder.h +4 -4
  257. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SegmentExtractingNoder.h +9 -7
  258. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SegmentNodeList.h +3 -3
  259. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SegmentPointComparator.h +2 -2
  260. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SegmentString.h +24 -38
  261. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SegmentStringUtil.h +2 -2
  262. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SimpleNoder.h +13 -18
  263. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/SinglePassNoder.h +0 -21
  264. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/ValidatingNoder.h +11 -4
  265. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/snap/SnappingNoder.h +9 -8
  266. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/snapround/MCIndexSnapRounder.h +8 -8
  267. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/noding/snapround/SnapRoundingNoder.h +5 -5
  268. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/BoundaryOp.h +6 -3
  269. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/buffer/BufferCurveSetBuilder.h +2 -2
  270. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/buffer/OffsetCurveBuilder.h +4 -5
  271. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/buffer/OffsetSegmentGenerator.h +4 -3
  272. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/distance/DistanceOp.h +32 -5
  273. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/distance/FacetSequence.h +25 -15
  274. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/distance/FacetSequenceTreeBuilder.h +14 -5
  275. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/distance/GeometryLocation.h +5 -5
  276. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/distance/IndexedFacetDistance.h +3 -6
  277. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/Cell.h +12 -4
  278. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/Grid.h +78 -21
  279. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/GridIntersection.h +16 -5
  280. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/PerimeterDistance.h +13 -2
  281. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/Side.h +23 -2
  282. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/Traversal.h +13 -4
  283. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/grid/TraversalAreas.h +4 -2
  284. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/linemerge/EdgeString.h +3 -3
  285. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/linemerge/LineMergeDirectedEdge.h +1 -1
  286. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/linemerge/LineMergeEdge.h +6 -6
  287. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/linemerge/LineMergeGraph.h +17 -8
  288. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/linemerge/LineMerger.h +6 -4
  289. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlay/snap/GeometrySnapper.h +4 -6
  290. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/Edge.h +26 -36
  291. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/EdgeKey.h +1 -1
  292. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/EdgeNodingBuilder.h +36 -24
  293. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/InputGeometry.h +2 -1
  294. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/LineBuilder.h +4 -4
  295. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/LineLimiter.h +13 -5
  296. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/OverlayEdge.h +16 -13
  297. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/OverlayEdgeRing.h +21 -16
  298. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/OverlayGraph.h +4 -5
  299. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/OverlayMixedPoints.h +12 -5
  300. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/OverlayUtil.h +10 -7
  301. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/PolygonBuilder.h +3 -3
  302. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/overlayng/RingClipper.h +5 -4
  303. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/polygonize/EdgeRing.h +26 -44
  304. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/polygonize/PolygonizeDirectedEdge.h +1 -1
  305. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/polygonize/PolygonizeEdge.h +4 -4
  306. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/polygonize/PolygonizeGraph.h +16 -7
  307. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/polygonize/Polygonizer.h +39 -27
  308. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/relateng/RelateGeometry.h +4 -5
  309. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/relateng/RelateSegmentString.h +8 -8
  310. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/spanning/SpanningTree.h +59 -0
  311. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/split/GeometrySplitter.h +64 -0
  312. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/split/SplitLinealAtPoint.h +90 -0
  313. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/union/CascadedPolygonUnion.h +33 -25
  314. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/union/UnaryUnionOp.h +12 -23
  315. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/valid/IsSimpleOp.h +2 -2
  316. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/valid/PolygonTopologyAnalyzer.h +0 -5
  317. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/operation/valid/RepeatedPointRemover.h +7 -0
  318. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/planargraph/DirectedEdge.h +13 -11
  319. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/planargraph/DirectedEdgeStar.h +6 -6
  320. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/planargraph/Edge.h +2 -1
  321. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/planargraph/Node.h +15 -34
  322. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/planargraph/NodeMap.h +3 -3
  323. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/planargraph/PlanarGraph.h +1 -1
  324. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/precision/GeometryPrecisionReducer.h +1 -3
  325. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/precision/PointwisePrecisionReducerTransformer.h +1 -1
  326. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/precision/PrecisionReducerTransformer.h +2 -2
  327. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/shape/GeometricShapeBuilder.h +83 -0
  328. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/shape/random/RandomPointsBuilder.h +65 -0
  329. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/simplify/DouglasPeuckerSimplifier.h +1 -1
  330. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/triangulate/polygon/PolygonHoleJoiner.h +3 -3
  331. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/triangulate/polygon/PolygonNoder.h +5 -5
  332. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/triangulate/quadedge/TrianglePredicate.h +1 -1
  333. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/util/Assert.h +7 -0
  334. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/util/Progress.h +84 -0
  335. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/util/TopologyException.h +6 -0
  336. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos/version.h +4 -4
  337. package/dist/prebuilt/ios-iphonesimulator-mt-release/include/geos_c.h +1181 -152
  338. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/GEOS/geos-config-version.cmake +1 -1
  339. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/cmake/GEOS/geos-targets.cmake +2 -2
  340. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/libgeos.a +0 -0
  341. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/libgeos_c.a +0 -0
  342. package/dist/prebuilt/ios-iphonesimulator-mt-release/lib/pkgconfig/geos.pc +1 -1
  343. package/geos.xcframework/Info.plist +4 -4
  344. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/Angle.h +28 -0
  345. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/CircularArcIntersector.h +146 -0
  346. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/CircularArcs.h +241 -2
  347. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/CurveToLineParams.h +76 -0
  348. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/Interpolate.h +17 -2
  349. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/LineIntersector.h +5 -1
  350. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/LineToCurveConverter.h +74 -0
  351. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/LineToCurveParams.h +79 -0
  352. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/PointLocator.h +10 -2
  353. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/RayCrossingCounter.h +1 -3
  354. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/distance/DiscreteHausdorffDistance.h +2 -2
  355. package/geos.xcframework/ios-arm64/Headers/geos/algorithm/distance/DistanceToPoint.h +2 -1
  356. package/geos.xcframework/ios-arm64/Headers/geos/coverage/CoverageCleaner.h +3 -3
  357. package/geos.xcframework/ios-arm64/Headers/geos/coverage/CoverageEdge.h +6 -6
  358. package/geos.xcframework/ios-arm64/Headers/geos/coverage/CoverageEdges.h +61 -0
  359. package/geos.xcframework/ios-arm64/Headers/geos/coverage/CoveragePolygonValidator.h +0 -1
  360. package/geos.xcframework/ios-arm64/Headers/geos/coverage/CoverageRing.h +1 -1
  361. package/geos.xcframework/ios-arm64/Headers/geos/coverage/CoverageSimplifier.h +17 -7
  362. package/geos.xcframework/ios-arm64/Headers/geos/coverage/TPVWSimplifier.h +10 -4
  363. package/geos.xcframework/ios-arm64/Headers/geos/dissolve/LineDissolver.h +3 -1
  364. package/geos.xcframework/ios-arm64/Headers/geos/edgegraph/HalfEdge.h +1 -1
  365. package/geos.xcframework/ios-arm64/Headers/geos/geom/CircularArc.h +163 -133
  366. package/geos.xcframework/ios-arm64/Headers/geos/geom/CircularString.h +30 -1
  367. package/geos.xcframework/ios-arm64/Headers/geos/geom/CompoundCurve.h +23 -0
  368. package/geos.xcframework/ios-arm64/Headers/geos/geom/Coordinate.h +108 -0
  369. package/geos.xcframework/ios-arm64/Headers/geos/geom/CoordinateSequence.h +122 -2
  370. package/geos.xcframework/ios-arm64/Headers/geos/geom/Curve.h +32 -0
  371. package/geos.xcframework/ios-arm64/Headers/geos/geom/CurvePolygon.h +16 -1
  372. package/geos.xcframework/ios-arm64/Headers/geos/geom/Envelope.h +26 -0
  373. package/geos.xcframework/ios-arm64/Headers/geos/geom/Geometry.h +41 -3
  374. package/geos.xcframework/ios-arm64/Headers/geos/geom/GeometryCollection.h +13 -0
  375. package/geos.xcframework/ios-arm64/Headers/geos/geom/GeometryFactory.h +36 -1
  376. package/geos.xcframework/ios-arm64/Headers/geos/geom/LineSegment.h +42 -0
  377. package/geos.xcframework/ios-arm64/Headers/geos/geom/LineString.h +19 -0
  378. package/geos.xcframework/ios-arm64/Headers/geos/geom/LinearRing.h +3 -0
  379. package/geos.xcframework/ios-arm64/Headers/geos/geom/MultiCurve.h +13 -0
  380. package/geos.xcframework/ios-arm64/Headers/geos/geom/MultiLineString.h +11 -0
  381. package/geos.xcframework/ios-arm64/Headers/geos/geom/MultiPolygon.h +4 -1
  382. package/geos.xcframework/ios-arm64/Headers/geos/geom/MultiSurface.h +12 -0
  383. package/geos.xcframework/ios-arm64/Headers/geos/geom/Point.h +4 -0
  384. package/geos.xcframework/ios-arm64/Headers/geos/geom/Polygon.h +11 -1
  385. package/geos.xcframework/ios-arm64/Headers/geos/geom/Quadrant.h +2 -2
  386. package/geos.xcframework/ios-arm64/Headers/geos/geom/SimpleCurve.h +17 -26
  387. package/geos.xcframework/ios-arm64/Headers/geos/geom/Surface.h +4 -0
  388. package/geos.xcframework/ios-arm64/Headers/geos/geom/SurfaceImpl.h +3 -6
  389. package/geos.xcframework/ios-arm64/Headers/geos/geom/util/CurveBuilder.h +89 -0
  390. package/geos.xcframework/ios-arm64/Headers/geos/geom/util/GeometryTransformer.h +25 -0
  391. package/geos.xcframework/ios-arm64/Headers/geos/geom/util/LinealExtracter.h +51 -0
  392. package/geos.xcframework/ios-arm64/Headers/geos/geom/util/SimpleCurveExtracter.h +52 -0
  393. package/geos.xcframework/ios-arm64/Headers/geos/geom/util/SurfaceExtracter.h +60 -0
  394. package/geos.xcframework/ios-arm64/Headers/geos/geomgraph/EdgeNodingValidator.h +2 -9
  395. package/geos.xcframework/ios-arm64/Headers/geos/index/intervalrtree/IntervalRTreeLeafNode.h +2 -1
  396. package/geos.xcframework/ios-arm64/Headers/geos/index/intervalrtree/IntervalRTreeNode.h +2 -1
  397. package/geos.xcframework/ios-arm64/Headers/geos/index/intervalrtree/SortedPackedIntervalRTree.h +2 -1
  398. package/geos.xcframework/ios-arm64/Headers/geos/index/kdtree/KdNode.h +5 -5
  399. package/geos.xcframework/ios-arm64/Headers/geos/index/kdtree/KdNodeVisitor.h +1 -0
  400. package/geos.xcframework/ios-arm64/Headers/geos/index/kdtree/KdTree.h +21 -21
  401. package/geos.xcframework/ios-arm64/Headers/geos/io/GeoJSONReader.h +1 -0
  402. package/geos.xcframework/ios-arm64/Headers/geos/io/WKBReader.h +12 -0
  403. package/geos.xcframework/ios-arm64/Headers/geos/io/WKTReader.h +2 -0
  404. package/geos.xcframework/ios-arm64/Headers/geos/linearref/LengthIndexedLine.h +4 -5
  405. package/geos.xcframework/ios-arm64/Headers/geos/linearref/LinearLocation.h +3 -1
  406. package/geos.xcframework/ios-arm64/Headers/geos/math/DD.h +3 -0
  407. package/geos.xcframework/ios-arm64/Headers/geos/noding/ArcIntersectionAdder.h +44 -0
  408. package/geos.xcframework/ios-arm64/Headers/geos/noding/ArcIntersector.h +44 -0
  409. package/geos.xcframework/ios-arm64/Headers/geos/noding/ArcNoder.h +53 -0
  410. package/geos.xcframework/ios-arm64/Headers/geos/noding/ArcString.h +72 -0
  411. package/geos.xcframework/ios-arm64/Headers/geos/noding/BasicSegmentString.h +1 -1
  412. package/geos.xcframework/ios-arm64/Headers/geos/noding/BoundaryChainNoder.h +21 -22
  413. package/geos.xcframework/ios-arm64/Headers/geos/noding/DirectionIndependentArcString.h +52 -0
  414. package/geos.xcframework/ios-arm64/Headers/geos/noding/FastNodingValidator.h +6 -3
  415. package/geos.xcframework/ios-arm64/Headers/geos/noding/GeometryNoder.h +31 -10
  416. package/geos.xcframework/ios-arm64/Headers/geos/noding/IteratedNoder.h +10 -6
  417. package/geos.xcframework/ios-arm64/Headers/geos/noding/MCIndexNoder.h +5 -6
  418. package/geos.xcframework/ios-arm64/Headers/geos/noding/NodableArcString.h +44 -0
  419. package/geos.xcframework/ios-arm64/Headers/geos/noding/NodablePath.h +40 -0
  420. package/geos.xcframework/ios-arm64/Headers/geos/noding/NodableSegmentString.h +1 -1
  421. package/geos.xcframework/ios-arm64/Headers/geos/noding/NodedSegmentString.h +9 -14
  422. package/geos.xcframework/ios-arm64/Headers/geos/noding/Noder.h +13 -9
  423. package/geos.xcframework/ios-arm64/Headers/geos/noding/NodingValidator.h +8 -4
  424. package/geos.xcframework/ios-arm64/Headers/geos/noding/Octant.h +4 -4
  425. package/geos.xcframework/ios-arm64/Headers/geos/noding/PathString.h +76 -0
  426. package/geos.xcframework/ios-arm64/Headers/geos/noding/ScaledNoder.h +4 -4
  427. package/geos.xcframework/ios-arm64/Headers/geos/noding/SegmentExtractingNoder.h +9 -7
  428. package/geos.xcframework/ios-arm64/Headers/geos/noding/SegmentNodeList.h +3 -3
  429. package/geos.xcframework/ios-arm64/Headers/geos/noding/SegmentPointComparator.h +2 -2
  430. package/geos.xcframework/ios-arm64/Headers/geos/noding/SegmentString.h +24 -38
  431. package/geos.xcframework/ios-arm64/Headers/geos/noding/SegmentStringUtil.h +2 -2
  432. package/geos.xcframework/ios-arm64/Headers/geos/noding/SimpleNoder.h +13 -18
  433. package/geos.xcframework/ios-arm64/Headers/geos/noding/SinglePassNoder.h +0 -21
  434. package/geos.xcframework/ios-arm64/Headers/geos/noding/ValidatingNoder.h +11 -4
  435. package/geos.xcframework/ios-arm64/Headers/geos/noding/snap/SnappingNoder.h +9 -8
  436. package/geos.xcframework/ios-arm64/Headers/geos/noding/snapround/MCIndexSnapRounder.h +8 -8
  437. package/geos.xcframework/ios-arm64/Headers/geos/noding/snapround/SnapRoundingNoder.h +5 -5
  438. package/geos.xcframework/ios-arm64/Headers/geos/operation/BoundaryOp.h +6 -3
  439. package/geos.xcframework/ios-arm64/Headers/geos/operation/buffer/BufferCurveSetBuilder.h +2 -2
  440. package/geos.xcframework/ios-arm64/Headers/geos/operation/buffer/OffsetCurveBuilder.h +4 -5
  441. package/geos.xcframework/ios-arm64/Headers/geos/operation/buffer/OffsetSegmentGenerator.h +4 -3
  442. package/geos.xcframework/ios-arm64/Headers/geos/operation/distance/DistanceOp.h +32 -5
  443. package/geos.xcframework/ios-arm64/Headers/geos/operation/distance/FacetSequence.h +25 -15
  444. package/geos.xcframework/ios-arm64/Headers/geos/operation/distance/FacetSequenceTreeBuilder.h +14 -5
  445. package/geos.xcframework/ios-arm64/Headers/geos/operation/distance/GeometryLocation.h +5 -5
  446. package/geos.xcframework/ios-arm64/Headers/geos/operation/distance/IndexedFacetDistance.h +3 -6
  447. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/Cell.h +12 -4
  448. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/Grid.h +78 -21
  449. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/GridIntersection.h +16 -5
  450. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/PerimeterDistance.h +13 -2
  451. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/Side.h +23 -2
  452. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/Traversal.h +13 -4
  453. package/geos.xcframework/ios-arm64/Headers/geos/operation/grid/TraversalAreas.h +4 -2
  454. package/geos.xcframework/ios-arm64/Headers/geos/operation/linemerge/EdgeString.h +3 -3
  455. package/geos.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMergeDirectedEdge.h +1 -1
  456. package/geos.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMergeEdge.h +6 -6
  457. package/geos.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMergeGraph.h +17 -8
  458. package/geos.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMerger.h +6 -4
  459. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlay/snap/GeometrySnapper.h +4 -6
  460. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/Edge.h +26 -36
  461. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/EdgeKey.h +1 -1
  462. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/EdgeNodingBuilder.h +36 -24
  463. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/InputGeometry.h +2 -1
  464. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/LineBuilder.h +4 -4
  465. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/LineLimiter.h +13 -5
  466. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayEdge.h +16 -13
  467. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayEdgeRing.h +21 -16
  468. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayGraph.h +4 -5
  469. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayMixedPoints.h +12 -5
  470. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayUtil.h +10 -7
  471. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/PolygonBuilder.h +3 -3
  472. package/geos.xcframework/ios-arm64/Headers/geos/operation/overlayng/RingClipper.h +5 -4
  473. package/geos.xcframework/ios-arm64/Headers/geos/operation/polygonize/EdgeRing.h +26 -44
  474. package/geos.xcframework/ios-arm64/Headers/geos/operation/polygonize/PolygonizeDirectedEdge.h +1 -1
  475. package/geos.xcframework/ios-arm64/Headers/geos/operation/polygonize/PolygonizeEdge.h +4 -4
  476. package/geos.xcframework/ios-arm64/Headers/geos/operation/polygonize/PolygonizeGraph.h +16 -7
  477. package/geos.xcframework/ios-arm64/Headers/geos/operation/polygonize/Polygonizer.h +39 -27
  478. package/geos.xcframework/ios-arm64/Headers/geos/operation/relateng/RelateGeometry.h +4 -5
  479. package/geos.xcframework/ios-arm64/Headers/geos/operation/relateng/RelateSegmentString.h +8 -8
  480. package/geos.xcframework/ios-arm64/Headers/geos/operation/spanning/SpanningTree.h +59 -0
  481. package/geos.xcframework/ios-arm64/Headers/geos/operation/split/GeometrySplitter.h +64 -0
  482. package/geos.xcframework/ios-arm64/Headers/geos/operation/split/SplitLinealAtPoint.h +90 -0
  483. package/geos.xcframework/ios-arm64/Headers/geos/operation/union/CascadedPolygonUnion.h +33 -25
  484. package/geos.xcframework/ios-arm64/Headers/geos/operation/union/UnaryUnionOp.h +12 -23
  485. package/geos.xcframework/ios-arm64/Headers/geos/operation/valid/IsSimpleOp.h +2 -2
  486. package/geos.xcframework/ios-arm64/Headers/geos/operation/valid/PolygonTopologyAnalyzer.h +0 -5
  487. package/geos.xcframework/ios-arm64/Headers/geos/operation/valid/RepeatedPointRemover.h +7 -0
  488. package/geos.xcframework/ios-arm64/Headers/geos/planargraph/DirectedEdge.h +13 -11
  489. package/geos.xcframework/ios-arm64/Headers/geos/planargraph/DirectedEdgeStar.h +6 -6
  490. package/geos.xcframework/ios-arm64/Headers/geos/planargraph/Edge.h +2 -1
  491. package/geos.xcframework/ios-arm64/Headers/geos/planargraph/Node.h +15 -34
  492. package/geos.xcframework/ios-arm64/Headers/geos/planargraph/NodeMap.h +3 -3
  493. package/geos.xcframework/ios-arm64/Headers/geos/planargraph/PlanarGraph.h +1 -1
  494. package/geos.xcframework/ios-arm64/Headers/geos/precision/GeometryPrecisionReducer.h +1 -3
  495. package/geos.xcframework/ios-arm64/Headers/geos/precision/PointwisePrecisionReducerTransformer.h +1 -1
  496. package/geos.xcframework/ios-arm64/Headers/geos/precision/PrecisionReducerTransformer.h +2 -2
  497. package/geos.xcframework/ios-arm64/Headers/geos/shape/GeometricShapeBuilder.h +83 -0
  498. package/geos.xcframework/ios-arm64/Headers/geos/shape/random/RandomPointsBuilder.h +65 -0
  499. package/geos.xcframework/ios-arm64/Headers/geos/simplify/DouglasPeuckerSimplifier.h +1 -1
  500. package/geos.xcframework/ios-arm64/Headers/geos/triangulate/polygon/PolygonHoleJoiner.h +3 -3
  501. package/geos.xcframework/ios-arm64/Headers/geos/triangulate/polygon/PolygonNoder.h +5 -5
  502. package/geos.xcframework/ios-arm64/Headers/geos/triangulate/quadedge/TrianglePredicate.h +1 -1
  503. package/geos.xcframework/ios-arm64/Headers/geos/util/Assert.h +7 -0
  504. package/geos.xcframework/ios-arm64/Headers/geos/util/Progress.h +84 -0
  505. package/geos.xcframework/ios-arm64/Headers/geos/util/TopologyException.h +6 -0
  506. package/geos.xcframework/ios-arm64/Headers/geos/version.h +4 -4
  507. package/geos.xcframework/ios-arm64/Headers/geos_c.h +1181 -152
  508. package/geos.xcframework/ios-arm64/libgeos.a +0 -0
  509. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/Angle.h +28 -0
  510. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/CircularArcIntersector.h +146 -0
  511. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/CircularArcs.h +241 -2
  512. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/CurveToLineParams.h +76 -0
  513. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/Interpolate.h +17 -2
  514. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/LineIntersector.h +5 -1
  515. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/LineToCurveConverter.h +74 -0
  516. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/LineToCurveParams.h +79 -0
  517. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/PointLocator.h +10 -2
  518. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/RayCrossingCounter.h +1 -3
  519. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/distance/DiscreteHausdorffDistance.h +2 -2
  520. package/geos.xcframework/ios-arm64-simulator/Headers/geos/algorithm/distance/DistanceToPoint.h +2 -1
  521. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageCleaner.h +3 -3
  522. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageEdge.h +6 -6
  523. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageEdges.h +61 -0
  524. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoveragePolygonValidator.h +0 -1
  525. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageRing.h +1 -1
  526. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageSimplifier.h +17 -7
  527. package/geos.xcframework/ios-arm64-simulator/Headers/geos/coverage/TPVWSimplifier.h +10 -4
  528. package/geos.xcframework/ios-arm64-simulator/Headers/geos/dissolve/LineDissolver.h +3 -1
  529. package/geos.xcframework/ios-arm64-simulator/Headers/geos/edgegraph/HalfEdge.h +1 -1
  530. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/CircularArc.h +163 -133
  531. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/CircularString.h +30 -1
  532. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/CompoundCurve.h +23 -0
  533. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Coordinate.h +108 -0
  534. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/CoordinateSequence.h +122 -2
  535. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Curve.h +32 -0
  536. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/CurvePolygon.h +16 -1
  537. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Envelope.h +26 -0
  538. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Geometry.h +41 -3
  539. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/GeometryCollection.h +13 -0
  540. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/GeometryFactory.h +36 -1
  541. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/LineSegment.h +42 -0
  542. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/LineString.h +19 -0
  543. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/LinearRing.h +3 -0
  544. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiCurve.h +13 -0
  545. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiLineString.h +11 -0
  546. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiPolygon.h +4 -1
  547. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiSurface.h +12 -0
  548. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Point.h +4 -0
  549. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Polygon.h +11 -1
  550. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Quadrant.h +2 -2
  551. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/SimpleCurve.h +17 -26
  552. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/Surface.h +4 -0
  553. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/SurfaceImpl.h +3 -6
  554. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/util/CurveBuilder.h +89 -0
  555. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/util/GeometryTransformer.h +25 -0
  556. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/util/LinealExtracter.h +51 -0
  557. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/util/SimpleCurveExtracter.h +52 -0
  558. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geom/util/SurfaceExtracter.h +60 -0
  559. package/geos.xcframework/ios-arm64-simulator/Headers/geos/geomgraph/EdgeNodingValidator.h +2 -9
  560. package/geos.xcframework/ios-arm64-simulator/Headers/geos/index/intervalrtree/IntervalRTreeLeafNode.h +2 -1
  561. package/geos.xcframework/ios-arm64-simulator/Headers/geos/index/intervalrtree/IntervalRTreeNode.h +2 -1
  562. package/geos.xcframework/ios-arm64-simulator/Headers/geos/index/intervalrtree/SortedPackedIntervalRTree.h +2 -1
  563. package/geos.xcframework/ios-arm64-simulator/Headers/geos/index/kdtree/KdNode.h +5 -5
  564. package/geos.xcframework/ios-arm64-simulator/Headers/geos/index/kdtree/KdNodeVisitor.h +1 -0
  565. package/geos.xcframework/ios-arm64-simulator/Headers/geos/index/kdtree/KdTree.h +21 -21
  566. package/geos.xcframework/ios-arm64-simulator/Headers/geos/io/GeoJSONReader.h +1 -0
  567. package/geos.xcframework/ios-arm64-simulator/Headers/geos/io/WKBReader.h +12 -0
  568. package/geos.xcframework/ios-arm64-simulator/Headers/geos/io/WKTReader.h +2 -0
  569. package/geos.xcframework/ios-arm64-simulator/Headers/geos/linearref/LengthIndexedLine.h +4 -5
  570. package/geos.xcframework/ios-arm64-simulator/Headers/geos/linearref/LinearLocation.h +3 -1
  571. package/geos.xcframework/ios-arm64-simulator/Headers/geos/math/DD.h +3 -0
  572. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcIntersectionAdder.h +44 -0
  573. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcIntersector.h +44 -0
  574. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcNoder.h +53 -0
  575. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcString.h +72 -0
  576. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/BasicSegmentString.h +1 -1
  577. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/BoundaryChainNoder.h +21 -22
  578. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/DirectionIndependentArcString.h +52 -0
  579. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/FastNodingValidator.h +6 -3
  580. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/GeometryNoder.h +31 -10
  581. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/IteratedNoder.h +10 -6
  582. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/MCIndexNoder.h +5 -6
  583. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/NodableArcString.h +44 -0
  584. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/NodablePath.h +40 -0
  585. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/NodableSegmentString.h +1 -1
  586. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/NodedSegmentString.h +9 -14
  587. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/Noder.h +13 -9
  588. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/NodingValidator.h +8 -4
  589. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/Octant.h +4 -4
  590. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/PathString.h +76 -0
  591. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/ScaledNoder.h +4 -4
  592. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentExtractingNoder.h +9 -7
  593. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentNodeList.h +3 -3
  594. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentPointComparator.h +2 -2
  595. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentString.h +24 -38
  596. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentStringUtil.h +2 -2
  597. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SimpleNoder.h +13 -18
  598. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/SinglePassNoder.h +0 -21
  599. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/ValidatingNoder.h +11 -4
  600. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/snap/SnappingNoder.h +9 -8
  601. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/snapround/MCIndexSnapRounder.h +8 -8
  602. package/geos.xcframework/ios-arm64-simulator/Headers/geos/noding/snapround/SnapRoundingNoder.h +5 -5
  603. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/BoundaryOp.h +6 -3
  604. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/buffer/BufferCurveSetBuilder.h +2 -2
  605. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/buffer/OffsetCurveBuilder.h +4 -5
  606. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/buffer/OffsetSegmentGenerator.h +4 -3
  607. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/DistanceOp.h +32 -5
  608. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/FacetSequence.h +25 -15
  609. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/FacetSequenceTreeBuilder.h +14 -5
  610. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/GeometryLocation.h +5 -5
  611. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/IndexedFacetDistance.h +3 -6
  612. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Cell.h +12 -4
  613. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Grid.h +78 -21
  614. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/GridIntersection.h +16 -5
  615. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/PerimeterDistance.h +13 -2
  616. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Side.h +23 -2
  617. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Traversal.h +13 -4
  618. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/TraversalAreas.h +4 -2
  619. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/EdgeString.h +3 -3
  620. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMergeDirectedEdge.h +1 -1
  621. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMergeEdge.h +6 -6
  622. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMergeGraph.h +17 -8
  623. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMerger.h +6 -4
  624. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlay/snap/GeometrySnapper.h +4 -6
  625. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/Edge.h +26 -36
  626. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/EdgeKey.h +1 -1
  627. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/EdgeNodingBuilder.h +36 -24
  628. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/InputGeometry.h +2 -1
  629. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/LineBuilder.h +4 -4
  630. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/LineLimiter.h +13 -5
  631. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayEdge.h +16 -13
  632. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayEdgeRing.h +21 -16
  633. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayGraph.h +4 -5
  634. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayMixedPoints.h +12 -5
  635. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayUtil.h +10 -7
  636. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/PolygonBuilder.h +3 -3
  637. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/RingClipper.h +5 -4
  638. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/EdgeRing.h +26 -44
  639. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/PolygonizeDirectedEdge.h +1 -1
  640. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/PolygonizeEdge.h +4 -4
  641. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/PolygonizeGraph.h +16 -7
  642. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/Polygonizer.h +39 -27
  643. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/relateng/RelateGeometry.h +4 -5
  644. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/relateng/RelateSegmentString.h +8 -8
  645. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/spanning/SpanningTree.h +59 -0
  646. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/split/GeometrySplitter.h +64 -0
  647. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/split/SplitLinealAtPoint.h +90 -0
  648. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/union/CascadedPolygonUnion.h +33 -25
  649. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/union/UnaryUnionOp.h +12 -23
  650. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/valid/IsSimpleOp.h +2 -2
  651. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/valid/PolygonTopologyAnalyzer.h +0 -5
  652. package/geos.xcframework/ios-arm64-simulator/Headers/geos/operation/valid/RepeatedPointRemover.h +7 -0
  653. package/geos.xcframework/ios-arm64-simulator/Headers/geos/planargraph/DirectedEdge.h +13 -11
  654. package/geos.xcframework/ios-arm64-simulator/Headers/geos/planargraph/DirectedEdgeStar.h +6 -6
  655. package/geos.xcframework/ios-arm64-simulator/Headers/geos/planargraph/Edge.h +2 -1
  656. package/geos.xcframework/ios-arm64-simulator/Headers/geos/planargraph/Node.h +15 -34
  657. package/geos.xcframework/ios-arm64-simulator/Headers/geos/planargraph/NodeMap.h +3 -3
  658. package/geos.xcframework/ios-arm64-simulator/Headers/geos/planargraph/PlanarGraph.h +1 -1
  659. package/geos.xcframework/ios-arm64-simulator/Headers/geos/precision/GeometryPrecisionReducer.h +1 -3
  660. package/geos.xcframework/ios-arm64-simulator/Headers/geos/precision/PointwisePrecisionReducerTransformer.h +1 -1
  661. package/geos.xcframework/ios-arm64-simulator/Headers/geos/precision/PrecisionReducerTransformer.h +2 -2
  662. package/geos.xcframework/ios-arm64-simulator/Headers/geos/shape/GeometricShapeBuilder.h +83 -0
  663. package/geos.xcframework/ios-arm64-simulator/Headers/geos/shape/random/RandomPointsBuilder.h +65 -0
  664. package/geos.xcframework/ios-arm64-simulator/Headers/geos/simplify/DouglasPeuckerSimplifier.h +1 -1
  665. package/geos.xcframework/ios-arm64-simulator/Headers/geos/triangulate/polygon/PolygonHoleJoiner.h +3 -3
  666. package/geos.xcframework/ios-arm64-simulator/Headers/geos/triangulate/polygon/PolygonNoder.h +5 -5
  667. package/geos.xcframework/ios-arm64-simulator/Headers/geos/triangulate/quadedge/TrianglePredicate.h +1 -1
  668. package/geos.xcframework/ios-arm64-simulator/Headers/geos/util/Assert.h +7 -0
  669. package/geos.xcframework/ios-arm64-simulator/Headers/geos/util/Progress.h +84 -0
  670. package/geos.xcframework/ios-arm64-simulator/Headers/geos/util/TopologyException.h +6 -0
  671. package/geos.xcframework/ios-arm64-simulator/Headers/geos/version.h +4 -4
  672. package/geos.xcframework/ios-arm64-simulator/Headers/geos_c.h +1181 -152
  673. package/geos.xcframework/ios-arm64-simulator/libgeos.a +0 -0
  674. package/geos_c.xcframework/Info.plist +4 -4
  675. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/Angle.h +28 -0
  676. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/CircularArcIntersector.h +146 -0
  677. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/CircularArcs.h +241 -2
  678. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/CurveToLineParams.h +76 -0
  679. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/Interpolate.h +17 -2
  680. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/LineIntersector.h +5 -1
  681. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/LineToCurveConverter.h +74 -0
  682. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/LineToCurveParams.h +79 -0
  683. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/PointLocator.h +10 -2
  684. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/RayCrossingCounter.h +1 -3
  685. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/distance/DiscreteHausdorffDistance.h +2 -2
  686. package/geos_c.xcframework/ios-arm64/Headers/geos/algorithm/distance/DistanceToPoint.h +2 -1
  687. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/CoverageCleaner.h +3 -3
  688. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/CoverageEdge.h +6 -6
  689. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/CoverageEdges.h +61 -0
  690. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/CoveragePolygonValidator.h +0 -1
  691. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/CoverageRing.h +1 -1
  692. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/CoverageSimplifier.h +17 -7
  693. package/geos_c.xcframework/ios-arm64/Headers/geos/coverage/TPVWSimplifier.h +10 -4
  694. package/geos_c.xcframework/ios-arm64/Headers/geos/dissolve/LineDissolver.h +3 -1
  695. package/geos_c.xcframework/ios-arm64/Headers/geos/edgegraph/HalfEdge.h +1 -1
  696. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/CircularArc.h +163 -133
  697. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/CircularString.h +30 -1
  698. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/CompoundCurve.h +23 -0
  699. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Coordinate.h +108 -0
  700. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/CoordinateSequence.h +122 -2
  701. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Curve.h +32 -0
  702. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/CurvePolygon.h +16 -1
  703. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Envelope.h +26 -0
  704. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Geometry.h +41 -3
  705. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/GeometryCollection.h +13 -0
  706. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/GeometryFactory.h +36 -1
  707. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/LineSegment.h +42 -0
  708. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/LineString.h +19 -0
  709. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/LinearRing.h +3 -0
  710. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/MultiCurve.h +13 -0
  711. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/MultiLineString.h +11 -0
  712. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/MultiPolygon.h +4 -1
  713. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/MultiSurface.h +12 -0
  714. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Point.h +4 -0
  715. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Polygon.h +11 -1
  716. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Quadrant.h +2 -2
  717. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/SimpleCurve.h +17 -26
  718. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/Surface.h +4 -0
  719. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/SurfaceImpl.h +3 -6
  720. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/util/CurveBuilder.h +89 -0
  721. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/util/GeometryTransformer.h +25 -0
  722. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/util/LinealExtracter.h +51 -0
  723. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/util/SimpleCurveExtracter.h +52 -0
  724. package/geos_c.xcframework/ios-arm64/Headers/geos/geom/util/SurfaceExtracter.h +60 -0
  725. package/geos_c.xcframework/ios-arm64/Headers/geos/geomgraph/EdgeNodingValidator.h +2 -9
  726. package/geos_c.xcframework/ios-arm64/Headers/geos/index/intervalrtree/IntervalRTreeLeafNode.h +2 -1
  727. package/geos_c.xcframework/ios-arm64/Headers/geos/index/intervalrtree/IntervalRTreeNode.h +2 -1
  728. package/geos_c.xcframework/ios-arm64/Headers/geos/index/intervalrtree/SortedPackedIntervalRTree.h +2 -1
  729. package/geos_c.xcframework/ios-arm64/Headers/geos/index/kdtree/KdNode.h +5 -5
  730. package/geos_c.xcframework/ios-arm64/Headers/geos/index/kdtree/KdNodeVisitor.h +1 -0
  731. package/geos_c.xcframework/ios-arm64/Headers/geos/index/kdtree/KdTree.h +21 -21
  732. package/geos_c.xcframework/ios-arm64/Headers/geos/io/GeoJSONReader.h +1 -0
  733. package/geos_c.xcframework/ios-arm64/Headers/geos/io/WKBReader.h +12 -0
  734. package/geos_c.xcframework/ios-arm64/Headers/geos/io/WKTReader.h +2 -0
  735. package/geos_c.xcframework/ios-arm64/Headers/geos/linearref/LengthIndexedLine.h +4 -5
  736. package/geos_c.xcframework/ios-arm64/Headers/geos/linearref/LinearLocation.h +3 -1
  737. package/geos_c.xcframework/ios-arm64/Headers/geos/math/DD.h +3 -0
  738. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/ArcIntersectionAdder.h +44 -0
  739. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/ArcIntersector.h +44 -0
  740. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/ArcNoder.h +53 -0
  741. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/ArcString.h +72 -0
  742. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/BasicSegmentString.h +1 -1
  743. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/BoundaryChainNoder.h +21 -22
  744. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/DirectionIndependentArcString.h +52 -0
  745. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/FastNodingValidator.h +6 -3
  746. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/GeometryNoder.h +31 -10
  747. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/IteratedNoder.h +10 -6
  748. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/MCIndexNoder.h +5 -6
  749. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/NodableArcString.h +44 -0
  750. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/NodablePath.h +40 -0
  751. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/NodableSegmentString.h +1 -1
  752. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/NodedSegmentString.h +9 -14
  753. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/Noder.h +13 -9
  754. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/NodingValidator.h +8 -4
  755. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/Octant.h +4 -4
  756. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/PathString.h +76 -0
  757. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/ScaledNoder.h +4 -4
  758. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SegmentExtractingNoder.h +9 -7
  759. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SegmentNodeList.h +3 -3
  760. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SegmentPointComparator.h +2 -2
  761. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SegmentString.h +24 -38
  762. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SegmentStringUtil.h +2 -2
  763. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SimpleNoder.h +13 -18
  764. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/SinglePassNoder.h +0 -21
  765. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/ValidatingNoder.h +11 -4
  766. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/snap/SnappingNoder.h +9 -8
  767. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/snapround/MCIndexSnapRounder.h +8 -8
  768. package/geos_c.xcframework/ios-arm64/Headers/geos/noding/snapround/SnapRoundingNoder.h +5 -5
  769. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/BoundaryOp.h +6 -3
  770. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/buffer/BufferCurveSetBuilder.h +2 -2
  771. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/buffer/OffsetCurveBuilder.h +4 -5
  772. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/buffer/OffsetSegmentGenerator.h +4 -3
  773. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/distance/DistanceOp.h +32 -5
  774. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/distance/FacetSequence.h +25 -15
  775. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/distance/FacetSequenceTreeBuilder.h +14 -5
  776. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/distance/GeometryLocation.h +5 -5
  777. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/distance/IndexedFacetDistance.h +3 -6
  778. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/Cell.h +12 -4
  779. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/Grid.h +78 -21
  780. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/GridIntersection.h +16 -5
  781. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/PerimeterDistance.h +13 -2
  782. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/Side.h +23 -2
  783. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/Traversal.h +13 -4
  784. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/grid/TraversalAreas.h +4 -2
  785. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/linemerge/EdgeString.h +3 -3
  786. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMergeDirectedEdge.h +1 -1
  787. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMergeEdge.h +6 -6
  788. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMergeGraph.h +17 -8
  789. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/linemerge/LineMerger.h +6 -4
  790. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlay/snap/GeometrySnapper.h +4 -6
  791. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/Edge.h +26 -36
  792. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/EdgeKey.h +1 -1
  793. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/EdgeNodingBuilder.h +36 -24
  794. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/InputGeometry.h +2 -1
  795. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/LineBuilder.h +4 -4
  796. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/LineLimiter.h +13 -5
  797. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayEdge.h +16 -13
  798. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayEdgeRing.h +21 -16
  799. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayGraph.h +4 -5
  800. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayMixedPoints.h +12 -5
  801. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/OverlayUtil.h +10 -7
  802. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/PolygonBuilder.h +3 -3
  803. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/overlayng/RingClipper.h +5 -4
  804. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/polygonize/EdgeRing.h +26 -44
  805. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/polygonize/PolygonizeDirectedEdge.h +1 -1
  806. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/polygonize/PolygonizeEdge.h +4 -4
  807. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/polygonize/PolygonizeGraph.h +16 -7
  808. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/polygonize/Polygonizer.h +39 -27
  809. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/relateng/RelateGeometry.h +4 -5
  810. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/relateng/RelateSegmentString.h +8 -8
  811. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/spanning/SpanningTree.h +59 -0
  812. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/split/GeometrySplitter.h +64 -0
  813. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/split/SplitLinealAtPoint.h +90 -0
  814. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/union/CascadedPolygonUnion.h +33 -25
  815. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/union/UnaryUnionOp.h +12 -23
  816. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/valid/IsSimpleOp.h +2 -2
  817. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/valid/PolygonTopologyAnalyzer.h +0 -5
  818. package/geos_c.xcframework/ios-arm64/Headers/geos/operation/valid/RepeatedPointRemover.h +7 -0
  819. package/geos_c.xcframework/ios-arm64/Headers/geos/planargraph/DirectedEdge.h +13 -11
  820. package/geos_c.xcframework/ios-arm64/Headers/geos/planargraph/DirectedEdgeStar.h +6 -6
  821. package/geos_c.xcframework/ios-arm64/Headers/geos/planargraph/Edge.h +2 -1
  822. package/geos_c.xcframework/ios-arm64/Headers/geos/planargraph/Node.h +15 -34
  823. package/geos_c.xcframework/ios-arm64/Headers/geos/planargraph/NodeMap.h +3 -3
  824. package/geos_c.xcframework/ios-arm64/Headers/geos/planargraph/PlanarGraph.h +1 -1
  825. package/geos_c.xcframework/ios-arm64/Headers/geos/precision/GeometryPrecisionReducer.h +1 -3
  826. package/geos_c.xcframework/ios-arm64/Headers/geos/precision/PointwisePrecisionReducerTransformer.h +1 -1
  827. package/geos_c.xcframework/ios-arm64/Headers/geos/precision/PrecisionReducerTransformer.h +2 -2
  828. package/geos_c.xcframework/ios-arm64/Headers/geos/shape/GeometricShapeBuilder.h +83 -0
  829. package/geos_c.xcframework/ios-arm64/Headers/geos/shape/random/RandomPointsBuilder.h +65 -0
  830. package/geos_c.xcframework/ios-arm64/Headers/geos/simplify/DouglasPeuckerSimplifier.h +1 -1
  831. package/geos_c.xcframework/ios-arm64/Headers/geos/triangulate/polygon/PolygonHoleJoiner.h +3 -3
  832. package/geos_c.xcframework/ios-arm64/Headers/geos/triangulate/polygon/PolygonNoder.h +5 -5
  833. package/geos_c.xcframework/ios-arm64/Headers/geos/triangulate/quadedge/TrianglePredicate.h +1 -1
  834. package/geos_c.xcframework/ios-arm64/Headers/geos/util/Assert.h +7 -0
  835. package/geos_c.xcframework/ios-arm64/Headers/geos/util/Progress.h +84 -0
  836. package/geos_c.xcframework/ios-arm64/Headers/geos/util/TopologyException.h +6 -0
  837. package/geos_c.xcframework/ios-arm64/Headers/geos/version.h +4 -4
  838. package/geos_c.xcframework/ios-arm64/Headers/geos_c.h +1181 -152
  839. package/geos_c.xcframework/ios-arm64/libgeos_c.a +0 -0
  840. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/Angle.h +28 -0
  841. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/CircularArcIntersector.h +146 -0
  842. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/CircularArcs.h +241 -2
  843. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/CurveToLineParams.h +76 -0
  844. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/Interpolate.h +17 -2
  845. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/LineIntersector.h +5 -1
  846. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/LineToCurveConverter.h +74 -0
  847. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/LineToCurveParams.h +79 -0
  848. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/PointLocator.h +10 -2
  849. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/RayCrossingCounter.h +1 -3
  850. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/distance/DiscreteHausdorffDistance.h +2 -2
  851. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/algorithm/distance/DistanceToPoint.h +2 -1
  852. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageCleaner.h +3 -3
  853. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageEdge.h +6 -6
  854. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageEdges.h +61 -0
  855. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoveragePolygonValidator.h +0 -1
  856. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageRing.h +1 -1
  857. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/CoverageSimplifier.h +17 -7
  858. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/coverage/TPVWSimplifier.h +10 -4
  859. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/dissolve/LineDissolver.h +3 -1
  860. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/edgegraph/HalfEdge.h +1 -1
  861. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/CircularArc.h +163 -133
  862. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/CircularString.h +30 -1
  863. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/CompoundCurve.h +23 -0
  864. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Coordinate.h +108 -0
  865. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/CoordinateSequence.h +122 -2
  866. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Curve.h +32 -0
  867. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/CurvePolygon.h +16 -1
  868. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Envelope.h +26 -0
  869. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Geometry.h +41 -3
  870. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/GeometryCollection.h +13 -0
  871. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/GeometryFactory.h +36 -1
  872. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/LineSegment.h +42 -0
  873. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/LineString.h +19 -0
  874. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/LinearRing.h +3 -0
  875. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiCurve.h +13 -0
  876. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiLineString.h +11 -0
  877. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiPolygon.h +4 -1
  878. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/MultiSurface.h +12 -0
  879. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Point.h +4 -0
  880. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Polygon.h +11 -1
  881. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Quadrant.h +2 -2
  882. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/SimpleCurve.h +17 -26
  883. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/Surface.h +4 -0
  884. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/SurfaceImpl.h +3 -6
  885. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/util/CurveBuilder.h +89 -0
  886. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/util/GeometryTransformer.h +25 -0
  887. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/util/LinealExtracter.h +51 -0
  888. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/util/SimpleCurveExtracter.h +52 -0
  889. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geom/util/SurfaceExtracter.h +60 -0
  890. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/geomgraph/EdgeNodingValidator.h +2 -9
  891. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/index/intervalrtree/IntervalRTreeLeafNode.h +2 -1
  892. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/index/intervalrtree/IntervalRTreeNode.h +2 -1
  893. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/index/intervalrtree/SortedPackedIntervalRTree.h +2 -1
  894. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/index/kdtree/KdNode.h +5 -5
  895. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/index/kdtree/KdNodeVisitor.h +1 -0
  896. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/index/kdtree/KdTree.h +21 -21
  897. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/io/GeoJSONReader.h +1 -0
  898. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/io/WKBReader.h +12 -0
  899. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/io/WKTReader.h +2 -0
  900. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/linearref/LengthIndexedLine.h +4 -5
  901. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/linearref/LinearLocation.h +3 -1
  902. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/math/DD.h +3 -0
  903. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcIntersectionAdder.h +44 -0
  904. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcIntersector.h +44 -0
  905. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcNoder.h +53 -0
  906. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/ArcString.h +72 -0
  907. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/BasicSegmentString.h +1 -1
  908. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/BoundaryChainNoder.h +21 -22
  909. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/DirectionIndependentArcString.h +52 -0
  910. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/FastNodingValidator.h +6 -3
  911. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/GeometryNoder.h +31 -10
  912. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/IteratedNoder.h +10 -6
  913. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/MCIndexNoder.h +5 -6
  914. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/NodableArcString.h +44 -0
  915. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/NodablePath.h +40 -0
  916. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/NodableSegmentString.h +1 -1
  917. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/NodedSegmentString.h +9 -14
  918. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/Noder.h +13 -9
  919. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/NodingValidator.h +8 -4
  920. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/Octant.h +4 -4
  921. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/PathString.h +76 -0
  922. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/ScaledNoder.h +4 -4
  923. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentExtractingNoder.h +9 -7
  924. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentNodeList.h +3 -3
  925. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentPointComparator.h +2 -2
  926. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentString.h +24 -38
  927. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SegmentStringUtil.h +2 -2
  928. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SimpleNoder.h +13 -18
  929. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/SinglePassNoder.h +0 -21
  930. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/ValidatingNoder.h +11 -4
  931. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/snap/SnappingNoder.h +9 -8
  932. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/snapround/MCIndexSnapRounder.h +8 -8
  933. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/noding/snapround/SnapRoundingNoder.h +5 -5
  934. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/BoundaryOp.h +6 -3
  935. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/buffer/BufferCurveSetBuilder.h +2 -2
  936. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/buffer/OffsetCurveBuilder.h +4 -5
  937. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/buffer/OffsetSegmentGenerator.h +4 -3
  938. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/DistanceOp.h +32 -5
  939. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/FacetSequence.h +25 -15
  940. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/FacetSequenceTreeBuilder.h +14 -5
  941. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/GeometryLocation.h +5 -5
  942. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/distance/IndexedFacetDistance.h +3 -6
  943. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Cell.h +12 -4
  944. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Grid.h +78 -21
  945. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/GridIntersection.h +16 -5
  946. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/PerimeterDistance.h +13 -2
  947. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Side.h +23 -2
  948. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/Traversal.h +13 -4
  949. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/grid/TraversalAreas.h +4 -2
  950. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/EdgeString.h +3 -3
  951. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMergeDirectedEdge.h +1 -1
  952. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMergeEdge.h +6 -6
  953. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMergeGraph.h +17 -8
  954. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/linemerge/LineMerger.h +6 -4
  955. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlay/snap/GeometrySnapper.h +4 -6
  956. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/Edge.h +26 -36
  957. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/EdgeKey.h +1 -1
  958. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/EdgeNodingBuilder.h +36 -24
  959. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/InputGeometry.h +2 -1
  960. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/LineBuilder.h +4 -4
  961. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/LineLimiter.h +13 -5
  962. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayEdge.h +16 -13
  963. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayEdgeRing.h +21 -16
  964. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayGraph.h +4 -5
  965. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayMixedPoints.h +12 -5
  966. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/OverlayUtil.h +10 -7
  967. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/PolygonBuilder.h +3 -3
  968. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/overlayng/RingClipper.h +5 -4
  969. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/EdgeRing.h +26 -44
  970. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/PolygonizeDirectedEdge.h +1 -1
  971. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/PolygonizeEdge.h +4 -4
  972. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/PolygonizeGraph.h +16 -7
  973. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/polygonize/Polygonizer.h +39 -27
  974. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/relateng/RelateGeometry.h +4 -5
  975. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/relateng/RelateSegmentString.h +8 -8
  976. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/spanning/SpanningTree.h +59 -0
  977. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/split/GeometrySplitter.h +64 -0
  978. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/split/SplitLinealAtPoint.h +90 -0
  979. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/union/CascadedPolygonUnion.h +33 -25
  980. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/union/UnaryUnionOp.h +12 -23
  981. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/valid/IsSimpleOp.h +2 -2
  982. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/valid/PolygonTopologyAnalyzer.h +0 -5
  983. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/operation/valid/RepeatedPointRemover.h +7 -0
  984. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/planargraph/DirectedEdge.h +13 -11
  985. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/planargraph/DirectedEdgeStar.h +6 -6
  986. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/planargraph/Edge.h +2 -1
  987. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/planargraph/Node.h +15 -34
  988. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/planargraph/NodeMap.h +3 -3
  989. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/planargraph/PlanarGraph.h +1 -1
  990. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/precision/GeometryPrecisionReducer.h +1 -3
  991. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/precision/PointwisePrecisionReducerTransformer.h +1 -1
  992. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/precision/PrecisionReducerTransformer.h +2 -2
  993. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/shape/GeometricShapeBuilder.h +83 -0
  994. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/shape/random/RandomPointsBuilder.h +65 -0
  995. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/simplify/DouglasPeuckerSimplifier.h +1 -1
  996. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/triangulate/polygon/PolygonHoleJoiner.h +3 -3
  997. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/triangulate/polygon/PolygonNoder.h +5 -5
  998. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/triangulate/quadedge/TrianglePredicate.h +1 -1
  999. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/util/Assert.h +7 -0
  1000. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/util/Progress.h +84 -0
  1001. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/util/TopologyException.h +6 -0
  1002. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos/version.h +4 -4
  1003. package/geos_c.xcframework/ios-arm64-simulator/Headers/geos_c.h +1181 -152
  1004. package/geos_c.xcframework/ios-arm64-simulator/libgeos_c.a +0 -0
  1005. package/package.json +4 -4
@@ -61,22 +61,22 @@ extern "C" {
61
61
  #define GEOS_VERSION_MAJOR 3
62
62
  #endif
63
63
  #ifndef GEOS_VERSION_MINOR
64
- #define GEOS_VERSION_MINOR 14
64
+ #define GEOS_VERSION_MINOR 15
65
65
  #endif
66
66
  #ifndef GEOS_VERSION_PATCH
67
- #define GEOS_VERSION_PATCH 1
67
+ #define GEOS_VERSION_PATCH 0
68
68
  #endif
69
69
  #ifndef GEOS_VERSION
70
- #define GEOS_VERSION "3.14.1"
70
+ #define GEOS_VERSION "3.15.0"
71
71
  #endif
72
72
  #ifndef GEOS_JTS_PORT
73
- #define GEOS_JTS_PORT "1.18.0"
73
+ #define GEOS_JTS_PORT "1.20.0"
74
74
  #endif
75
75
 
76
76
  #define GEOS_CAPI_VERSION_MAJOR 1
77
- #define GEOS_CAPI_VERSION_MINOR 20
78
- #define GEOS_CAPI_VERSION_PATCH 5
79
- #define GEOS_CAPI_VERSION "3.14.1-CAPI-1.20.5"
77
+ #define GEOS_CAPI_VERSION_MINOR 21
78
+ #define GEOS_CAPI_VERSION_PATCH 0
79
+ #define GEOS_CAPI_VERSION "3.15.0-CAPI-1.21.0"
80
80
 
81
81
  #define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
82
82
  #define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
@@ -117,6 +117,21 @@ typedef void (*GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt, ...)
117
117
  */
118
118
  typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
119
119
 
120
+
121
+ /**
122
+ * A GEOS progress callback function.
123
+ *
124
+ * Such function takes a progress ratio (0 to 1), and an optional message.
125
+ *
126
+ * \param progressRatio Progression ratio (between 0 and 1)
127
+ * \param message Information message (can be NULL)
128
+ * \param userdata the user data pointer that was passed to GEOS together with
129
+ * this callback.
130
+ */
131
+ typedef void (GEOSProgressCallback)(double progressRatio,
132
+ const char* message, void* userdata);
133
+
134
+
120
135
  /*
121
136
  * When we're included by geos_c.cpp, these types are #defined to the
122
137
  * C++ definitions via preprocessor. We don't touch them to allow the
@@ -188,6 +203,20 @@ typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
188
203
  */
189
204
  typedef struct GEOSClusterInfo_t GEOSClusterInfo;
190
205
 
206
+ /**
207
+ * Parameter object for curve-to-line conversion
208
+ * \see GEOSCurveToLineParams_create()
209
+ * \see GEOSCurveToLineParams_destroy()
210
+ */
211
+ typedef struct GEOSCurveToLineParams_t GEOSCurveToLineParams;
212
+
213
+ /**
214
+ * Parameter object for line-to-curve conversion
215
+ * \see GEOSLineToCurveParams_create()
216
+ * \see GEOSLineToCurveParams_destroy()
217
+ */
218
+ typedef struct GEOSLineToCurveParams_t GEOSLineToCurveParams;
219
+
191
220
  #endif
192
221
 
193
222
  /** \cond */
@@ -406,18 +435,29 @@ extern GEOSContextInterruptCallback GEOS_DLL *GEOSContext_setInterruptCallback_r
406
435
  */
407
436
  extern void GEOS_DLL GEOS_interruptRequest(void);
408
437
 
409
- /**
410
- * Interrupt the current thread.
411
- * \since 3.14
412
- */
413
- extern void GEOS_DLL GEOS_interruptThread(void);
414
-
415
438
  /**
416
439
  * Cancel a pending interruption request
417
440
  * \since 3.4
418
441
  */
419
442
  extern void GEOS_DLL GEOS_interruptCancel(void);
420
443
 
444
+ /* ========== Progress monitoring ========== */
445
+
446
+ /**
447
+ * Register a function to be called with progress updates
448
+ *
449
+ * \param extHandle the context returned by \ref GEOS_init_r.
450
+ * \param cb Callback function to invoke
451
+ * \param userData optional data to be pe provided as argument to callback
452
+ * \return the previously registered callback, or NULL
453
+ * \see GEOSProgressCallback
454
+ * \since 3.15
455
+ */
456
+ extern GEOSProgressCallback GEOS_DLL *GEOSContext_setProgressCallback_r(
457
+ GEOSContextHandle_t extHandle,
458
+ GEOSProgressCallback* cb,
459
+ void* userData);
460
+
421
461
  /* ========== Initialization and Cleanup ========== */
422
462
 
423
463
  /**
@@ -495,6 +535,38 @@ extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setErrorMessageHandler_r(
495
535
  GEOSMessageHandler_r ef,
496
536
  void *userData);
497
537
 
538
+ /**
539
+ * Set parameters to use for converting input curves to lines.
540
+ *
541
+ * These parameters will be used with this context whenever a curved geometry is
542
+ * provided to a function that only supports linear types. If `params` is NULL,
543
+ * no automatic conversion will be performed.
544
+ *
545
+ * \param extHandle the GEOS context
546
+ * \param params the curve conversion parameters
547
+ *
548
+ * \since 3.15
549
+ */
550
+ extern void GEOS_DLL GEOSContext_setCurveToLineParams_r(
551
+ GEOSContextHandle_t extHandle,
552
+ const GEOSCurveToLineParams* params);
553
+
554
+ /**
555
+ * Set parameters to use for converting output lines to curves.
556
+ *
557
+ * These parameters will be used with this context whenever a curved geometry is
558
+ * provided to a function that only supports linear types. If `params` is NULL,
559
+ * no automatic conversion will be performed.
560
+ *
561
+ * \param extHandle the GEOS context
562
+ * \param params the curve conversion parameters
563
+ *
564
+ * \since 3.15
565
+ */
566
+ extern void GEOS_DLL GEOSContext_setLineToCurveParams_r(
567
+ GEOSContextHandle_t extHandle,
568
+ const GEOSLineToCurveParams* params);
569
+
498
570
  /* ========== Coordinate Sequence functions ========== */
499
571
 
500
572
  /** \see GEOSCoordSeq_create */
@@ -938,6 +1010,13 @@ GEOSCoverageSimplifyVW_r(
938
1010
  double tolerance,
939
1011
  int preserveBoundary);
940
1012
 
1013
+ /** \see GEOSCoverageEdges */
1014
+ extern GEOSGeometry GEOS_DLL *
1015
+ GEOSCoverageEdges_r(
1016
+ GEOSContextHandle_t handle,
1017
+ const GEOSGeometry* input,
1018
+ int edgetype);
1019
+
941
1020
  /** \see GEOSCoverageCleanParams_create */
942
1021
  extern GEOSCoverageCleanParams GEOS_DLL *
943
1022
  GEOSCoverageCleanParams_create_r(
@@ -1029,6 +1108,16 @@ extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify_r(
1029
1108
  unsigned int isOuter,
1030
1109
  double vertexNumFraction);
1031
1110
 
1111
+ /**
1112
+ * Controls the behavior of the GEOSPolygonHullSimplify parameter.
1113
+ */
1114
+ enum GEOSPolygonHullParameterModes {
1115
+ /** Fraction of input vertices retained */
1116
+ GEOSHULL_PARAM_VERTEX_RATIO = 1,
1117
+ /** Ratio of simplified hull area to input area */
1118
+ GEOSHULL_PARAM_AREA_RATIO = 2
1119
+ };
1120
+
1032
1121
  /** \see GEOSPolygonHullSimplifyMode */
1033
1122
  extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplifyMode_r(
1034
1123
  GEOSContextHandle_t handle,
@@ -1161,6 +1250,12 @@ extern GEOSGeometry GEOS_DLL *GEOSNode_r(
1161
1250
  GEOSContextHandle_t handle,
1162
1251
  const GEOSGeometry* g);
1163
1252
 
1253
+ /** \see GEOSSplit */
1254
+ extern GEOSGeometry GEOS_DLL *GEOSSplit_r(
1255
+ GEOSContextHandle_t handle,
1256
+ const GEOSGeometry* g,
1257
+ const GEOSGeometry* edge);
1258
+
1164
1259
  /** \see GEOSClipByRect */
1165
1260
  extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(
1166
1261
  GEOSContextHandle_t handle,
@@ -1168,6 +1263,15 @@ extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(
1168
1263
  double xmin, double ymin,
1169
1264
  double xmax, double ymax);
1170
1265
 
1266
+ /** \see GEOSSubdivideByGrid */
1267
+ extern GEOSGeometry GEOS_DLL *GEOSSubdivideByGrid_r(
1268
+ GEOSContextHandle_t handle,
1269
+ const GEOSGeometry* g,
1270
+ double xmin, double ymin,
1271
+ double xmax, double ymax,
1272
+ unsigned nx, unsigned ny,
1273
+ int includeExterior);
1274
+
1171
1275
  /** \see GEOSGridIntersectionFractions */
1172
1276
  extern int GEOS_DLL GEOSGridIntersectionFractions_r(
1173
1277
  GEOSContextHandle_t handle,
@@ -1213,6 +1317,12 @@ extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(
1213
1317
  GEOSContextHandle_t handle,
1214
1318
  const GEOSGeometry* g);
1215
1319
 
1320
+ /** \see GEOSMinimumSpanningTree */
1321
+ extern size_t GEOS_DLL *GEOSMinimumSpanningTree_r(
1322
+ GEOSContextHandle_t handle,
1323
+ const GEOSGeometry * const geoms[],
1324
+ unsigned int ngeoms);
1325
+
1216
1326
  /** \see GEOSLineMergeDirected */
1217
1327
  extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected_r(
1218
1328
  GEOSContextHandle_t handle,
@@ -1271,6 +1381,17 @@ extern GEOSGeometry GEOS_DLL * GEOSConstrainedDelaunayTriangulation_r(
1271
1381
  GEOSContextHandle_t handle,
1272
1382
  const GEOSGeometry *g);
1273
1383
 
1384
+ /** Change behaviour of \ref GEOSVoronoiDiagram */
1385
+ enum GEOSVoronoiFlags
1386
+ {
1387
+ /** Return only edges of the Voronoi cells, as a MultiLineString **/
1388
+ GEOS_VORONOI_ONLY_EDGES = 1,
1389
+ /** Preserve order of inputs, such that the nth cell in the result corresponds
1390
+ * to the nth vertex in the input. If this cannot be done, such as for inputs
1391
+ * that contain repeated points, \ref GEOSVoronoiDiagram will return NULL. **/
1392
+ GEOS_VORONOI_PRESERVE_ORDER = 2
1393
+ };
1394
+
1274
1395
  /** \see GEOSVoronoiDiagram */
1275
1396
  extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
1276
1397
  GEOSContextHandle_t extHandle,
@@ -1754,6 +1875,16 @@ extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1754
1875
  GEOSContextHandle_t handle,
1755
1876
  const GEOSGeometry* g, int n);
1756
1877
 
1878
+ /** \see GEOSGetNumCurves */
1879
+ extern int GEOS_DLL GEOSGetNumCurves_r(
1880
+ GEOSContextHandle_t handle,
1881
+ const GEOSGeometry* g);
1882
+
1883
+ /** \see GEOSGetCurveN */
1884
+ extern const GEOSGeometry GEOS_DLL *GEOSGetCurveN_r(
1885
+ GEOSContextHandle_t handle,
1886
+ const GEOSGeometry* g, int n);
1887
+
1757
1888
  /** \see GEOSNormalize */
1758
1889
  extern int GEOS_DLL GEOSNormalize_r(
1759
1890
  GEOSContextHandle_t handle,
@@ -1790,6 +1921,48 @@ extern double GEOS_DLL GEOSGeom_getPrecision_r(
1790
1921
  GEOSContextHandle_t handle,
1791
1922
  const GEOSGeometry *g);
1792
1923
 
1924
+ /** \see GEOSCurveToLine */
1925
+ extern GEOSGeometry GEOS_DLL *GEOSCurveToLine_r(
1926
+ GEOSContextHandle_t handle,
1927
+ const GEOSGeometry* g,
1928
+ const GEOSCurveToLineParams* params);
1929
+
1930
+ /** \see GEOSCurveToLineParams_setMaxStepDegrees */
1931
+ extern int GEOS_DLL GEOSCurveToLineParams_setMaxStepDegrees_r(
1932
+ GEOSContextHandle_t extHandle,
1933
+ GEOSCurveToLineParams* params,
1934
+ double tolerance);
1935
+
1936
+ /** \see GEOSCurveToLineParams_setMaxDeviation */
1937
+ extern int GEOS_DLL GEOSCurveToLineParams_setMaxDeviation_r(
1938
+ GEOSContextHandle_t extHandle,
1939
+ GEOSCurveToLineParams* params,
1940
+ double tolerance);
1941
+
1942
+ /** \see GEOSLineToCurve */
1943
+ extern GEOSGeometry GEOS_DLL *GEOSLineToCurve_r(
1944
+ GEOSContextHandle_t handle,
1945
+ const GEOSGeometry* g,
1946
+ const GEOSLineToCurveParams* params);
1947
+
1948
+ /** \see GEOSLineToCurveParams_setRadiusTolerance */
1949
+ extern int GEOS_DLL GEOSLineToCurveParams_setRadiusTolerance_r(
1950
+ GEOSContextHandle_t extHandle,
1951
+ GEOSLineToCurveParams* params,
1952
+ double tolerance);
1953
+
1954
+ /** \see GEOSLineToCurveParams_setMaxStepDegrees */
1955
+ extern int GEOS_DLL GEOSLineToCurveParams_setMaxStepDegrees_r(
1956
+ GEOSContextHandle_t extHandle,
1957
+ GEOSLineToCurveParams* params,
1958
+ double tolerance);
1959
+
1960
+ /** \see GEOSLineToCurveParams_setMaxAngleDifferenceDegrees */
1961
+ extern int GEOS_DLL GEOSLineToCurveParams_setMaxAngleDifferenceDegrees_r(
1962
+ GEOSContextHandle_t extHandle,
1963
+ GEOSLineToCurveParams* params,
1964
+ double tolerance);
1965
+
1793
1966
  /** \see GEOSGetNumInteriorRings */
1794
1967
  extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1795
1968
  GEOSContextHandle_t handle,
@@ -1945,6 +2118,15 @@ extern int GEOS_DLL GEOSHausdorffDistance_r(
1945
2118
  const GEOSGeometry *g2,
1946
2119
  double *dist);
1947
2120
 
2121
+ /** \see GEOSHausdorffDistanceWithPoints */
2122
+ extern int GEOS_DLL GEOSHausdorffDistanceWithPoints_r(
2123
+ GEOSContextHandle_t handle,
2124
+ const GEOSGeometry *g1,
2125
+ const GEOSGeometry *g2,
2126
+ double *dist,
2127
+ double *p1x, double *p1y,
2128
+ double *p2x, double *p2y);
2129
+
1948
2130
  /** \see GEOSHausdorffDistanceDensify */
1949
2131
  extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(
1950
2132
  GEOSContextHandle_t handle,
@@ -1952,6 +2134,15 @@ extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(
1952
2134
  const GEOSGeometry *g2,
1953
2135
  double densifyFrac, double *dist);
1954
2136
 
2137
+ /** \see GEOSHausdorffDistanceDensifyWithPoints */
2138
+ extern int GEOS_DLL GEOSHausdorffDistanceDensifyWithPoints_r(
2139
+ GEOSContextHandle_t handle,
2140
+ const GEOSGeometry *g1,
2141
+ const GEOSGeometry *g2,
2142
+ double densifyFrac, double* dist,
2143
+ double *p1x, double *p1y,
2144
+ double *p2x, double *p2y);
2145
+
1955
2146
  /** \see GEOSFrechetDistance */
1956
2147
  extern int GEOS_DLL GEOSFrechetDistance_r(
1957
2148
  GEOSContextHandle_t handle,
@@ -2807,7 +2998,7 @@ extern GEOSGeometry GEOS_DLL *GEOSGeom_createCircularString(GEOSCoordSequence* s
2807
2998
  * Caller is responsible for freeing with GEOSGeom_destroy().
2808
2999
  * \since 3.13
2809
3000
  */
2810
- extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCircularString();
3001
+ extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCircularString(void);
2811
3002
 
2812
3003
  /**
2813
3004
  * Creates a CompoundCurve geometry.
@@ -2826,7 +3017,7 @@ extern GEOSGeometry GEOS_DLL *GEOSGeom_createCompoundCurve(GEOSGeometry** curves
2826
3017
  * Caller is responsible for freeing with GEOSGeom_destroy().
2827
3018
  * \since 3.13
2828
3019
  */
2829
- extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCompoundCurve();
3020
+ extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCompoundCurve(void);
2830
3021
 
2831
3022
  /**
2832
3023
  * Creates a CurvePolygon geometry from ring geometries.
@@ -2852,7 +3043,7 @@ extern GEOSGeometry GEOS_DLL *GEOSGeom_createCurvePolygon(
2852
3043
  * Caller is responsible for freeing with GEOSGeom_destroy().
2853
3044
  * \since 3.13
2854
3045
  */
2855
- extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCurvePolygon();
3046
+ extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCurvePolygon(void);
2856
3047
 
2857
3048
  /**
2858
3049
  * Create a geometry collection.
@@ -3012,6 +3203,33 @@ extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
3012
3203
  const GEOSGeometry* g,
3013
3204
  int n);
3014
3205
 
3206
+ /**
3207
+ * Returns the number of simple curves in a CompoundCurve.
3208
+ * Returns 1 for a non-empty LineString/CircularString, and 0
3209
+ * for other inputs.
3210
+ * \param g Input geometry
3211
+ * \return Number of child curves in this geometry
3212
+ * \since 3.15
3213
+ */
3214
+ extern int GEOS_DLL GEOSGetNumCurves(const GEOSGeometry* g);
3215
+
3216
+ /**
3217
+ * Returns the specified sub-curve of a geometry. For a simple curve type
3218
+ * (LineString/CircularString), returns a pointer to the input.
3219
+ * Returns NULL for non-curve types (dimension != 1).
3220
+ *
3221
+ * Returned object is a pointer to internal storage and must NOT be destroyed
3222
+ * directly.
3223
+
3224
+ * \param g Input geometry
3225
+ * \param n Sub-curve index, zero-based
3226
+ * \return A const \ref GEOSGeometry, or NULL
3227
+ * \since 3.15
3228
+ */
3229
+ extern const GEOSGeometry GEOS_DLL *GEOSGetCurveN(
3230
+ const GEOSGeometry* g,
3231
+ int n);
3232
+
3015
3233
  /**
3016
3234
  * Read the currently set precision value from the
3017
3235
  * geometry and returns the grid size if it is a fixed
@@ -3033,9 +3251,12 @@ extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
3033
3251
  extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
3034
3252
 
3035
3253
  /**
3036
- * Returns the number of points, for a LineString input, or
3037
- * an exception otherwise.
3038
- * \param g Input LineString geometry
3254
+ * Return the number of points in a linear geometry.
3255
+ *
3256
+ * CircularString inputs are supported since GEOS 3.14.
3257
+ * CompoundCurve inputs are supported since GEOS 3.15.
3258
+ *
3259
+ * \param g Input geometry, must be a LineString, CircularString, or CompoundCurve
3039
3260
  * \return Number of points, -1 on exception
3040
3261
  * \since 2.2
3041
3262
  */
@@ -3119,7 +3340,7 @@ extern int GEOS_DLL GEOSGetNumCoordinates(
3119
3340
 
3120
3341
  /**
3121
3342
  * Return the coordinate sequence underlying the
3122
- * given geometry (Must be a LineString, LinearRing or Point).
3343
+ * given geometry (Must be a LineString, LinearRing, CircularString, or Point).
3123
3344
  * Do not directly free the coordinate sequence, it is owned by
3124
3345
  * the parent geometry.
3125
3346
  * \param g Input geometry
@@ -3132,9 +3353,9 @@ extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
3132
3353
  /**
3133
3354
  * Return the planar dimensionality of the geometry.
3134
3355
  *
3135
- * - 0 for point, multipoint
3136
- * - 1 for linestring, multilinestring
3137
- * - 2 for polygon, multipolygon
3356
+ * - 0 for Point, MultiPoint
3357
+ * - 1 for LineString, MultiLineString, CircularString, CompoundCurve, MultiCurve
3358
+ * - 2 for Polygon, MultiPolygon, CurvePolygon, MultiSurface
3138
3359
  *
3139
3360
  * \see geos::geom::Dimension::DimensionType
3140
3361
  * \param g Input geometry
@@ -3148,7 +3369,8 @@ extern int GEOS_DLL GEOSGeom_getDimensions(
3148
3369
  * Return the cartesian dimension of the geometry.
3149
3370
  *
3150
3371
  * - 2 for XY data
3151
- * - 3 for XYZ data
3372
+ * - 3 for XYZ or XYM data
3373
+ * - 4 for XYZM data
3152
3374
  *
3153
3375
  * \param g Input geometry
3154
3376
  * \return The dimension
@@ -3159,7 +3381,12 @@ extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
3159
3381
  const GEOSGeometry* g);
3160
3382
 
3161
3383
  /**
3162
- * Finds the minimum X value in the geometry.
3384
+ * Gets the minimum X value of the geometry's envelope.
3385
+ * For linear geometry types, this is the same as the minimum X
3386
+ * coordinate value.
3387
+ *
3388
+ * Curved geometry types are supported since GEOS 3.13.
3389
+ *
3163
3390
  * \param[in] g Input geometry
3164
3391
  * \param[out] value Pointer to place result
3165
3392
  * \return 0 on exception
@@ -3169,7 +3396,12 @@ extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
3169
3396
  extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
3170
3397
 
3171
3398
  /**
3172
- * Finds the minimum Y value in the geometry.
3399
+ * Gets the minimum Y value of the geometry's envelope.
3400
+ * For linear geometry types, this is the same as the minimum Y
3401
+ * coordinate value.
3402
+ *
3403
+ * Curved geometry types are supported since GEOS 3.13.
3404
+ *
3173
3405
  * \param[in] g Input geometry
3174
3406
  * \param[out] value Pointer to place result
3175
3407
  * \return 0 on exception
@@ -3179,7 +3411,12 @@ extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
3179
3411
  extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
3180
3412
 
3181
3413
  /**
3182
- * Finds the maximum X value in the geometry.
3414
+ * Get the maximum X value of the geometry's envelope.
3415
+ * For linear geometry types, this is the same as the maximum X
3416
+ * coordinate value.
3417
+ *
3418
+ * Curved geometry types are supported since GEOS 3.13.
3419
+ *
3183
3420
  * \param[in] g Input geometry
3184
3421
  * \param[out] value Pointer to place result
3185
3422
  * \return 0 on exception
@@ -3189,7 +3426,12 @@ extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
3189
3426
  extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
3190
3427
 
3191
3428
  /**
3192
- * Finds the maximum Y value in the geometry.
3429
+ * Gets the maximum Y value of the geometry's envelope.
3430
+ * For linear geometry types, this is the same as the maximum Y
3431
+ * coordinate value.
3432
+ *
3433
+ * Curved geometry types are supported since GEOS 3.13.
3434
+ *
3193
3435
  * \param[in] g Input geometry
3194
3436
  * \param[out] value Pointer to place result
3195
3437
  * \return 0 on exception
@@ -3199,9 +3441,13 @@ extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
3199
3441
  extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
3200
3442
 
3201
3443
  /**
3202
- * Finds the extent (minimum and maximum X and Y value) of the geometry.
3444
+ * Finds the extent (minimum and maximum X and Y value) of the
3445
+ * geometry's envelope.
3446
+ *
3203
3447
  * Raises an exception for empty geometry input.
3204
3448
  *
3449
+ * Curved geometry types are supported since GEOS 3.13.
3450
+ *
3205
3451
  * \param[in] g Input geometry
3206
3452
  * \param[out] xmin Pointer to place result for minimum X value
3207
3453
  * \param[out] ymin Pointer to place result for minimum Y value
@@ -3219,8 +3465,12 @@ extern int GEOS_DLL GEOSGeom_getExtent(
3219
3465
  double* ymax);
3220
3466
 
3221
3467
  /**
3222
- * Return the N'th point of a LineString
3223
- * \param g Input geometry, must be a LineString
3468
+ * Return the N'th point of a linear geometry.
3469
+ *
3470
+ * CircularString inputs are supported since GEOS 3.14.
3471
+ * CompoundCurve inputs are supported since GEOS 3.15.
3472
+ *
3473
+ * \param g Input geometry, must be a LineString, CircularString, or CompoundCurve
3224
3474
  * \param n Index of desired point (zero based)
3225
3475
  * \return A Point geometry.
3226
3476
  * Caller must free with GEOSGeom_destroy()
@@ -3230,8 +3480,12 @@ extern int GEOS_DLL GEOSGeom_getExtent(
3230
3480
  extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
3231
3481
 
3232
3482
  /**
3233
- * Return the first point of a LineString
3234
- * \param g Input geometry, must be a LineString
3483
+ * Return the first point of a linear geometry.
3484
+ *
3485
+ * CircularString inputs are supported since GEOS 3.14.
3486
+ * CompoundCurve inputs are supported since GEOS 3.15.
3487
+ *
3488
+ * \param g Input geometry, must be a LineString, CircularString, or CompoundCurve
3235
3489
  * \return A Point geometry.
3236
3490
  * Caller must free with GEOSGeom_destroy()
3237
3491
  * NULL on exception.
@@ -3240,8 +3494,12 @@ extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
3240
3494
  extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(const GEOSGeometry *g);
3241
3495
 
3242
3496
  /**
3243
- * Return the last point of a LineString
3244
- * \param g Input geometry, must be a LineString
3497
+ * Return the last point of a linear geometry.
3498
+ *
3499
+ * CircularString inputs are supported since GEOS 3.14.
3500
+ * CompoundCurve inputs are supported since GEOS 3.15.
3501
+ *
3502
+ * \param g Input geometry, must be a LineString, CircularString, or CompoundCurve
3245
3503
  * \return A Point geometry.
3246
3504
  * Caller must free with GEOSGeom_destroy()
3247
3505
  * NULL on exception.
@@ -3249,7 +3507,6 @@ extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(const GEOSGeometry *g);
3249
3507
  */
3250
3508
  extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(const GEOSGeometry *g);
3251
3509
 
3252
-
3253
3510
  /**
3254
3511
  * Tests whether the input geometry is empty. If the geometry or any
3255
3512
  * component is non-empty, the geometry is non-empty. An empty geometry
@@ -3263,7 +3520,8 @@ extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
3263
3520
  /**
3264
3521
  * Tests whether the input geometry is a ring. Rings are
3265
3522
  * linestrings, without self-intersections,
3266
- * with start and end point being identical.
3523
+ * with start and end point having the same XY values.
3524
+ * Z and M values are not considered.
3267
3525
  * \param g The geometry to test
3268
3526
  * \return 1 on true, 0 on false, 2 on exception
3269
3527
  * \since 2.2
@@ -3289,8 +3547,14 @@ extern char GEOS_DLL GEOSHasM(const GEOSGeometry* g);
3289
3547
 
3290
3548
  /**
3291
3549
  * Tests whether the input geometry is closed.
3292
- * A closed geometry is a linestring or multilinestring
3293
- * with the start and end points being the same.
3550
+ * A closed geometry is either:
3551
+ * - a non-empty LineString, CircularString, or CompoundCurve whose
3552
+ * start and end points having the same XY values; or
3553
+ * - a non-empty MultiLineString or MultiCurve whose elements are
3554
+ * all closed.
3555
+ *
3556
+ * Z and M values are not considered.
3557
+ *
3294
3558
  * \param g The geometry to test
3295
3559
  * \return 1 on true, 0 on false, 2 on exception
3296
3560
  * \since 3.3
@@ -3334,7 +3598,11 @@ extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
3334
3598
  * - Rings start with their smallest coordinate
3335
3599
  * (using XY ordering)
3336
3600
  * - Polygon shell rings are oriented CW, and holes CCW
3337
- * - Collection elements are sorted by their first coordinate
3601
+ * - Collection elements are sorted by their geometry type and first coordinate
3602
+ *
3603
+ * Coordinate Z and M values are not modified during normalization.
3604
+ *
3605
+ * Curved geometry types are supported since GEOS 3.15.
3338
3606
  *
3339
3607
  * Use before calling \ref GEOSEqualsExact to avoid false "not equal" results.
3340
3608
  * \param g Input geometry
@@ -3346,6 +3614,7 @@ extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
3346
3614
  /**
3347
3615
  * Enforce a ring orientation on all polygonal elements in the input geometry.
3348
3616
  * Non-polygonal geometries will not be modified.
3617
+ * Coordinate Z and M values are not modified.
3349
3618
  *
3350
3619
  * \param g Input geometry
3351
3620
  * \param exteriorCW if 1, exterior rings will be clockwise and interior rings
@@ -3368,6 +3637,13 @@ and geometric quality.
3368
3637
  /**
3369
3638
  * Tests whether the input geometry is "simple". Mostly relevant for
3370
3639
  * linestrings. A "simple" linestring has no self-intersections.
3640
+ * Z and M values are not considered.
3641
+ *
3642
+ * This function does not support curved types directly. If curve-to-line
3643
+ * conversion parameters are registered with the context, curved
3644
+ * inputs will be automatically converted to lines. Otherwise, the
3645
+ * operation will fail.
3646
+ *
3371
3647
  * \param g The geometry to test
3372
3648
  * \return 1 on true, 0 on false, 2 on exception
3373
3649
  * \since 2.2
@@ -3378,9 +3654,14 @@ extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
3378
3654
  * In one step, calculate and return whether a geometry is simple
3379
3655
  * and one more more points at which the geometry self-intersects
3380
3656
  * at interior points.
3381
- * Caller has the responsibility to destroy 'location' with
3657
+ * Caller has the responsibility to destroy 'location' with
3382
3658
  * GEOSGeom_destroy()
3383
3659
  *
3660
+ * This function does not support curved types directly. If curve-to-line
3661
+ * conversion parameters are registered with the context, curved
3662
+ * inputs will be automatically converted to lines. Otherwise, the
3663
+ * operation will fail.
3664
+ *
3384
3665
  * \param g The geometry to test
3385
3666
  * \param findAllLocations Whether to return all self-intersection locations, or just one
3386
3667
  * \param locations A pointer in which the location GEOSGeometry will be placed
@@ -3401,6 +3682,13 @@ extern char GEOS_DLL GEOSisSimpleDetail(
3401
3682
  * contained within exterior rings.
3402
3683
  * - Multi-polygon components may not touch or overlap.
3403
3684
  *
3685
+ * Z and M values are not considered.
3686
+ *
3687
+ * This function does not support curved types directly. If curve-to-line
3688
+ * conversion parameters are registered with the context, curved
3689
+ * inputs will be automatically converted to lines. Otherwise, the
3690
+ * operation will fail.
3691
+ *
3404
3692
  * \param g The geometry to test
3405
3693
  * \return 1 on true, 0 on false, 2 on exception
3406
3694
  * \see geos::operation::valid::isValidOp
@@ -3411,6 +3699,12 @@ extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
3411
3699
  /**
3412
3700
  * Return the human readable reason a geometry is invalid,
3413
3701
  * "Valid Geometry" string otherwise, or NULL on exception.
3702
+ *
3703
+ * This function does not support curved types directly. If curve-to-line
3704
+ * conversion parameters are registered with the context, curved
3705
+ * inputs will be automatically converted to lines. Otherwise, the
3706
+ * operation will fail.
3707
+ *
3414
3708
  * \param g The geometry to test
3415
3709
  * \return A string with the reason, NULL on exception.
3416
3710
  * Caller must GEOSFree() their result.
@@ -3425,6 +3719,12 @@ extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
3425
3719
  * rules are broken.
3426
3720
  * Caller has the responsibility to destroy 'reason' with GEOSFree()
3427
3721
  * and 'location' with GEOSGeom_destroy()
3722
+ *
3723
+ * This function does not support curved types directly. If curve-to-line
3724
+ * conversion parameters are registered with the context, curved
3725
+ * inputs will be automatically converted to lines. Otherwise, the
3726
+ * operation will fail.
3727
+ *
3428
3728
  * \param g The geometry to test
3429
3729
  * \param flags A value from the \ref GEOSValidFlags enum
3430
3730
  * \param reason A pointer in which the reason string will be places
@@ -3441,6 +3741,16 @@ extern char GEOS_DLL GEOSisValidDetail(
3441
3741
 
3442
3742
  /**
3443
3743
  * Repair an invalid geometry, returning a valid output.
3744
+ *
3745
+ * This function does not support curved types directly. If curve-to-line
3746
+ * conversion parameters are registered with the context, curved
3747
+ * inputs will be automatically converted to lines. Otherwise, the
3748
+ * operation will fail.
3749
+ * This function outputs linear geometry types only. If line-to-curve
3750
+ * conversion parameters are registered with the context, and a
3751
+ * curved input was provided, outputs will be automatically
3752
+ * converted to curved types.
3753
+ *
3444
3754
  * \param g The geometry to repair
3445
3755
  * \return The repaired geometry. Caller must free with GEOSGeom_destroy().
3446
3756
  *
@@ -3452,6 +3762,16 @@ extern GEOSGeometry GEOS_DLL *GEOSMakeValid(
3452
3762
  /**
3453
3763
  * Repair an invalid geometry, returning a valid output, using the
3454
3764
  * indicated GEOSMakeValidMethods algorithm and options.
3765
+ *
3766
+ * This function does not support curved types directly. If curve-to-line
3767
+ * conversion parameters are registered with the context, curved
3768
+ * inputs will be automatically converted to lines. Otherwise, the
3769
+ * operation will fail.
3770
+ * This function outputs linear geometry types only. If line-to-curve
3771
+ * conversion parameters are registered with the context, and a
3772
+ * curved input was provided, outputs will be automatically
3773
+ * converted to curved types.
3774
+ *
3455
3775
  * \param g is the geometry to test.
3456
3776
  * \param makeValidParams is a GEOSMakeValidParams with the desired parameters set on it.
3457
3777
  * \return A repaired geometry. Caller must free with GEOSGeom_destroy().
@@ -3522,6 +3842,11 @@ extern int GEOS_DLL GEOSMakeValidParams_setKeepCollapsed(
3522
3842
  * If the minimum clearance cannot be defined for a geometry (such as with a single point, or a multipoint
3523
3843
  * whose points are identical, a value of Infinity will be calculated.
3524
3844
  *
3845
+ * This function does not support curved types directly. If curve-to-line
3846
+ * conversion parameters are registered with the context, curved
3847
+ * inputs will be automatically converted to lines. Otherwise, the
3848
+ * operation will fail.
3849
+ *
3525
3850
  * \param g the input geometry
3526
3851
  * \param d a double to which the result can be stored
3527
3852
  * \return 0 if no exception occurred.
@@ -3533,9 +3858,14 @@ extern int GEOS_DLL GEOSMakeValidParams_setKeepCollapsed(
3533
3858
  extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
3534
3859
 
3535
3860
  /**
3536
- * Returns a LineString whose endpoints define the minimum clearance of a geometry.
3861
+ * Returns a 2D LineString whose endpoints define the minimum clearance of a geometry.
3537
3862
  * If the geometry has no minimum clearance, an empty LineString will be returned.
3538
3863
  *
3864
+ * This function does not support curved types directly. If curve-to-line
3865
+ * conversion parameters are registered with the context, curved
3866
+ * inputs will be automatically converted to lines. Otherwise, the
3867
+ * operation will fail.
3868
+ *
3539
3869
  * \param g the input geometry
3540
3870
  * \return a linestring geometry, or NULL if an exception occurred.
3541
3871
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -3554,6 +3884,9 @@ extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(const GEOSGeometry* g);
3554
3884
  * result in an invalid geometry being returned. Be sure
3555
3885
  * to check and repair validity.
3556
3886
  *
3887
+ * Z and M coordinate values are preserved but are not considered when
3888
+ * determining if a point is repeated.
3889
+ *
3557
3890
  * \return A geometry with all points within the tolerance of each other removed.
3558
3891
  * \param g The geometry to filter
3559
3892
  * \param tolerance Remove all points within this distance of each other. Use 0.0 to remove only exactly repeated points.
@@ -3576,6 +3909,11 @@ extern GEOSGeometry GEOS_DLL *GEOSRemoveRepeatedPoints(
3576
3909
 
3577
3910
  /**
3578
3911
  * Calculate the area of a geometry.
3912
+ *
3913
+ * Curved geometry types are supported since GEOS 3.13.
3914
+ *
3915
+ * Area is calculated in the XY plane; Z and M values are ignored.
3916
+ *
3579
3917
  * \param[in] g Input geometry
3580
3918
  * \param[out] area Pointer to be filled in with area result
3581
3919
  * \return 1 on success, 0 on exception.
@@ -3587,6 +3925,10 @@ extern int GEOS_DLL GEOSArea(
3587
3925
 
3588
3926
  /**
3589
3927
  * Calculate the length of a geometry.
3928
+ *
3929
+ * Curved geometry types are supported since GEOS 3.13.
3930
+ *
3931
+ * Length is calculated in the XY plane; Z and M values are ignored.
3590
3932
  * \param[in] g Input geometry
3591
3933
  * \param[out] length Pointer to be filled in with length result
3592
3934
  * \return 1 on success, 0 on exception.
@@ -3597,8 +3939,13 @@ extern int GEOS_DLL GEOSLength(
3597
3939
  double *length);
3598
3940
 
3599
3941
  /**
3600
- * Calculate the length of a LineString.
3601
- * Only works for LineString inputs, returns exception otherwise.
3942
+ * Calculate the length of a LineString, CircularString, or CompoundCurve.
3943
+ *
3944
+ * Returns an exception if a different geometry type is provided.
3945
+ * Length is calculated in the XY plane; Z and M values are ignored.
3946
+ *
3947
+ * CircularString and CompoundCurve arguments are supported since
3948
+ * GEOS 3.15.
3602
3949
  *
3603
3950
  * \param[in] g Input geometry
3604
3951
  * \param[out] length Pointer to be filled in with length result
@@ -3620,9 +3967,17 @@ extern int GEOS_DLL GEOSGeomGetLength(
3620
3967
 
3621
3968
  /**
3622
3969
  * Calculate the distance between two geometries.
3970
+ * Distance is calculated in the XY plane; Z and M values are ignored.
3971
+ *
3972
+ * This function does not support curved types directly. If curve-to-line
3973
+ * conversion parameters are registered with the context, curved
3974
+ * inputs will be automatically converted to lines. Otherwise, the
3975
+ * operation will fail.
3976
+ *
3623
3977
  * \param[in] g1 Input geometry
3624
3978
  * \param[in] g2 Input geometry
3625
- * \param[out] dist Pointer to be filled in with distance result
3979
+ * \param[out] dist Pointer to be filled in with distance result. Positive
3980
+ * infinity is returned if one of the geometry is empty.
3626
3981
  * \return 1 on success, 0 on exception.
3627
3982
  * \since 2.2
3628
3983
  */
@@ -3634,6 +3989,13 @@ extern int GEOS_DLL GEOSDistance(
3634
3989
  /**
3635
3990
  * Test whether the distance between two geometries is
3636
3991
  * within the given dist.
3992
+ * Distance is calculated in the XY plane; Z and M values are ignored.
3993
+ *
3994
+ * This function does not support curved types directly. If curve-to-line
3995
+ * conversion parameters are registered with the context, curved
3996
+ * inputs will be automatically converted to lines. Otherwise, the
3997
+ * operation will fail.
3998
+ *
3637
3999
  * \param g1 Input geometry
3638
4000
  * \param g2 Input geometry
3639
4001
  * \param dist The max distance
@@ -3651,6 +4013,12 @@ extern char GEOS_DLL GEOSDistanceWithin(
3651
4013
  * indexed facet distance, which first indexes the geometries
3652
4014
  * internally, then calculates the distance. Useful when one
3653
4015
  * or both geometries is very large.
4016
+ *
4017
+ * This function does not support curved types directly. If curve-to-line
4018
+ * conversion parameters are registered with the context, curved
4019
+ * inputs will be automatically converted to lines. Otherwise, the
4020
+ * operation will fail.
4021
+ *
3654
4022
  * \param[in] g1 Input geometry
3655
4023
  * \param[in] g2 Input geometry
3656
4024
  * \param[out] dist Pointer to be filled in with distance result
@@ -3667,6 +4035,12 @@ extern int GEOS_DLL GEOSDistanceIndexed(
3667
4035
  /**
3668
4036
  * The closest points of the two geometries.
3669
4037
  * The first point comes from g1 geometry and the second point comes from g2.
4038
+ * Returned points will not have Z or M values.
4039
+ *
4040
+ * This function does not support curved types directly. If curve-to-line
4041
+ * conversion parameters are registered with the context, curved
4042
+ * inputs will be automatically converted to lines. Otherwise, the
4043
+ * operation will fail.
3670
4044
  *
3671
4045
  * \param[in] g1 Input geometry
3672
4046
  * \param[in] g2 Input geometry
@@ -3683,6 +4057,12 @@ extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
3683
4057
  * Calculate the Hausdorff distance between two geometries.
3684
4058
  * [Hausdorff distance](https://en.wikipedia.org/wiki/Hausdorff_distance)
3685
4059
  * is the largest distance between two geometries.
4060
+ *
4061
+ * This function does not support curved types directly. If curve-to-line
4062
+ * conversion parameters are registered with the context, curved
4063
+ * inputs will be automatically converted to lines. Otherwise, the
4064
+ * operation will fail.
4065
+ *
3686
4066
  * \param[in] g1 Input geometry
3687
4067
  * \param[in] g2 Input geometry
3688
4068
  * \param[out] dist Pointer to be filled in with distance result
@@ -3695,11 +4075,47 @@ extern int GEOS_DLL GEOSHausdorffDistance(
3695
4075
  const GEOSGeometry *g2,
3696
4076
  double *dist);
3697
4077
 
4078
+
4079
+ /**
4080
+ * Calculate the Hausdorff distance between two geometries and return
4081
+ * the coordinates of the points that determine the distance.
4082
+ *
4083
+ * This function does not support curved types directly. If curve-to-line
4084
+ * conversion parameters are registered with the context, curved
4085
+ * inputs will be automatically converted to lines. Otherwise, the
4086
+ * operation will fail.
4087
+ *
4088
+ * \param[in] g1 Input geometry
4089
+ * \param[in] g2 Input geometry
4090
+ * \param[out] dist Pointer to be filled in with distance result
4091
+ * \param[out] p1x X coordinate of point on g1
4092
+ * \param[out] p1y Y coordinate of point on g1
4093
+ * \param[out] p2x X coordinate of point on g2
4094
+ * \param[out] p2y Y coordinate of point on g2
4095
+ * \return 1 on success, 0 on exception.
4096
+ * \see geos::algorithm::distance::DiscreteHausdorffDistance
4097
+ * \since 3.15
4098
+ */
4099
+ extern int GEOS_DLL GEOSHausdorffDistanceWithPoints(
4100
+ const GEOSGeometry *g1,
4101
+ const GEOSGeometry *g2,
4102
+ double *dist,
4103
+ double *p1x, double *p1y,
4104
+ double *p2x, double *p2y);
4105
+
4106
+
4107
+
3698
4108
  /**
3699
4109
  * Calculate a more precise Hausdorff distance between two geometries,
3700
4110
  * by densifying the inputs before computation.
3701
4111
  * [Hausdorff distance](https://en.wikipedia.org/wiki/Hausdorff_distance)
3702
4112
  * is the largest distance between two geometries.
4113
+ *
4114
+ * This function does not support curved types directly. If curve-to-line
4115
+ * conversion parameters are registered with the context, curved
4116
+ * inputs will be automatically converted to lines. Otherwise, the
4117
+ * operation will fail.
4118
+ *
3703
4119
  * \param[in] g1 Input geometry
3704
4120
  * \param[in] g2 Input geometry
3705
4121
  * \param[in] densifyFrac The largest % of the overall line length that
@@ -3715,11 +4131,50 @@ extern int GEOS_DLL GEOSHausdorffDistanceDensify(
3715
4131
  double densifyFrac,
3716
4132
  double *dist);
3717
4133
 
4134
+ /**
4135
+ * Calculate a more precise Hausdorff distance between two geometries,
4136
+ * by densifying the inputs before computation and return the points
4137
+ * that determine the distance.
4138
+ * [Hausdorff distance](https://en.wikipedia.org/wiki/Hausdorff_distance)
4139
+ * is the largest distance between two geometries.
4140
+ *
4141
+ * This function does not support curved types directly. If curve-to-line
4142
+ * conversion parameters are registered with the context, curved
4143
+ * inputs will be automatically converted to lines. Otherwise, the
4144
+ * operation will fail.
4145
+ *
4146
+ * \param[in] g1 Input geometry
4147
+ * \param[in] g2 Input geometry
4148
+ * \param[in] densifyFrac The largest % of the overall line length that
4149
+ * any given two point segment should be.
4150
+ * \param[out] dist Pointer to be filled in with distance result
4151
+ * \param[out] p1x X coordinate of point on g1
4152
+ * \param[out] p1y Y coordinate of point on g1
4153
+ * \param[out] p2x X coordinate of point on g2
4154
+ * \param[out] p2y Y coordinate of point on g2
4155
+ * \return 1 on success, 0 on exception.
4156
+ * \see goes::algorithm::distance::DiscreteHausdorffDistance
4157
+ * \since 3.15
4158
+ */
4159
+ extern int GEOS_DLL GEOSHausdorffDistanceDensifyWithPoints(
4160
+ const GEOSGeometry *g1,
4161
+ const GEOSGeometry *g2,
4162
+ double densifyFrac,
4163
+ double *dist,
4164
+ double* p1x, double* p1y,
4165
+ double* p2x, double* p2y);
4166
+
3718
4167
  /**
3719
4168
  * Calculate the
3720
4169
  * [Frechet distance](https://en.wikipedia.org/wiki/Fr%C3%A9chet_distance)
3721
4170
  * between two geometries,
3722
4171
  * a similarity measure for linear features.
4172
+ *
4173
+ * This function does not support curved types directly. If curve-to-line
4174
+ * conversion parameters are registered with the context, curved
4175
+ * inputs will be automatically converted to lines. Otherwise, the
4176
+ * operation will fail.
4177
+ *
3723
4178
  * \param[in] g1 Input geometry
3724
4179
  * \param[in] g2 Input geometry
3725
4180
  * \param[out] dist Pointer to be filled in with distance result
@@ -3739,6 +4194,12 @@ extern int GEOS_DLL GEOSFrechetDistance(
3739
4194
  * between two geometries,
3740
4195
  * a similarity measure for linear features.
3741
4196
  * The inputs can be densified to provide a more accurate result.
4197
+ *
4198
+ * This function does not support curved types directly. If curve-to-line
4199
+ * conversion parameters are registered with the context, curved
4200
+ * inputs will be automatically converted to lines. Otherwise, the
4201
+ * operation will fail.
4202
+ *
3742
4203
  * \param[in] g1 Input geometry
3743
4204
  * \param[in] g2 Input geometry
3744
4205
  * \param[in] densifyFrac The largest % of the overall line length that
@@ -3766,6 +4227,12 @@ extern int GEOS_DLL GEOSFrechetDistanceDensify(
3766
4227
 
3767
4228
  /**
3768
4229
  * Distance of point projected onto line from the start of the line.
4230
+ *
4231
+ * This function does not support curved types directly. If curve-to-line
4232
+ * conversion parameters are registered with the context, curved
4233
+ * inputs will be automatically converted to lines. Otherwise, the
4234
+ * operation will fail.
4235
+ *
3769
4236
  * \param line linear target of projection
3770
4237
  * \param point point to be projected onto 'g'
3771
4238
  * \return distance along line that point projects to, -1 on exception
@@ -3777,10 +4244,18 @@ extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
3777
4244
  const GEOSGeometry* point);
3778
4245
 
3779
4246
  /**
3780
- * Measuring from start of line, return point that is distance
3781
- * the start. Line parameter must be a LineString.
3782
- * The returned point is not guaranteed to intersect the line due to limitations
3783
- * of floating point calculations.
4247
+ * Return the point that is the specified 2D distance along a LineString from the start.
4248
+ *
4249
+ * If applicable, the Z value of the returned point will be interpolated from the input line.
4250
+ * Since GEOS 3.15, the M value will also be interpolated.
4251
+ *
4252
+ * This function does not support curved types directly. If curve-to-line
4253
+ * conversion parameters are registered with the context, curved
4254
+ * inputs will be automatically converted to lines. Otherwise, the
4255
+ * operation will fail.
4256
+ *
4257
+ * If the (converted) input is not a LineString, NULL will be returned.
4258
+ *
3784
4259
  * \param line linear target of projection
3785
4260
  * \param d distance from start of line to created point
3786
4261
  * \return The point \ref GEOSGeometry that is distance from the start of line.
@@ -3794,6 +4269,12 @@ extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
3794
4269
  * Project point to line and calculate the **proportion** of
3795
4270
  * the line the point is from the start. For example, a point that
3796
4271
  * projects to the middle of a line would be return 0.5.
4272
+ *
4273
+ * This function does not support curved types directly. If curve-to-line
4274
+ * conversion parameters are registered with the context, curved
4275
+ * inputs will be automatically converted to lines. Otherwise, the
4276
+ * operation will fail.
4277
+ *
3797
4278
  * \param line linear target of projection
3798
4279
  * \param point the point to project
3799
4280
  * \return The proportion of the overall line length that the projected
@@ -3804,8 +4285,19 @@ extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
3804
4285
  const GEOSGeometry* point);
3805
4286
 
3806
4287
  /**
3807
- * Measuring from start of line, return point that is a proportion
3808
- * the start. Line parameter must be a LineString.
4288
+ * Measuring from start of a LineString, return the point at the specified
4289
+ * fraction of the total length.
4290
+ *
4291
+ * If applicable, the Z value of the returned point will be interpolated from the input line.
4292
+ * Since GEOS 3.15, the M value will also be interpolated.
4293
+ *
4294
+ * This function does not support curved types directly. If curve-to-line
4295
+ * conversion parameters are registered with the context, curved
4296
+ * inputs will be automatically converted to lines. Otherwise, the
4297
+ * operation will fail.
4298
+ *
4299
+ * If the (converted) input is not a LineString, NULL will be returned.
4300
+ *
3809
4301
  * \param line linear target of projection
3810
4302
  * \param proportion The proportion from the start of line to created point
3811
4303
  * \return The point \ref GEOSGeometry that is distance from the start of line.
@@ -3828,6 +4320,16 @@ extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
3828
4320
  /**
3829
4321
  * Returns the intersection of two geometries: the set of points
3830
4322
  * that fall within **both** geometries.
4323
+ *
4324
+ * This function does not support curved types directly. If curve-to-line
4325
+ * conversion parameters are registered with the context, curved
4326
+ * inputs will be automatically converted to lines. Otherwise, the
4327
+ * operation will fail.
4328
+ * This function outputs linear geometry types only. If line-to-curve
4329
+ * conversion parameters are registered with the context, and a
4330
+ * curved input was provided, outputs will be automatically
4331
+ * converted to curved types.
4332
+ *
3831
4333
  * \param g1 one of the geometries
3832
4334
  * \param g2 the other geometry
3833
4335
  * \return A newly allocated geometry of the intersection. NULL on exception.
@@ -3856,6 +4358,16 @@ extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const
3856
4358
  /**
3857
4359
  * Returns the difference of two geometries A and B: the set of points
3858
4360
  * that fall within A but **not** within B.
4361
+ *
4362
+ * This function does not support curved types directly. If curve-to-line
4363
+ * conversion parameters are registered with the context, curved
4364
+ * inputs will be automatically converted to lines. Otherwise, the
4365
+ * operation will fail.
4366
+ * This function outputs linear geometry types only. If line-to-curve
4367
+ * conversion parameters are registered with the context, and a
4368
+ * curved input was provided, outputs will be automatically
4369
+ * converted to curved types.
4370
+ *
3859
4371
  * \param ga the base geometry
3860
4372
  * \param gb the geometry to subtract from it
3861
4373
  * \return A newly allocated geometry of the difference. NULL on exception.
@@ -3891,6 +4403,16 @@ extern GEOSGeometry GEOS_DLL *GEOSDifferencePrec(
3891
4403
  * Returns the symmetric difference of two geometries A and B: the set of points
3892
4404
  * that fall in A but **not** within B and the set of points that fall in B but
3893
4405
  * **not** in A.
4406
+ *
4407
+ * This function does not support curved types directly. If curve-to-line
4408
+ * conversion parameters are registered with the context, curved
4409
+ * inputs will be automatically converted to lines. Otherwise, the
4410
+ * operation will fail.
4411
+ * This function outputs linear geometry types only. If line-to-curve
4412
+ * conversion parameters are registered with the context, and a
4413
+ * curved input was provided, outputs will be automatically
4414
+ * converted to curved types.
4415
+ *
3894
4416
  * \param ga geometry A
3895
4417
  * \param gb geometry B
3896
4418
  * \return A newly allocated geometry of the symmetric difference. NULL on exception.
@@ -3926,6 +4448,16 @@ extern GEOSGeometry GEOS_DLL *GEOSSymDifferencePrec(
3926
4448
  /**
3927
4449
  * Returns the union of two geometries A and B: the set of points
3928
4450
  * that fall in A **or** within B.
4451
+ *
4452
+ * This function does not support curved types directly. If curve-to-line
4453
+ * conversion parameters are registered with the context, curved
4454
+ * inputs will be automatically converted to lines. Otherwise, the
4455
+ * operation will fail.
4456
+ * This function outputs linear geometry types only. If line-to-curve
4457
+ * conversion parameters are registered with the context, and a
4458
+ * curved input was provided, outputs will be automatically
4459
+ * converted to curved types.
4460
+ *
3929
4461
  * \param ga geometry A
3930
4462
  * \param gb geometry B
3931
4463
  * \return A newly allocated geometry of the union. NULL on exception.
@@ -3961,6 +4493,16 @@ extern GEOSGeometry GEOS_DLL *GEOSUnionPrec(
3961
4493
  * Returns the union of all components of a single geometry. Usually
3962
4494
  * used to convert a collection into the smallest set of polygons
3963
4495
  * that cover the same area.
4496
+ *
4497
+ * This function does not support curved types directly. If curve-to-line
4498
+ * conversion parameters are registered with the context, curved
4499
+ * inputs will be automatically converted to lines. Otherwise, the
4500
+ * operation will fail.
4501
+ * This function outputs linear geometry types only. If line-to-curve
4502
+ * conversion parameters are registered with the context, and a
4503
+ * curved input was provided, outputs will be automatically
4504
+ * converted to curved types.
4505
+ *
3964
4506
  * \param g The input geometry
3965
4507
  * \return A newly allocated geometry of the union. NULL on exception.
3966
4508
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -3993,6 +4535,16 @@ extern GEOSGeometry GEOS_DLL *GEOSUnaryUnionPrec(
3993
4535
  * Optimized union algorithm for inputs that can be divided into subsets
3994
4536
  * that do not intersect. If there is only one such subset, performance
3995
4537
  * can be expected to be worse than GEOSUnionaryUnion.
4538
+ *
4539
+ * This function does not support curved types directly. If curve-to-line
4540
+ * conversion parameters are registered with the context, curved
4541
+ * inputs will be automatically converted to lines. Otherwise, the
4542
+ * operation will fail.
4543
+ * This function outputs linear geometry types only. If line-to-curve
4544
+ * conversion parameters are registered with the context, and a
4545
+ * curved input was provided, outputs will be automatically
4546
+ * converted to curved types.
4547
+ *
3996
4548
  * \param g The input geometry
3997
4549
  * \return A newly allocated geometry of the union, or NULL on exception.
3998
4550
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4005,6 +4557,16 @@ extern GEOSGeometry GEOS_DLL *GEOSDisjointSubsetUnion(const GEOSGeometry *g);
4005
4557
  * Intersection optimized for a rectangular clipping polygon.
4006
4558
  * Supposed to be faster than using GEOSIntersection(). Not
4007
4559
  * guaranteed to return valid results.
4560
+ *
4561
+ * This function does not support curved types directly. If curve-to-line
4562
+ * conversion parameters are registered with the context, curved
4563
+ * inputs will be automatically converted to lines. Otherwise, the
4564
+ * operation will fail.
4565
+ * This function outputs linear geometry types only. If line-to-curve
4566
+ * conversion parameters are registered with the context, and a
4567
+ * curved input was provided, outputs will be automatically
4568
+ * converted to curved types.
4569
+ *
4008
4570
  * \param g The input geometry to be clipped
4009
4571
  * \param xmin Left bound of clipping rectangle
4010
4572
  * \param ymin Lower bound of clipping rectangle
@@ -4021,9 +4583,55 @@ extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
4021
4583
  double xmin, double ymin,
4022
4584
  double xmax, double ymax);
4023
4585
 
4586
+ /**
4587
+ * Compute the intersection of a geometry with each polygon in
4588
+ * a rectangular grid.
4589
+ *
4590
+ * This function does not support curved types directly. If curve-to-line
4591
+ * conversion parameters are registered with the context, curved
4592
+ * inputs will be automatically converted to lines. Otherwise, the
4593
+ * operation will fail.
4594
+ * This function outputs linear geometry types only. If line-to-curve
4595
+ * conversion parameters are registered with the context, and a
4596
+ * curved input was provided, outputs will be automatically
4597
+ * converted to curved types.
4598
+ *
4599
+ * \param g The input geometry to be clipped
4600
+ * \param xmin Left bound of grd
4601
+ * \param ymin Lower bound of grid
4602
+ * \param xmax Right bound of grid
4603
+ * \param ymax Upper bound of grid
4604
+ * \param nx number of columns in grid
4605
+ * \param ny number of rows in grid
4606
+ * \param includeExterior whether to include portions of the
4607
+ input geometry that do not intersect the grid in
4608
+ the returned result.
4609
+ * \return A geometry collection whose components represent the
4610
+ * intersection with each cell in the grid.
4611
+ * Caller is responsible for freeing with GEOSGeom_destroy().
4612
+ *
4613
+ * This algorithm operates in 2D only; Z and M values in the input will be dropped.
4614
+
4615
+ * \see GEOSGetGridIntersectionFractions
4616
+ *
4617
+ * \since 3.15.0
4618
+ */
4619
+ extern GEOSGeometry GEOS_DLL *GEOSSubdivideByGrid(
4620
+ const GEOSGeometry* g,
4621
+ double xmin, double ymin,
4622
+ double xmax, double ymax,
4623
+ unsigned nx, unsigned ny,
4624
+ int includeExterior);
4625
+
4024
4626
  /**
4025
4627
  * Determine the fraction of each cell in a rectangular grid
4026
4628
  * that is covered by a polygon.
4629
+ *
4630
+ * This function does not support curved types directly. If curve-to-line
4631
+ * conversion parameters are registered with the context, curved
4632
+ * inputs will be automatically converted to lines. Otherwise, the
4633
+ * operation will fail.
4634
+ *
4027
4635
  * \param g The input geometry
4028
4636
  * \param xmin Left bound of grd
4029
4637
  * \param ymin Lower bound of grid
@@ -4054,6 +4662,11 @@ extern int GEOS_DLL GEOSGridIntersectionFractions(
4054
4662
  * - second element is a MultiLineString containing shared paths
4055
4663
  * having the _opposite_ direction on the two inputs
4056
4664
  *
4665
+ * This function does not support curved types directly. If curve-to-line
4666
+ * conversion parameters are registered with the context, curved
4667
+ * inputs will be automatically converted to lines. Otherwise, the
4668
+ * operation will fail.
4669
+ *
4057
4670
  * \param g1 An input geometry
4058
4671
  * \param g2 An input geometry
4059
4672
  * \return The shared paths
@@ -4069,7 +4682,6 @@ extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
4069
4682
 
4070
4683
  /* ========== Clustering functions ========== */
4071
4684
  /** @name Clustering
4072
- * Functions for clustering geometries
4073
4685
  */
4074
4686
 
4075
4687
 
@@ -4079,36 +4691,51 @@ static const size_t GEOS_CLUSTER_NONE = (size_t) -1;
4079
4691
 
4080
4692
  ///@{
4081
4693
  /**
4082
- * @brief GEOSClusterDBSCAN
4083
- *
4084
- * Cluster geometries using the DBSCAN algorithm
4085
- *
4086
- * @param g a collection of geometries to be clustered
4087
- * @param eps distance parameter for clustering
4088
- * @param minPoints density parameter for clustering
4089
- * @return cluster information object
4090
- */
4694
+ * @brief GEOSClusterDBSCAN
4695
+ *
4696
+ * Cluster geometries using the DBSCAN algorithm
4697
+ *
4698
+ * This function does not support curved types directly. If curve-to-line
4699
+ * conversion parameters are registered with the context, curved
4700
+ * inputs will be automatically converted to lines. Otherwise, the
4701
+ * operation will fail.
4702
+ *
4703
+ * @param g a collection of geometries to be clustered
4704
+ * @param eps distance parameter for clustering
4705
+ * @param minPoints density parameter for clustering
4706
+ * @return cluster information object
4707
+ */
4091
4708
  extern GEOSClusterInfo GEOS_DLL* GEOSClusterDBSCAN(const GEOSGeometry* g, double eps, unsigned minPoints);
4092
4709
 
4093
4710
  /**
4094
- * @brief GEOSClusterGeometryDistance
4095
- *
4096
- * Cluster geometries according to a distance threshold
4097
- *
4098
- * @param g a collection of geometries to be clustered
4099
- * @param d minimum distance between geometries in the same cluster
4100
- * @return cluster information object
4101
- */
4711
+ * @brief GEOSClusterGeometryDistance
4712
+ *
4713
+ * Cluster geometries according to a distance threshold
4714
+ *
4715
+ * This function does not support curved types directly. If curve-to-line
4716
+ * conversion parameters are registered with the context, curved
4717
+ * inputs will be automatically converted to lines. Otherwise, the
4718
+ * operation will fail.
4719
+ *
4720
+ * @param g a collection of geometries to be clustered
4721
+ * @param d minimum distance between geometries in the same cluster
4722
+ * @return cluster information object
4723
+ */
4102
4724
  extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryDistance(const GEOSGeometry* g, double d);
4103
4725
 
4104
4726
  /**
4105
- * @brief GEOSClusterGeometryIntersects
4106
- *
4107
- * Cluster geometries that intersect
4108
- *
4109
- * @param g a collection of geometries to be clustered
4110
- * @return cluster information object
4111
- */
4727
+ * @brief GEOSClusterGeometryIntersects
4728
+ *
4729
+ * Cluster geometries that intersect
4730
+ *
4731
+ * This function does not support curved types directly. If curve-to-line
4732
+ * conversion parameters are registered with the context, curved
4733
+ * inputs will be automatically converted to lines. Otherwise, the
4734
+ * operation will fail.
4735
+ *
4736
+ * @param g a collection of geometries to be clustered
4737
+ * @return cluster information object
4738
+ */
4112
4739
  extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryIntersects(const GEOSGeometry* g);
4113
4740
 
4114
4741
  /**
@@ -4116,6 +4743,8 @@ extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryIntersects(const GEOSGeometr
4116
4743
  *
4117
4744
  * Cluster geometries according to an envelope distance threshold
4118
4745
  *
4746
+ * This function supports curved geometry types.
4747
+ *
4119
4748
  * @param g a collection of geometries to be clustered
4120
4749
  * @param d minimum envelope distance between geometries in the same cluster
4121
4750
  * @return cluster information object
@@ -4127,6 +4756,8 @@ extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeDistance(const GEOSGeometry*
4127
4756
  *
4128
4757
  * Cluster geometries whose envelopes intersect
4129
4758
  *
4759
+ * This function supports curved geometry types.
4760
+ *
4130
4761
  * @param g
4131
4762
  * @return cluster information object
4132
4763
  */
@@ -4193,6 +4824,13 @@ extern void GEOS_DLL GEOSClusterInfo_destroy(GEOSClusterInfo* clusters);
4193
4824
 
4194
4825
  /**
4195
4826
  * Buffer a geometry.
4827
+ * The coordinates of the constructed geometry will not have Z or M values.
4828
+ *
4829
+ * This function does not support curved types directly. If curve-to-line
4830
+ * conversion parameters are registered with the context, curved
4831
+ * inputs will be automatically converted to lines. Otherwise, the
4832
+ * operation will fail.
4833
+ *
4196
4834
  * \param g The input geometry to be buffered.
4197
4835
  * \param width The distance by which to expand the geometry (or contract)
4198
4836
  * if the value is negative.
@@ -4290,6 +4928,12 @@ extern int GEOS_DLL GEOSBufferParams_setSingleSided(
4290
4928
 
4291
4929
  /**
4292
4930
  * Generates a buffer using the special parameters in the GEOSBufferParams
4931
+ *
4932
+ * This function does not support curved types directly. If curve-to-line
4933
+ * conversion parameters are registered with the context, curved
4934
+ * inputs will be automatically converted to lines. Otherwise, the
4935
+ * operation will fail.
4936
+ *
4293
4937
  * \param g The geometry to buffer
4294
4938
  * \param p The parameters to apply to the buffer process
4295
4939
  * \param width The buffer distance
@@ -4305,6 +4949,13 @@ extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
4305
4949
 
4306
4950
  /**
4307
4951
  * Generate a buffer using the provided style parameters.
4952
+ * The coordinates of the constructed geometry will not have Z or M values.
4953
+ *
4954
+ * This function does not support curved types directly. If curve-to-line
4955
+ * conversion parameters are registered with the context, curved
4956
+ * inputs will be automatically converted to lines. Otherwise, the
4957
+ * operation will fail.
4958
+ *
4308
4959
  * \param g The geometry to buffer
4309
4960
  * \param width Width of the buffer
4310
4961
  * \param quadsegs Number of segments per quadrant
@@ -4326,7 +4977,13 @@ extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
4326
4977
 
4327
4978
  /**
4328
4979
  * Generates offset curve line(s) for a geometry.
4329
- * Handles all geometry types as input.
4980
+ * Handles all non-curved geometry types as input.
4981
+ * The coordinates of the constructed geometry will not have Z or M values.
4982
+ *
4983
+ * This function does not support curved types directly. If curve-to-line
4984
+ * conversion parameters are registered with the context, curved
4985
+ * inputs will be automatically converted to lines. Otherwise, the
4986
+ * operation will fail.
4330
4987
  *
4331
4988
  * - For a LineString the result is a LineString.
4332
4989
  * - For a Point the result is an empty LineString.
@@ -4364,6 +5021,16 @@ extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(const GEOSGeometry* g,
4364
5021
  * noded and do not overlap. It may generate an error (return NULL)
4365
5022
  * for inputs that do not satisfy this constraint, however this is not
4366
5023
  * guaranteed.
5024
+ *
5025
+ * This function does not support curved types directly. If curve-to-line
5026
+ * conversion parameters are registered with the context, curved
5027
+ * inputs will be automatically converted to lines. Otherwise, the
5028
+ * operation will fail.
5029
+ * This function outputs linear geometry types only. If line-to-curve
5030
+ * conversion parameters are registered with the context, and a
5031
+ * curved input was provided, outputs will be automatically
5032
+ * converted to curved types.
5033
+ *
4367
5034
  * \param g The input geometry
4368
5035
  * \return A geometry that covers all the points of the input geometry.
4369
5036
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4378,6 +5045,11 @@ extern GEOSGeometry GEOS_DLL *GEOSCoverageUnion(const GEOSGeometry *g);
4378
5045
  * with exactly matching edge geometry) to find places where the
4379
5046
  * assumption of exactly matching edges is not met.
4380
5047
  *
5048
+ * This function does not support curved types directly. If curve-to-line
5049
+ * conversion parameters are registered with the context, curved
5050
+ * inputs will be automatically converted to lines. Otherwise, the
5051
+ * operation will fail.
5052
+ *
4381
5053
  * \param input The polygonal coverage to access,
4382
5054
  * stored in a geometry collection. All members must be POLYGON
4383
5055
  * or MULTIPOLYGON.
@@ -4414,6 +5086,15 @@ extern int GEOS_DLL GEOSCoverageIsValid(
4414
5086
  * it will still be simplified, but invalid topology such as crossing
4415
5087
  * edges will still be invalid.
4416
5088
  *
5089
+ * This function does not support curved types directly. If curve-to-line
5090
+ * conversion parameters are registered with the context, curved
5091
+ * inputs will be automatically converted to lines. Otherwise, the
5092
+ * operation will fail.
5093
+ * This function outputs linear geometry types only. If line-to-curve
5094
+ * conversion parameters are registered with the context, and a
5095
+ * curved input was provided, outputs will be automatically
5096
+ * converted to curved types.
5097
+ *
4417
5098
  * \param input The polygonal coverage to access,
4418
5099
  * stored in a geometry collection. All members must be POLYGON
4419
5100
  * or MULTIPOLYGON.
@@ -4432,15 +5113,25 @@ extern GEOSGeometry GEOS_DLL * GEOSCoverageSimplifyVW(
4432
5113
  int preserveBoundary);
4433
5114
 
4434
5115
  /**
4435
- * Create a default GEOSCoverageCleanParams object for controlling
4436
- * the way invalid polygon interactions are repaird by \ref GEOSCoverageCleanWithParams.
5116
+ * Returns a MultiLineString representing the unique edges of a polygonal coverage.
5117
+ *
5118
+ * \param input a GeometryCollection or MultiPolygon representing the coverage.
5119
+ * \param edgetype selection type: 0 = ALL, 1 = EXTERIOR (non-shared), 2 = INTERIOR (shared).
5120
+ * \return a MultiLineString of unique edges, or NULL on error.
5121
+ *
5122
+ * \since 3.15
5123
+ */
5124
+ extern GEOSGeometry GEOS_DLL *GEOSCoverageEdges(const GEOSGeometry *input, int edgetype);
5125
+
5126
+ /**
5127
+ * Create a default GEOSCoverageCleanParams object for controlling* the way invalid polygon interactions are repaired by \ref GEOSCoverageCleanWithParams.
4437
5128
  * \return A newly allocated GEOSCoverageCleanParams. NULL on exception.
4438
5129
  * Caller is responsible for freeing with GEOSCoverageCleanParams_destroy().
4439
5130
  *
4440
5131
  * \since 3.14
4441
5132
  */
4442
5133
  extern GEOSCoverageCleanParams GEOS_DLL *
4443
- GEOSCoverageCleanParams_create();
5134
+ GEOSCoverageCleanParams_create(void);
4444
5135
 
4445
5136
  /**
4446
5137
  * Destroy a GEOSCoverageCleanParams and free all associated memory.
@@ -4453,18 +5144,22 @@ GEOSCoverageCleanParams_destroy(
4453
5144
  GEOSCoverageCleanParams* params);
4454
5145
 
4455
5146
  /**
5147
+ * Set the snapping distance to use when cleaning a coverage.
5148
+ *
4456
5149
  * Snapping to nearby vertices and line segment snapping
4457
5150
  * is used to improve noding robustness
4458
- * and eliminate small errors in an efficient way,
5151
+ * and eliminate small errors in an efficient way.
5152
+ *
4459
5153
  * By default this uses a very small snapping distance
4460
5154
  * based on the extent of the input data.
4461
- * The snapping distance may be specified explicitly.
4462
- * This can reduce the number of overlaps and gaps that need to be merged,
4463
- * and reduce the risk of spikes formed by merging gaps.
4464
- * However, a large snapping distance may introduce undesirable
5155
+ *
5156
+ * Specifying a larger snapping distance can reduce the number of overlaps and
5157
+ * gaps that need to be merged, and reduce the risk of spikes formed by merging
5158
+ * gaps. However, a large snapping distance can also introduce undesirable
4465
5159
  * data alteration.
4466
5160
  *
4467
5161
  * A distance of zero prevents snapping from being used.
5162
+ *
4468
5163
  * \see geos::coverage::CoverageCleaner::setSnappingDistance
4469
5164
  * \param params The GEOSCoverageCleanParams to operate on
4470
5165
  * \param snappingDistance Set to 0.0 for no snapping.
@@ -4478,19 +5173,22 @@ GEOSCoverageCleanParams_setSnappingDistance(
4478
5173
  double snappingDistance);
4479
5174
 
4480
5175
  /**
4481
- * Gaps which are wider than a given distance are merged with an adjacent polygon.
4482
- * Polygon width is determined as twice the radius of the MaximumInscribedCircle
4483
- * of the gap polygon.
4484
- * Gaps are merged with the adjacent polygon with longest shared border.
5176
+ * Set the maximum width of gaps to merge when cleaning a coverage.
5177
+ *
5178
+ * Gaps wider than the given distance are merged with the adjacent polygon
5179
+ * having the longest shared border with the gap. (The overlap merge strategy
5180
+ * is not used.)
5181
+ *
5182
+ * Gaps are defined as enclosed empty areas with width less than a distance tolerance.
4485
5183
  * Empty holes in input polygons are treated as gaps, and may be filled in.
4486
5184
  * Gaps which are not fully enclosed ("inlets") are not removed.
4487
5185
  *
4488
- * The width of a gap is twice the radius of the Maximum Inscribed Circle in the gap polygon,
5186
+ * Width is computed as the diameter of the Maximum Inscribed Circle of the gap polygon.
4489
5187
  * A width of zero prevents gaps from being merged.
4490
5188
  *
4491
5189
  * \see geos::coverage::CoverageCleaner::setGapMaximumWidth
4492
5190
  * \param params The GEOSCoverageCleanParams to operate on
4493
- * \param gapMaximumWidth Set to 0.0 for no snapping.
5191
+ * \param gapMaximumWidth Set to 0.0 for no gap merging.
4494
5192
  * \return 0 on exception, 1 on success.
4495
5193
  *
4496
5194
  * \since 3.14
@@ -4500,21 +5198,23 @@ GEOSCoverageCleanParams_setGapMaximumWidth(
4500
5198
  GEOSCoverageCleanParams* params,
4501
5199
  double gapMaximumWidth);
4502
5200
 
4503
- /*
5201
+ /**
4504
5202
  * Sets the overlap merge strategy to use, using one from \ref GEOSOverlapMerge.
4505
- * Overlaps are merged with an adjacent polygon chosen according to a specified merge strategy.
4506
- * The supported strategies are:
4507
5203
  *
4508
- * * **Longest Border**: (default) merge with the polygon with longest shared border (GEOS_MERGE_LONGEST_BORDER.)
4509
- * * **Maximum/Minimum Area**: merge with the polygon with largest or smallest area (GEOS_MERGE_MAX_AREA, GEOS_MERGE_MIN_AREA.)
4510
- * * **Minimum Index**: merge with the polygon with the lowest index in the input array (GEOS_MERGE_MIN_INDEX.)
5204
+ * Overlaps are merged with an adjacent polygon chosen according to a specified
5205
+ * merge strategy. The supported strategies are:
4511
5206
  *
4512
- * This allows sorting the input according to some criteria to provide a priority
4513
- * for merging gaps.
5207
+ * - **Longest Border**: (default) merge with the polygon with longest shared
5208
+ * border (GEOS_MERGE_LONGEST_BORDER.)
5209
+ * - **Maximum/Minimum Area**: merge with the polygon with largest or smallest
5210
+ * area (GEOS_MERGE_MAX_AREA, GEOS_MERGE_MIN_AREA.)
5211
+ * - **Minimum Index**: merge with the polygon with the lowest index in the
5212
+ * input array (GEOS_MERGE_MIN_INDEX.). This allows sorting the input
5213
+ * according to some criteria to provide a priority for merging gaps.
4514
5214
  *
4515
5215
  * The default is GEOS_MERGE_LONGEST_BORDER.
4516
5216
  *
4517
- * \see geos::coverage::CoverageCleaner::setGapMaximumWidth
5217
+ * \see geos::coverage::CoverageCleaner::setOverlapMergeStrategy
4518
5218
  * \param params The GEOSCoverageCleanParams to operate on
4519
5219
  * \param overlapMergeStrategy One of \ref GEOSOverlapMerge strategies
4520
5220
  * \return 0 on exception, 1 on success.
@@ -4527,15 +5227,26 @@ GEOSCoverageCleanParams_setOverlapMergeStrategy(
4527
5227
  int overlapMergeStrategy);
4528
5228
 
4529
5229
  /**
5230
+ * Clean a coverage.
5231
+ *
4530
5232
  * Operates on a list of polygonal geometry with "exactly matching"
4531
- * edge geometry, to fix cases where the geometry does not in fact
4532
- * exactly match.
5233
+ * edge geometry. Removes any overlaps and fixes cases where the geometry
5234
+ * does not in fact exactly match.
4533
5235
  *
4534
5236
  * The input is a collection of polygons, and the output is a collection
4535
5237
  * with the same number of cleaned polygons, in the same order as
4536
5238
  * the input. Polygons that have collapsed during cleaning will be returned
4537
5239
  * as empties.
4538
5240
  *
5241
+ * This function does not support curved types directly. If curve-to-line
5242
+ * conversion parameters are registered with the context, curved
5243
+ * inputs will be automatically converted to lines. Otherwise, the
5244
+ * operation will fail.
5245
+ * This function outputs linear geometry types only. If line-to-curve
5246
+ * conversion parameters are registered with the context, and a
5247
+ * curved input was provided, outputs will be automatically
5248
+ * converted to curved types.
5249
+ *
4539
5250
  * \param input The dirty polygonal coverage,
4540
5251
  * stored in a geometry collection. All members must be POLYGON
4541
5252
  * or MULTIPOLYGON.
@@ -4571,8 +5282,13 @@ GEOSCoverageClean(
4571
5282
  ///@{
4572
5283
 
4573
5284
  /**
4574
- * Returns minimum rectangular polygon or point that contains the geometry,
5285
+ * Returns minimum 2D rectangular polygon or point that contains the geometry,
4575
5286
  * or an empty point for empty inputs.
5287
+ *
5288
+ * Z and M values in the input coordinates are ignored.
5289
+ *
5290
+ * Cuved geometry types are supported as of GEOS 3.13.
5291
+ *
4576
5292
  * \param g The geometry to calculate an envelope for
4577
5293
  * \return A newly allocated polygonal envelope or point. NULL on exception.
4578
5294
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4588,6 +5304,10 @@ extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
4588
5304
  * - the boundary of a linestring is the end points
4589
5305
  * - the boundary of a point is the point
4590
5306
  *
5307
+ * Z and M values in the input coordinates are preserved.
5308
+ *
5309
+ * Curved geometry types are supported as of GEOS 3.15.
5310
+ *
4591
5311
  * \param g The input geometry
4592
5312
  * \return A newly allocated geometry of the boundary. NULL on exception.
4593
5313
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4596,8 +5316,17 @@ extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
4596
5316
  extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
4597
5317
 
4598
5318
  /**
4599
- * Returns convex hull of a geometry. The smallest convex Geometry
5319
+ * Returns the convex hull of a geometry. The smallest convex Geometry
4600
5320
  * that contains all the points in the input Geometry
5321
+ *
5322
+ * Z values in the input coordinates will be preserved.
5323
+ * M values in the input coordinates will not be preserved.
5324
+ *
5325
+ * This function does not support curved types directly. If curve-to-line
5326
+ * conversion parameters are registered with the context, curved
5327
+ * inputs will be automatically converted to lines. Otherwise, the
5328
+ * operation will fail.
5329
+ *
4601
5330
  * \param g The input geometry
4602
5331
  * \return A newly allocated geometry of the convex hull. NULL on exception.
4603
5332
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4614,6 +5343,9 @@ extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
4614
5343
  * Frequently used to convert a multi-point into a polygonal area.
4615
5344
  * that contains all the points in the input Geometry.
4616
5345
  *
5346
+ * Z values in the input coordinates will be preserved.
5347
+ * M values in the input coordinates will not be preserved.
5348
+ *
4617
5349
  * A set of points has a sequence of hulls of increasing concaveness,
4618
5350
  * determined by a numeric target parameter.
4619
5351
  * The concave hull is constructed by removing the longest outer edges
@@ -4622,6 +5354,11 @@ extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
4622
5354
  * This can be expressed as a ratio between the lengths of the longest and shortest edges.
4623
5355
  * 1 produces the convex hull; 0 produces a hull with maximum concaveness
4624
5356
  *
5357
+ * This function does not support curved types directly. If curve-to-line
5358
+ * conversion parameters are registered with the context, curved
5359
+ * inputs will be automatically converted to lines. Otherwise, the
5360
+ * operation will fail.
5361
+ *
4625
5362
  * \param g The input geometry
4626
5363
  * \param ratio The edge length ratio value, between 0 and 1.
4627
5364
  * \param allowHoles When non-zero, the polygonal output may contain holes.
@@ -4649,13 +5386,21 @@ extern GEOSGeometry GEOS_DLL *GEOSConcaveHull(
4649
5386
  * Frequently used to convert a multi-point into a polygonal area.
4650
5387
  * that contains all the points in the input Geometry.
4651
5388
  *
5389
+ * Z values in the input coordinates will be preserved.
5390
+ * M values in the input coordinates will not be preserved.
5391
+ *
4652
5392
  * A set of points has a sequence of hulls of increasing concaveness,
4653
5393
  * determined by a numeric target parameter.
4654
5394
  * The concave hull is constructed by removing the longest outer edges
4655
5395
  * of the Delaunay Triangulation of the space between the polygons,
4656
- * until the specified maximm edge length is reached.
5396
+ * until the specified maximum edge length is reached.
4657
5397
  * A large value produces the convex hull, 0 produces the hull of maximum concaveness.
4658
5398
  *
5399
+ * This function does not support curved types directly. If curve-to-line
5400
+ * conversion parameters are registered with the context, curved
5401
+ * inputs will be automatically converted to lines. Otherwise, the
5402
+ * operation will fail.
5403
+ *
4659
5404
  * \param g The input geometry
4660
5405
  * \param length The maximum edge length (0 or greater)
4661
5406
  * \param allowHoles When non-zero, the polygonal output may contain holes.
@@ -4694,6 +5439,11 @@ extern GEOSGeometry GEOS_DLL *GEOSConcaveHullByLength(
4694
5439
  * The input polygons *must* be a *valid* MultiPolygon
4695
5440
  * (i.e. they must be non-overlapping).
4696
5441
  *
5442
+ * This function does not support curved types directly. If curve-to-line
5443
+ * conversion parameters are registered with the context, curved
5444
+ * inputs will be automatically converted to lines. Otherwise, the
5445
+ * operation will fail.
5446
+ *
4697
5447
  * \param g the valid MultiPolygon geometry to process
4698
5448
  * \param lengthRatio specifies the Maximum Edge Length as a
4699
5449
  * fraction of the difference between the longest and
@@ -4701,8 +5451,8 @@ extern GEOSGeometry GEOS_DLL *GEOSConcaveHullByLength(
4701
5451
  * This normalizes the Maximum Edge Length to be scale-free.
4702
5452
  * A value of 1 produces the convex hull; a value of 0 produces
4703
5453
  * the original polygons.
5454
+ * \param isTight does the hull follow the outer boundaries of the input polygons?
4704
5455
  * \param isHolesAllowed is the concave hull allowed to contain holes?
4705
- * \param isTight does the hull follow the outer boundaries of the input polygons.
4706
5456
  * \return A newly allocated geometry of the concave hull. NULL on exception.
4707
5457
  *
4708
5458
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4728,6 +5478,15 @@ extern GEOSGeometry GEOS_DLL *GEOSConcaveHullOfPolygons(
4728
5478
  * An outer hull is computed if the parameter is positive,
4729
5479
  * an inner hull is computed if it is negative.
4730
5480
  *
5481
+ * This function does not support curved types directly. If curve-to-line
5482
+ * conversion parameters are registered with the context, curved
5483
+ * inputs will be automatically converted to lines. Otherwise, the
5484
+ * operation will fail.
5485
+ * This function outputs linear geometry types only. If line-to-curve
5486
+ * conversion parameters are registered with the context, and a
5487
+ * curved input was provided, outputs will be automatically
5488
+ * converted to curved types.
5489
+ *
4731
5490
  * \param g the polygonal geometry to process
4732
5491
  * \param isOuter indicates whether to compute an outer or inner hull (1 for outer hull, 0 for inner)
4733
5492
  * \param vertexNumFraction the target fraction of the count of input vertices to retain in result
@@ -4744,16 +5503,6 @@ extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify(
4744
5503
  double vertexNumFraction);
4745
5504
 
4746
5505
 
4747
- /**
4748
- * Controls the behavior of the GEOSPolygonHullSimplify parameter.
4749
- */
4750
- enum GEOSPolygonHullParameterModes {
4751
- /** Fraction of input vertices retained */
4752
- GEOSHULL_PARAM_VERTEX_RATIO = 1,
4753
- /** Ratio of simplified hull area to input area */
4754
- GEOSHULL_PARAM_AREA_RATIO = 2
4755
- };
4756
-
4757
5506
  /**
4758
5507
  * Computes a topology-preserving simplified hull of a polygonal geometry,
4759
5508
  * with hull shape determined by the parameter, controlled by a parameter
@@ -4762,6 +5511,15 @@ enum GEOSPolygonHullParameterModes {
4762
5511
  * produces the original geometry.
4763
5512
  * Either outer or inner hulls can be computed.
4764
5513
  *
5514
+ * This function does not support curved types directly. If curve-to-line
5515
+ * conversion parameters are registered with the context, curved
5516
+ * inputs will be automatically converted to lines. Otherwise, the
5517
+ * operation will fail.
5518
+ * This function outputs linear geometry types only. If line-to-curve
5519
+ * conversion parameters are registered with the context, and a
5520
+ * curved input was provided, outputs will be automatically
5521
+ * converted to curved types.
5522
+ *
4765
5523
  * \param g the polygonal geometry to process
4766
5524
  * \param isOuter indicates whether to compute an outer or inner hull (1 for outer hull, 0 for inner)
4767
5525
  * \param parameterMode the interpretation to apply to the parameter argument; see \ref GEOSPolygonHullParameterModes
@@ -4788,6 +5546,12 @@ extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplifyMode(
4788
5546
  * the input is degenerate (a line or point) a linestring or point
4789
5547
  * is returned. The minimum rotated rectangle can be used as an
4790
5548
  * extremely generalized representation for the given geometry.
5549
+ *
5550
+ * This function does not support curved types directly. If curve-to-line
5551
+ * conversion parameters are registered with the context, curved
5552
+ * inputs will be automatically converted to lines. Otherwise, the
5553
+ * operation will fail.
5554
+ *
4791
5555
  * \param g The input geometry
4792
5556
  * \return A newly allocated geometry of the rotated envelope. NULL on exception.
4793
5557
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4812,6 +5576,12 @@ extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(const GEOSGeometry* g)
4812
5576
  * way by using spatial indexes.
4813
5577
  * Returns a two-point linestring, with one point at the center of the inscribed circle and the other
4814
5578
  * on the boundary of the inscribed circle.
5579
+ *
5580
+ * This function does not support curved types directly. If curve-to-line
5581
+ * conversion parameters are registered with the context, curved
5582
+ * inputs will be automatically converted to lines. Otherwise, the
5583
+ * operation will fail.
5584
+ *
4815
5585
  * \param g Input geometry
4816
5586
  * \param tolerance Stop the algorithm when the search area is smaller than this tolerance
4817
5587
  * \return A newly allocated geometry of the MIC. NULL on exception.
@@ -4837,17 +5607,22 @@ extern GEOSGeometry GEOS_DLL *GEOSMaximumInscribedCircle(
4837
5607
  * the obstacles (up to the given distance tolerance).
4838
5608
  * The LEC is determined by the center point and a point indicating the circle radius
4839
5609
  * (which will lie on an obstacle).
4840
- * \n
5610
+ *
4841
5611
  * To compute an LEC which lies **wholly** within a polygonal boundary,
4842
5612
  * include the boundary of the polygon(s) as a linear obstacle.
4843
- * \n
5613
+ *
4844
5614
  * The implementation uses a successive-approximation technique over a grid of square cells covering the obstacles and boundary.
4845
5615
  * The grid is refined using a branch-and-bound algorithm. Point containment and distance are computed in a performant
4846
5616
  * way by using spatial indexes.
4847
- * \n
5617
+ *
4848
5618
  * Returns the LEC radius as a two-point linestring, with the start point at the center of the inscribed circle and the end
4849
5619
  * on the boundary of the circle.
4850
5620
  *
5621
+ * This function does not support curved types directly. If curve-to-line
5622
+ * conversion parameters are registered with the context, curved
5623
+ * inputs will be automatically converted to lines. Otherwise, the
5624
+ * operation will fail.
5625
+ *
4851
5626
  * \param obstacles The geometries that the LEC must not cross
4852
5627
  * \param boundary The area to contain the LEC center (may be null or empty)
4853
5628
  * \param tolerance Stop the algorithm when the search area is smaller than this tolerance
@@ -4868,6 +5643,12 @@ extern GEOSGeometry GEOS_DLL *GEOSLargestEmptyCircle(
4868
5643
  * contains the geometry, where a band is a strip of the plane defined
4869
5644
  * by two parallel lines. This can be thought of as the smallest hole that the geometry
4870
5645
  * can be moved through, with a single rotation.
5646
+ *
5647
+ * This function does not support curved types directly. If curve-to-line
5648
+ * conversion parameters are registered with the context, curved
5649
+ * inputs will be automatically converted to lines. Otherwise, the
5650
+ * operation will fail.
5651
+ *
4871
5652
  * \param g The input geometry
4872
5653
  * \return A newly allocated geometry of the LEC. NULL on exception.
4873
5654
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4879,7 +5660,13 @@ extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
4879
5660
 
4880
5661
 
4881
5662
  /**
4882
- * Returns a point that is inside the boundary of a polygonal geometry.
5663
+ * Returns a 2D point that is inside the boundary of a polygonal geometry.
5664
+ *
5665
+ * This function does not support curved types directly. If curve-to-line
5666
+ * conversion parameters are registered with the context, curved
5667
+ * inputs will be automatically converted to lines. Otherwise, the
5668
+ * operation will fail.
5669
+ *
4883
5670
  * \param g The input geometry
4884
5671
  * \return A point that is inside the input
4885
5672
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4890,7 +5677,13 @@ extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
4890
5677
  extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(const GEOSGeometry* g);
4891
5678
 
4892
5679
  /**
4893
- * Returns a point at the center of mass of the input.
5680
+ * Returns a 2D point at the center of mass of the input.
5681
+ *
5682
+ * This function does not support curved types directly. If curve-to-line
5683
+ * conversion parameters are registered with the context, curved
5684
+ * inputs will be automatically converted to lines. Otherwise, the
5685
+ * operation will fail.
5686
+ *
4894
5687
  * \param g The input geometry
4895
5688
  * \return A point at the center of mass of the input
4896
5689
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4901,8 +5694,14 @@ extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(const GEOSGeometry* g);
4901
5694
  extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
4902
5695
 
4903
5696
  /**
4904
- * Returns a geometry which represents the "minimum bounding circle",
5697
+ * Returns a 2D geometry which represents the "minimum bounding circle",
4905
5698
  * the smallest circle that contains the input.
5699
+ *
5700
+ * This function does not support curved types directly. If curve-to-line
5701
+ * conversion parameters are registered with the context, curved
5702
+ * inputs will be automatically converted to lines. Otherwise, the
5703
+ * operation will fail.
5704
+ *
4906
5705
  * \param[in] g The input geometry
4907
5706
  * \param[out] radius Pointer will be filled with output radius.
4908
5707
  * \param[out] center Pointer will be filled with output circle center. Caller must free.
@@ -4920,6 +5719,12 @@ extern GEOSGeometry GEOS_DLL *GEOSMinimumBoundingCircle(
4920
5719
  /**
4921
5720
  * Return a Delaunay triangulation of the vertices of the given geometry.
4922
5721
  *
5722
+ * Z values from the input points will be propagated to the generated polygons.
5723
+ * M values from the input points will be ignored.
5724
+ *
5725
+ * Curved geometries are supported since GEOS 3.15. For curved geometries,
5726
+ * the control point and endpoints of each arc will be used as input vertices.
5727
+ *
4923
5728
  * \param g the input geometry whose vertices will be used as "sites"
4924
5729
  * \param tolerance optional snapping tolerance to use for improved robustness
4925
5730
  * \param onlyEdges if non-zero will return a MultiLineString, otherwise it will
@@ -4940,6 +5745,14 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
4940
5745
  * given polygon(s).
4941
5746
  * For non-polygonal inputs, returns an empty geometry collection.
4942
5747
  *
5748
+ * Z values from the input points will be propagated to the generated polygons.
5749
+ * M values from the input points will be ignored.
5750
+ *
5751
+ * This function does not support curved types directly. If curve-to-line
5752
+ * conversion parameters are registered with the context, curved
5753
+ * inputs will be automatically converted to lines. Otherwise, the
5754
+ * operation will fail.
5755
+ *
4943
5756
  * \param g the input geometry whose rings will be used as input
4944
5757
  * \return A newly allocated geometry. NULL on exception.
4945
5758
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -4949,19 +5762,12 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
4949
5762
  extern GEOSGeometry GEOS_DLL * GEOSConstrainedDelaunayTriangulation(
4950
5763
  const GEOSGeometry *g);
4951
5764
 
4952
- /** Change behaviour of \ref GEOSVoronoiDiagram */
4953
- enum GEOSVoronoiFlags
4954
- {
4955
- /** Return only edges of the Voronoi cells, as a MultiLineString **/
4956
- GEOS_VORONOI_ONLY_EDGES = 1,
4957
- /** Preserve order of inputs, such that the nth cell in the result corresponds
4958
- * to the nth vertex in the input. If this cannot be done, such as for inputs
4959
- * that contain repeated points, \ref GEOSVoronoiDiagram will return NULL. **/
4960
- GEOS_VORONOI_PRESERVE_ORDER = 2
4961
- };
4962
-
4963
5765
  /**
4964
- * Returns the Voronoi polygons or edges of the vertices of the given geometry.
5766
+ * Returns the 2D Voronoi polygons or edges computed from the vertices
5767
+ * of the given geometry.
5768
+ *
5769
+ * Curved geometries are supported since GEOS 3.15. For curved geometries,
5770
+ * the control point and endpoints of each arc will be used as input vertices.
4965
5771
  *
4966
5772
  * \param g the input geometry whose vertices will be used as sites.
4967
5773
  * \param tolerance snapping tolerance to use for improved robustness. A
@@ -4997,6 +5803,12 @@ extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
4997
5803
  /**
4998
5804
  * For linear inputs, returns a new geometry in which no lines cross
4999
5805
  * each other, and all touching occurs at end points.
5806
+ *
5807
+ * Z and M values of input coordinates will be preserved.
5808
+ * Z and M values at constructed points will be interpolated.
5809
+ *
5810
+ * Curved geometry types are supported since GEOS 3.15.
5811
+ *
5000
5812
  * \param g The input geometry
5001
5813
  * \return The noded geometry or NULL on exception
5002
5814
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5006,13 +5818,34 @@ extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
5006
5818
  */
5007
5819
  extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
5008
5820
 
5821
+
5822
+ /** Split a linear or polygonal input
5823
+ *
5824
+ * Linear inputs can be split with points, lines, and/or polygons.
5825
+ * Polygons can be split with lines and/or polygons.
5826
+ *
5827
+ * The returned geometry will be a GeometryCollection containing the
5828
+ * split elements.
5829
+ *
5830
+ * \param g The geometry to split
5831
+ * \param edge the geometry containing splitting edges/points
5832
+ * \return the split geometry or NULL on exception.
5833
+ * Caller is responsible for freeing with GEOSGeom_destroy().
5834
+ *
5835
+ * \since 3.15
5836
+ */
5837
+ extern GEOSGeometry GEOS_DLL *GEOSSplit(const GEOSGeometry* g, const GEOSGeometry* edge);
5838
+
5009
5839
  /**
5010
5840
  * Polygonizes a set of Geometries which contain linework that
5011
5841
  * represents the edges of a planar graph.
5012
5842
  *
5013
- * All types of Geometry are accepted as input; the constituent
5843
+ * All non-curved types of Geometry are accepted as input; the constituent
5014
5844
  * linework is extracted as the edges to be polygonized.
5015
5845
  *
5846
+ * Z and M values from the input linework will be preserved.
5847
+ * Curved geometries are supported since GEOS 3.15.
5848
+ *
5016
5849
  * The edges must be correctly noded; that is, they must only meet
5017
5850
  * at their endpoints and not overlap anywhere. If your edges are not
5018
5851
  * already noded, run them through GEOSUnaryUnion() first.
@@ -5040,7 +5873,7 @@ extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
5040
5873
  * that the input lines form a valid polygonal geometry (which may
5041
5874
  * include holes or nested polygons).
5042
5875
  *
5043
- * \param geoms Array of linear geometries to polygons. Caller retains ownersihp of both array container and objects.
5876
+ * \param geoms Array of linear geometries to polygonize. Caller retains ownership of both array container and objects.
5044
5877
  * \param ngeoms Size of the geoms array.
5045
5878
  * \return The polygonal output geometry.
5046
5879
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5057,7 +5890,10 @@ extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
5057
5890
  * but returns a result which is a valid polygonal geometry.
5058
5891
  * The result will not contain any edge-adjacent elements.
5059
5892
  *
5060
- * \param geoms Array of linear geometries to polygons. Caller retains ownersihp of both array container and objects.
5893
+ * Z and M values from the input linework will be preserved.
5894
+ * Curved geometries are supported since GEOS 3.15.
5895
+ *
5896
+ * \param geoms Array of linear geometries to polygonize. Caller retains ownership of both array container and objects.
5061
5897
  * \param ngeoms Size of the geoms array.
5062
5898
  * \return The polygonal output geometry.
5063
5899
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5075,7 +5911,10 @@ extern GEOSGeometry GEOS_DLL *GEOSPolygonize_valid(
5075
5911
  * "cut edges", the linear features that are connected at both ends,
5076
5912
  * do *not* participate in the final polygon.
5077
5913
  *
5078
- * \param geoms Array of linear geometries to polygons. Caller retains ownersihp of both array container and objects.
5914
+ * Z and M values from the input linework will be preserved.
5915
+ * Curved geometries are supported since GEOS 3.15.
5916
+ *
5917
+ * \param geoms Array of linear geometries to polygonize. Caller retains ownership of both array container and objects.
5079
5918
  * \param ngeoms Size of the geoms array.
5080
5919
  * \return The "cut edges"
5081
5920
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5091,6 +5930,9 @@ extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
5091
5930
  * Perform the polygonization as GEOSPolygonize() and return the
5092
5931
  * polygonal result as well as all extra outputs.
5093
5932
  *
5933
+ * Z and M values from the input linework will be preserved.
5934
+ * Curved geometries are supported since GEOS 3.15.
5935
+ *
5094
5936
  * \param[in] input A single geometry with all the input lines to polygonize.
5095
5937
  * \param[out] cuts Pointer to hold "cut edges", connected on both ends but not part of output. Caller must free.
5096
5938
  * \param[out] dangles Pointer to hold "dangles", connected one end but not part of output. Caller must free.
@@ -5132,8 +5974,14 @@ extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
5132
5974
  * Densifies a geometry using a given distance tolerance.
5133
5975
  * Additional vertices will be added to every line segment
5134
5976
  * that is greater this tolerance; these vertices will
5135
- * evenly subdivide that segment.
5977
+ * evenly subdivide that segment. Z and M values of added
5978
+ * vertices will be interpolated.
5136
5979
  * Only linear components of input geometry are densified.
5980
+ *
5981
+ * Curved geometries are not supported, unless curve-to-line parameters are
5982
+ * registered with the context handle. Output geometries will not contain
5983
+ * curves.
5984
+ *
5137
5985
  * \param g The geometry to densify
5138
5986
  * \param tolerance the distance tolerance to densify
5139
5987
  * \return The densified geometry, or NULL on exception.
@@ -5149,7 +5997,13 @@ extern GEOSGeometry GEOS_DLL *GEOSDensify(
5149
5997
  * Merges a set of LineStrings,
5150
5998
  * joining them at nodes which have cardinality 2.
5151
5999
  * Lines may have their direction reversed.
5152
-
6000
+ *
6001
+ * Z and M values from the input will be preserved. If the Z and M
6002
+ * values differ at the points where two lines are joined, the values
6003
+ * from one of the points will be selected.
6004
+ *
6005
+ * Curved geometry types are supported since GEOS 3.15.
6006
+ *
5153
6007
  * \param g The input linework
5154
6008
  * \return The merged linework.
5155
6009
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5159,11 +6013,34 @@ extern GEOSGeometry GEOS_DLL *GEOSDensify(
5159
6013
  extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
5160
6014
 
5161
6015
  /**
5162
- * Merges a set of LineStrings,
5163
- * joining them at nodes which have cardinality 2.
6016
+ * Computes the Minimum Spanning Tree of the given Curves.
6017
+ *
6018
+ * The input is an array of Curves (LineString, CircularString, CompoundCurve)
6019
+ * which form the edges of a graph.
6020
+ * The nodes of the graph are the endpoints of the Curves.
6021
+ * Coincident endpoints are treated as the same node.
6022
+ *
6023
+ * \param geoms Input array of Curves. Non-Curve geometries are ignored.
6024
+ * \param ngeoms Number of geometries in the input array.
6025
+ * \return An array of size_t of size ngeoms. 0 if the edge is not in the MST.
6026
+ * Values > 0 indicate the component ID of the subtree the edge belongs to.
6027
+ * The caller is responsible for freeing the returned array using GEOSFree().
6028
+ * Returns NULL if ngeoms is 0 or on error.
6029
+ * \since 3.15.0
6030
+ */
6031
+ extern size_t GEOS_DLL *GEOSMinimumSpanningTree(const GEOSGeometry * const geoms[], unsigned int ngeoms);
6032
+
6033
+ /**
6034
+ * Merges a set of LineStrings,* joining them at nodes which have cardinality 2.
5164
6035
  * and where the lines have the same direction.
5165
6036
  * This means that lines do not have their direction reversed.
5166
-
6037
+ *
6038
+ * Z and M values from the input will be preserved. If the Z and M
6039
+ * values differ at the points where two lines are joined, the values
6040
+ * from one of the points will be selected.
6041
+ *
6042
+ * Curved geometry types are supported since GEOS 3.15.
6043
+ *
5167
6044
  * \param g The input linework
5168
6045
  * \return The merged linework.
5169
6046
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5176,6 +6053,10 @@ extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected(const GEOSGeometry* g);
5176
6053
  /**
5177
6054
  * Computes the line which is the section of the input LineString starting and
5178
6055
  * ending at the given length fractions.
6056
+ *
6057
+ * Z values will be interpolated from the input.
6058
+ * M values from the input will be ignored.
6059
+ *
5179
6060
  * \param g The input LineString
5180
6061
  * \param start_fraction start fraction (0-1) along the length of g
5181
6062
  * \param end_fraction end fraction (0-1) along the length of g
@@ -5192,7 +6073,11 @@ extern GEOSGeometry GEOS_DLL *GEOSLineSubstring(
5192
6073
  /**
5193
6074
  * For geometries with coordinate sequences, reverses the order
5194
6075
  * of the sequences. Converts CCW rings to CW. Reverses direction
5195
- * of LineStrings.
6076
+ * of LineStrings. Z and M values of the input coordinates are
6077
+ * preserved.
6078
+ *
6079
+ * Curved geometry types are supported since GEOS 3.13.
6080
+ *
5196
6081
  * \param g The input geometry
5197
6082
  * \return The reversed geometry
5198
6083
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5207,6 +6092,7 @@ extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
5207
6092
  * to the coordinate sequences of the input geometry.
5208
6093
  * Removes "unnecessary" vertices, vertices
5209
6094
  * that are co-linear within the tolerance distance.
6095
+ * Z and M values on the retained coordinates will be preserved.
5210
6096
  * \param g The input geometry
5211
6097
  * \param tolerance The tolerance to apply. Larger tolerance leads to simpler output.
5212
6098
  * \return The simplified geometry
@@ -5227,6 +6113,8 @@ extern GEOSGeometry GEOS_DLL *GEOSSimplify(
5227
6113
  * that are co-linear within the tolerance distance.
5228
6114
  * Returns a valid output geometry, checking for collapses, ring-intersections, etc
5229
6115
  * and attempting to avoid. More computationally expensive than GEOSSimplify()
6116
+ * Z values on the retained coordinates will be preserved.
6117
+ * M values will not be preserved.
5230
6118
  * \param g The input geometry
5231
6119
  * \param tolerance The tolerance to apply. Larger tolerance leads to simpler output.
5232
6120
  * \return The simplified geometry
@@ -5243,6 +6131,12 @@ extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(
5243
6131
  * Return all distinct vertices of input geometry as a MultiPoint.
5244
6132
  * Note that only 2 dimensions of the vertices are considered when
5245
6133
  * testing for equality.
6134
+ *
6135
+ * Z values on the retained coordinates will be preserved.
6136
+ * M values will not be preserved.
6137
+ *
6138
+ * Curved geometry types are supported since GEOS 3.13.
6139
+ *
5246
6140
  * \param g The input geometry
5247
6141
  * \return The distinct points
5248
6142
  * Caller is responsible for freeing with GEOSGeom_destroy().
@@ -5255,10 +6149,13 @@ extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints(
5255
6149
  /**
5256
6150
  * Calculate the
5257
6151
  * [Hilbert code](https://en.wikipedia.org/wiki/Hilbert_curve)
5258
- * of the centroid of a geometry relative to an extent.
6152
+ * of the center of a geometry's bounding box relative to a larger extent.
5259
6153
  * This allows sorting geometries in a deterministic way, such that similar Hilbert codes are
5260
6154
  * likely to be near each other in two-dimensional space.
5261
6155
  * The caller must ensure that the geometry is contained within the extent.
6156
+ *
6157
+ * Curved geometries are supported since GEOS 3.13.
6158
+ *
5262
6159
  * \param[in] geom Input geometry, must be non-empty
5263
6160
  * \param[in] extent Extent within which to calculate the Hilbert code for geom
5264
6161
  * \param[in] level The level of precision of the Hilbert curve, up to 16
@@ -5278,6 +6175,9 @@ extern int GEOS_DLL GEOSHilbertCode(
5278
6175
  * Apply XY coordinate transform callback to all coordinates in a copy of
5279
6176
  * input geometry. If the callback returns an error, returned geometry will be
5280
6177
  * NULL. Z and M values, if present, are not modified by this function.
6178
+ *
6179
+ * Curved geometry types are supported since GEOS 3.13.
6180
+ *
5281
6181
  * \param[in] g Input geometry
5282
6182
  * \param[in] callback a function to be executed for each coordinate in the
5283
6183
  geometry. The callback takes 3 parameters: x and y coordinate
@@ -5297,6 +6197,9 @@ extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXY(
5297
6197
  * Apply XYZ coordinate transform callback to all coordinates in a copy of
5298
6198
  * input geometry. If the callback returns an error, returned geometry will be
5299
6199
  * NULL. M values, if present, are not modified by this function.
6200
+ *
6201
+ * Curved geometry types are supported since GEOS 3.13.
6202
+ *
5300
6203
  * \param[in] g Input geometry
5301
6204
  * \param[in] callback a function to be executed for each coordinate in the
5302
6205
  geometry. The callback takes 4 parameters: x, y and z coordinate
@@ -5357,6 +6260,9 @@ extern GEOSGeometry GEOS_DLL *GEOSSnap(
5357
6260
  * So the combination GEOS_PREC_NO_TOPO || GEOS_PREC_KEEP_COLLAPSED
5358
6261
  * has the same semantics as GEOS_PREC_NO_TOPO
5359
6262
  *
6263
+ * Z and M values in the input are preserved.
6264
+ * Curved geometries are supported since GEOS 3.15 if GEOS_PREC_NO_TOPO is used.
6265
+ *
5360
6266
  * \param g Input geometry
5361
6267
  * \param gridSize cell size of grid to round coordinates to,
5362
6268
  * or 0 for FLOATING precision
@@ -5374,6 +6280,124 @@ extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
5374
6280
 
5375
6281
  ///@}
5376
6282
 
6283
+ /* ============================================================== */
6284
+
6285
+ /** @name Line/Curve conversion
6286
+ * Functions for converting between curved and linear geometry types.
6287
+ */
6288
+ ///@{
6289
+
6290
+ /** Approximate all circular arcs in a geometry using line segments.
6291
+ * If the input has no circular arcs, a copy will be returned.
6292
+ * \param g the geometry to convert
6293
+ * \param params parameters to use in the linearization.
6294
+ * \return The linearized geometry.
6295
+ * Caller must free with GEOSGeom_destroy()
6296
+ * NULL on exception
6297
+ *
6298
+ * \since 3.15
6299
+ */
6300
+ extern GEOSGeometry GEOS_DLL *GEOSCurveToLine(
6301
+ const GEOSGeometry* g,
6302
+ const GEOSCurveToLineParams* params);
6303
+
6304
+ extern GEOSCurveToLineParams GEOS_DLL *GEOSCurveToLineParams_create();
6305
+
6306
+ extern void GEOS_DLL GEOSCurveToLineParams_destroy(GEOSCurveToLineParams* params);
6307
+
6308
+ /** Set the maximum step (in degrees) between subsequent points.
6309
+ *
6310
+ * \param params parameters to use in the conversion.
6311
+ * \param tolerance the maximum step size
6312
+ * \return 1 if the operation succeeded, 0 otherwise
6313
+ *
6314
+ * \since 3.15
6315
+ */
6316
+ extern int GEOS_DLL GEOSCurveToLineParams_setMaxStepDegrees(
6317
+ GEOSCurveToLineParams* params,
6318
+ double tolerance);
6319
+
6320
+ /** Set the maximum deviation between an arc and its linear approximate.
6321
+ *
6322
+ * \param params parameters to use in the conversion.
6323
+ * \param tolerance the maximum deviation
6324
+ * \return 1 if the operation succeeded, 0 otherwise
6325
+ *
6326
+ * \since 3.15
6327
+ */
6328
+ extern int GEOS_DLL GEOSCurveToLineParams_setMaxDeviation(
6329
+ GEOSCurveToLineParams* params,
6330
+ double tolerance);
6331
+
6332
+ /** Replace line segments in the geometry with circular arcs, where possible.
6333
+ *
6334
+ * \param g the geometry to convert
6335
+ * \param params parameters to use in the conversion.
6336
+ * \return The converted geometry.
6337
+ * Caller must free with GEOSGeom_destroy()
6338
+ * NULL on exception
6339
+ *
6340
+ * \since 3.15
6341
+ */
6342
+ extern GEOSGeometry GEOS_DLL *GEOSLineToCurve(
6343
+ const GEOSGeometry* g,
6344
+ const GEOSLineToCurveParams* params);
6345
+
6346
+ extern GEOSLineToCurveParams GEOS_DLL *GEOSLineToCurveParams_create();
6347
+
6348
+ extern void GEOS_DLL GEOSLineToCurveParams_destroy(GEOSLineToCurveParams* params);
6349
+
6350
+ /** Set the radius tolerance used in line-to-curve conversion.
6351
+ *
6352
+ * A vertex may be considered to continue a circular arc if its distance to the
6353
+ * previously-computed circle center is within the specified fraction of the
6354
+ * circle radius.
6355
+ *
6356
+ * \param params the parameters object
6357
+ * \param tolerance the tolerance value
6358
+ * \return 1 on success, 0 on failure
6359
+ * \since 3.15
6360
+ */
6361
+ extern int GEOS_DLL GEOSLineToCurveParams_setRadiusTolerance(
6362
+ GEOSLineToCurveParams* params,
6363
+ double tolerance);
6364
+
6365
+ /** Set the maximum angle spacing used in line-to-curve conversion.
6366
+ *
6367
+ * A point may be considered to continue a circular arc if the angle between
6368
+ * the point and the final point in the arc is less than the specified
6369
+ * tolerance. Because of round-off errors, this value should be slightly
6370
+ * greater than the one used in \ref GEOSCurveToLineParams_setMaxStepDegrees.
6371
+ *
6372
+ * \param params the parameters object
6373
+ * \param tolerance the tolerance value
6374
+ * \return 1 on success, 0 on failure
6375
+ * \since 3.15
6376
+ */
6377
+ extern int GEOS_DLL GEOSLineToCurveParams_setMaxStepDegrees(
6378
+ GEOSLineToCurveParams* params,
6379
+ double tolerance);
6380
+
6381
+ /** Set the maximum angle difference used in line-to-curve conversion
6382
+ *
6383
+ * A point may be considered to continue a circular arc if the angle between
6384
+ * the point and the final point in the arc is within the specified
6385
+ * tolerance of the angle calculated when the final point in the arc was
6386
+ * added. This tolerance can be used to ensure that the step spacing is
6387
+ * regular, which is an indication of a line that was generated by
6388
+ * linearizing a curve.
6389
+ *
6390
+ * \param params the parameters object
6391
+ * \param tolerance the tolerance value
6392
+ * \return 1 on success, 0 on failure
6393
+ * \since 3.15
6394
+ */
6395
+ extern int GEOS_DLL GEOSLineToCurveParams_setMaxAngleDifferenceDegrees(
6396
+ GEOSLineToCurveParams* params,
6397
+ double tolerance);
6398
+
6399
+ ///@}
6400
+
5377
6401
  /* ============================================================== */
5378
6402
  /** @name Spatial Predicates
5379
6403
  * Functions computing binary spatial predicates using the DE-9IM topology model.
@@ -5423,7 +6447,7 @@ extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry*
5423
6447
  extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
5424
6448
 
5425
6449
  /**
5426
- * Tests if geometry g1 is completely within g2,
6450
+ * Tests if geometry g1 is completely within g2,
5427
6451
  * but not wholly contained in the boundary of g2.
5428
6452
  * \param g1 Input geometry
5429
6453
  * \param g2 Input geometry
@@ -5499,6 +6523,9 @@ extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g
5499
6523
  * Unlike GEOSEquals(), geometries that are topologically equivalent but have different
5500
6524
  * representations (e.g., LINESTRING (0 0, 1 1) and MULTILINESTRING ((0 0, 1 1)) ) are not
5501
6525
  * considered equal by GEOSEqualsExact().
6526
+ *
6527
+ * Curved geometry types are supported since GEOS 3.13.
6528
+ *
5502
6529
  * \param g1 Input geometry
5503
6530
  * \param g2 Input geometry
5504
6531
  * \param tolerance Tolerance to determine vertex equality
@@ -5512,11 +6539,13 @@ extern char GEOS_DLL GEOSEqualsExact(
5512
6539
  double tolerance);
5513
6540
 
5514
6541
  /**
5515
- * Determine pointwise equality of two geometries by checking
5516
- * that the structure, ordering, and values of all vertices are
5517
- * identical in all dimensions. NaN values are considered to be
5518
- * equal to other NaN values.
5519
- *
6542
+ * Determine pointwise equality of two geometries by checking
6543
+ * that the structure, ordering, and values of all vertices are
6544
+ * identical in all dimensions. NaN values are considered to be
6545
+ * equal to other NaN values.
6546
+ *
6547
+ * Curved geometry types are supported since GEOS 3.13.
6548
+ *
5520
6549
  * \param g1 Input geometry
5521
6550
  * \param g2 Input geometry
5522
6551
  * \returns 1 on true, 0 on false, 2 on exception
@@ -6707,7 +7736,7 @@ extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size
6707
7736
  extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
6708
7737
 
6709
7738
  /**
6710
- * \deprecated use \ref GEOSWKBReader and GEOSWKBWriter_readHEX()
7739
+ * \deprecated use \ref GEOSWKBReader and GEOSWKBReader_readHEX()
6711
7740
  */
6712
7741
  extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
6713
7742