@cpp.js/package-geos 1.0.0-beta.21 → 1.0.0-beta.23

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 (539) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/cppjs-package-geos.podspec +1 -1
  3. package/dist/prebuilt/Android-x86_64/bin/geos-config +79 -0
  4. package/dist/prebuilt/Android-x86_64/bin/geosop +0 -0
  5. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Angle.h +247 -0
  6. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Area.h +82 -0
  7. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/BoundaryNodeRule.h +146 -0
  8. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/CGAlgorithmsDD.h +193 -0
  9. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/CentralEndpointIntersector.h +161 -0
  10. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Centroid.h +157 -0
  11. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/CircularArcs.h +37 -0
  12. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/ConvexHull.h +211 -0
  13. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Distance.h +116 -0
  14. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/HCoordinate.h +100 -0
  15. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/InteriorPointArea.h +110 -0
  16. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/InteriorPointLine.h +79 -0
  17. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/InteriorPointPoint.h +73 -0
  18. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Interpolate.h +182 -0
  19. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Intersection.h +84 -0
  20. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Length.h +50 -0
  21. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/LineIntersector.h +667 -0
  22. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/MinimumAreaRectangle.h +159 -0
  23. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/MinimumBoundingCircle.h +137 -0
  24. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/MinimumDiameter.h +185 -0
  25. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/NotRepresentableException.h +43 -0
  26. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Orientation.h +122 -0
  27. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PointInRing.h +40 -0
  28. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PointLocation.h +107 -0
  29. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PointLocator.h +108 -0
  30. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PolygonNodeTopology.h +149 -0
  31. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/RayCrossingCounter.h +173 -0
  32. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Rectangle.h +96 -0
  33. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/RobustDeterminant.h +66 -0
  34. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/SimplePointInRing.h +44 -0
  35. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/IndexedDistanceToPoint.h +88 -0
  36. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/IndexedPointInPolygonsLocator.h +79 -0
  37. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/LargestEmptyCircle.h +240 -0
  38. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/MaximumInscribedCircle.h +221 -0
  39. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/DiscreteFrechetDistance.h +175 -0
  40. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/DiscreteHausdorffDistance.h +252 -0
  41. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/DistanceToPoint.h +72 -0
  42. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/PointPairDistance.h +151 -0
  43. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/ConcaveHull.h +309 -0
  44. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/ConcaveHullOfPolygons.h +377 -0
  45. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/HullTri.h +156 -0
  46. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/HullTriangulation.h +139 -0
  47. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/locate/IndexedPointInAreaLocator.h +139 -0
  48. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/locate/PointOnGeometryLocator.h +56 -0
  49. package/dist/prebuilt/Android-x86_64/include/geos/algorithm/locate/SimplePointInAreaLocator.h +117 -0
  50. package/dist/prebuilt/Android-x86_64/include/geos/constants.h +49 -0
  51. package/dist/prebuilt/Android-x86_64/include/geos/coverage/Corner.h +137 -0
  52. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageBoundarySegmentFinder.h +83 -0
  53. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageEdge.h +171 -0
  54. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageGapFinder.h +106 -0
  55. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoveragePolygon.h +57 -0
  56. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoveragePolygonValidator.h +381 -0
  57. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageRing.h +205 -0
  58. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageRingEdges.h +170 -0
  59. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageSimplifier.h +166 -0
  60. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageUnion.h +77 -0
  61. package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageValidator.h +159 -0
  62. package/dist/prebuilt/Android-x86_64/include/geos/coverage/InvalidSegmentDetector.h +133 -0
  63. package/dist/prebuilt/Android-x86_64/include/geos/coverage/TPVWSimplifier.h +225 -0
  64. package/dist/prebuilt/Android-x86_64/include/geos/coverage/VertexRingCounter.h +71 -0
  65. package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/EdgeGraph.h +137 -0
  66. package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/EdgeGraphBuilder.h +91 -0
  67. package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/HalfEdge.h +315 -0
  68. package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/MarkHalfEdge.h +110 -0
  69. package/dist/prebuilt/Android-x86_64/include/geos/export.h +51 -0
  70. package/dist/prebuilt/Android-x86_64/include/geos/geom/CircularArc.h +273 -0
  71. package/dist/prebuilt/Android-x86_64/include/geos/geom/CircularString.h +85 -0
  72. package/dist/prebuilt/Android-x86_64/include/geos/geom/CompoundCurve.h +121 -0
  73. package/dist/prebuilt/Android-x86_64/include/geos/geom/Coordinate.h +627 -0
  74. package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateFilter.h +134 -0
  75. package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateList.h +244 -0
  76. package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequence.h +807 -0
  77. package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequenceFilter.h +116 -0
  78. package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequenceIterator.h +126 -0
  79. package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequences.h +76 -0
  80. package/dist/prebuilt/Android-x86_64/include/geos/geom/Curve.h +71 -0
  81. package/dist/prebuilt/Android-x86_64/include/geos/geom/CurvePolygon.h +58 -0
  82. package/dist/prebuilt/Android-x86_64/include/geos/geom/Dimension.h +64 -0
  83. package/dist/prebuilt/Android-x86_64/include/geos/geom/Envelope.h +826 -0
  84. package/dist/prebuilt/Android-x86_64/include/geos/geom/Geometry.h +1051 -0
  85. package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryCollection.h +256 -0
  86. package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryComponentFilter.h +61 -0
  87. package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryFactory.h +542 -0
  88. package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryFilter.h +74 -0
  89. package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryTypeName.h +110 -0
  90. package/dist/prebuilt/Android-x86_64/include/geos/geom/HeuristicOverlay.h +99 -0
  91. package/dist/prebuilt/Android-x86_64/include/geos/geom/IntersectionMatrix.h +383 -0
  92. package/dist/prebuilt/Android-x86_64/include/geos/geom/LineSegment.h +576 -0
  93. package/dist/prebuilt/Android-x86_64/include/geos/geom/LineString.h +151 -0
  94. package/dist/prebuilt/Android-x86_64/include/geos/geom/LinearRing.h +128 -0
  95. package/dist/prebuilt/Android-x86_64/include/geos/geom/Location.h +64 -0
  96. package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiCurve.h +126 -0
  97. package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiLineString.h +160 -0
  98. package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiPoint.h +150 -0
  99. package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiPolygon.h +155 -0
  100. package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiSurface.h +94 -0
  101. package/dist/prebuilt/Android-x86_64/include/geos/geom/Point.h +221 -0
  102. package/dist/prebuilt/Android-x86_64/include/geos/geom/Polygon.h +138 -0
  103. package/dist/prebuilt/Android-x86_64/include/geos/geom/Position.h +68 -0
  104. package/dist/prebuilt/Android-x86_64/include/geos/geom/PrecisionModel.h +374 -0
  105. package/dist/prebuilt/Android-x86_64/include/geos/geom/Quadrant.h +164 -0
  106. package/dist/prebuilt/Android-x86_64/include/geos/geom/SimpleCurve.h +142 -0
  107. package/dist/prebuilt/Android-x86_64/include/geos/geom/Surface.h +115 -0
  108. package/dist/prebuilt/Android-x86_64/include/geos/geom/SurfaceImpl.h +159 -0
  109. package/dist/prebuilt/Android-x86_64/include/geos/geom/Triangle.h +230 -0
  110. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/AbstractPreparedPolygonContains.h +144 -0
  111. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/BasicPreparedGeometry.h +214 -0
  112. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedGeometry.h +260 -0
  113. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedGeometryFactory.h +93 -0
  114. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineString.h +70 -0
  115. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineStringDistance.h +57 -0
  116. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineStringIntersects.h +97 -0
  117. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineStringNearestPoints.h +54 -0
  118. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPoint.h +56 -0
  119. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygon.h +81 -0
  120. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonContains.h +105 -0
  121. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonContainsProperly.h +101 -0
  122. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonCovers.h +108 -0
  123. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonDistance.h +67 -0
  124. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonIntersects.h +90 -0
  125. package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonPredicate.h +141 -0
  126. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/ComponentCoordinateExtracter.h +69 -0
  127. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/CoordinateOperation.h +70 -0
  128. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/Densifier.h +90 -0
  129. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryCombiner.h +151 -0
  130. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryEditor.h +127 -0
  131. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryEditorOperation.h +65 -0
  132. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryExtracter.h +95 -0
  133. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryFixer.h +169 -0
  134. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryLister.h +92 -0
  135. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryMapper.h +115 -0
  136. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryTransformer.h +181 -0
  137. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/LinearComponentExtracter.h +65 -0
  138. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/NoOpGeometryOperation.h +52 -0
  139. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/PointExtracter.h +63 -0
  140. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/PolygonExtracter.h +66 -0
  141. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/PolygonalExtracter.h +54 -0
  142. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/ShortCircuitedGeometryVisitor.h +66 -0
  143. package/dist/prebuilt/Android-x86_64/include/geos/geom/util/SineStarFactory.h +122 -0
  144. package/dist/prebuilt/Android-x86_64/include/geos/geom.h +146 -0
  145. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Depth.h +143 -0
  146. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/DirectedEdge.h +236 -0
  147. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/DirectedEdgeStar.h +164 -0
  148. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Edge.h +285 -0
  149. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeEnd.h +187 -0
  150. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeEndStar.h +217 -0
  151. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeIntersection.h +149 -0
  152. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeIntersectionList.h +129 -0
  153. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeList.h +124 -0
  154. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeNodingValidator.h +113 -0
  155. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeRing.h +201 -0
  156. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/GeometryGraph.h +251 -0
  157. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/GraphComponent.h +117 -0
  158. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Label.h +290 -0
  159. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Node.h +192 -0
  160. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/NodeFactory.h +51 -0
  161. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/NodeMap.h +143 -0
  162. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/PlanarGraph.h +203 -0
  163. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/TopologyLocation.h +238 -0
  164. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/EdgeSetIntersector.h +68 -0
  165. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/MonotoneChain.h +72 -0
  166. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/MonotoneChainEdge.h +85 -0
  167. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/MonotoneChainIndexer.h +71 -0
  168. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SegmentIntersector.h +176 -0
  169. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SimpleEdgeSetIntersector.h +64 -0
  170. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h +108 -0
  171. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SimpleSweepLineIntersector.h +94 -0
  172. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SweepLineEvent.h +136 -0
  173. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SweepLineEventObj.h +38 -0
  174. package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SweepLineSegment.h +57 -0
  175. package/dist/prebuilt/Android-x86_64/include/geos/index/ItemVisitor.h +38 -0
  176. package/dist/prebuilt/Android-x86_64/include/geos/index/SpatialIndex.h +103 -0
  177. package/dist/prebuilt/Android-x86_64/include/geos/index/VertexSequencePackedRtree.h +153 -0
  178. package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Bintree.h +129 -0
  179. package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Interval.h +61 -0
  180. package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Key.h +71 -0
  181. package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Node.h +74 -0
  182. package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/NodeBase.h +83 -0
  183. package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Root.h +77 -0
  184. package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChain.h +206 -0
  185. package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChainBuilder.h +74 -0
  186. package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChainOverlapAction.h +86 -0
  187. package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChainSelectAction.h +74 -0
  188. package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/IntervalRTreeBranchNode.h +53 -0
  189. package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h +58 -0
  190. package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/IntervalRTreeNode.h +105 -0
  191. package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/SortedPackedIntervalRTree.h +110 -0
  192. package/dist/prebuilt/Android-x86_64/include/geos/index/kdtree/KdNode.h +64 -0
  193. package/dist/prebuilt/Android-x86_64/include/geos/index/kdtree/KdNodeVisitor.h +45 -0
  194. package/dist/prebuilt/Android-x86_64/include/geos/index/kdtree/KdTree.h +191 -0
  195. package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/IntervalSize.h +62 -0
  196. package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Key.h +87 -0
  197. package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Node.h +141 -0
  198. package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/NodeBase.h +161 -0
  199. package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Quadtree.h +200 -0
  200. package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Root.h +87 -0
  201. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/AbstractNode.h +131 -0
  202. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/AbstractSTRtree.h +324 -0
  203. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/Boundable.h +49 -0
  204. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/BoundablePair.h +122 -0
  205. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/EnvelopeUtil.h +33 -0
  206. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/GeometryItemDistance.h +44 -0
  207. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/Interval.h +60 -0
  208. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/ItemBoundable.h +59 -0
  209. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/ItemDistance.h +49 -0
  210. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SIRtree.h +124 -0
  211. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/STRtree.h +177 -0
  212. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SimpleSTRdistance.h +166 -0
  213. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SimpleSTRnode.h +141 -0
  214. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SimpleSTRtree.h +189 -0
  215. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRNode.h +156 -0
  216. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRNodePair.h +74 -0
  217. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRtree.h +807 -0
  218. package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRtreeDistance.h +233 -0
  219. package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineEvent.h +95 -0
  220. package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineIndex.h +87 -0
  221. package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineInterval.h +37 -0
  222. package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineOverlapAction.h +44 -0
  223. package/dist/prebuilt/Android-x86_64/include/geos/io/ByteOrderDataInStream.h +125 -0
  224. package/dist/prebuilt/Android-x86_64/include/geos/io/ByteOrderValues.h +61 -0
  225. package/dist/prebuilt/Android-x86_64/include/geos/io/CLocalizer.h +53 -0
  226. package/dist/prebuilt/Android-x86_64/include/geos/io/CheckOrdinatesFilter.h +68 -0
  227. package/dist/prebuilt/Android-x86_64/include/geos/io/GeoJSON.h +154 -0
  228. package/dist/prebuilt/Android-x86_64/include/geos/io/GeoJSONReader.h +125 -0
  229. package/dist/prebuilt/Android-x86_64/include/geos/io/GeoJSONWriter.h +139 -0
  230. package/dist/prebuilt/Android-x86_64/include/geos/io/OrdinateSet.h +119 -0
  231. package/dist/prebuilt/Android-x86_64/include/geos/io/ParseException.h +53 -0
  232. package/dist/prebuilt/Android-x86_64/include/geos/io/StringTokenizer.h +66 -0
  233. package/dist/prebuilt/Android-x86_64/include/geos/io/WKBConstants.h +57 -0
  234. package/dist/prebuilt/Android-x86_64/include/geos/io/WKBReader.h +204 -0
  235. package/dist/prebuilt/Android-x86_64/include/geos/io/WKBStreamReader.h +49 -0
  236. package/dist/prebuilt/Android-x86_64/include/geos/io/WKBWriter.h +260 -0
  237. package/dist/prebuilt/Android-x86_64/include/geos/io/WKTFileReader.h +46 -0
  238. package/dist/prebuilt/Android-x86_64/include/geos/io/WKTReader.h +165 -0
  239. package/dist/prebuilt/Android-x86_64/include/geos/io/WKTStreamReader.h +48 -0
  240. package/dist/prebuilt/Android-x86_64/include/geos/io/WKTWriter.h +342 -0
  241. package/dist/prebuilt/Android-x86_64/include/geos/io/Writer.h +51 -0
  242. package/dist/prebuilt/Android-x86_64/include/geos/linearref/ExtractLineByLocation.h +88 -0
  243. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LengthIndexOfPoint.h +87 -0
  244. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LengthIndexedLine.h +211 -0
  245. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LengthLocationMap.h +134 -0
  246. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LinearGeometryBuilder.h +106 -0
  247. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LinearIterator.h +156 -0
  248. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LinearLocation.h +248 -0
  249. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LocationIndexOfLine.h +72 -0
  250. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LocationIndexOfPoint.h +77 -0
  251. package/dist/prebuilt/Android-x86_64/include/geos/linearref/LocationIndexedLine.h +276 -0
  252. package/dist/prebuilt/Android-x86_64/include/geos/math/DD.h +200 -0
  253. package/dist/prebuilt/Android-x86_64/include/geos/namespaces.h +317 -0
  254. package/dist/prebuilt/Android-x86_64/include/geos/noding/BasicSegmentString.h +89 -0
  255. package/dist/prebuilt/Android-x86_64/include/geos/noding/BoundaryChainNoder.h +171 -0
  256. package/dist/prebuilt/Android-x86_64/include/geos/noding/FastNodingValidator.h +129 -0
  257. package/dist/prebuilt/Android-x86_64/include/geos/noding/FastSegmentSetIntersectionFinder.h +80 -0
  258. package/dist/prebuilt/Android-x86_64/include/geos/noding/GeometryNoder.h +69 -0
  259. package/dist/prebuilt/Android-x86_64/include/geos/noding/IntersectionAdder.h +202 -0
  260. package/dist/prebuilt/Android-x86_64/include/geos/noding/IntersectionFinderAdder.h +110 -0
  261. package/dist/prebuilt/Android-x86_64/include/geos/noding/IteratedNoder.h +120 -0
  262. package/dist/prebuilt/Android-x86_64/include/geos/noding/MCIndexNoder.h +141 -0
  263. package/dist/prebuilt/Android-x86_64/include/geos/noding/MCIndexSegmentSetMutualIntersector.h +146 -0
  264. package/dist/prebuilt/Android-x86_64/include/geos/noding/NodableSegmentString.h +56 -0
  265. package/dist/prebuilt/Android-x86_64/include/geos/noding/NodedSegmentString.h +218 -0
  266. package/dist/prebuilt/Android-x86_64/include/geos/noding/Noder.h +79 -0
  267. package/dist/prebuilt/Android-x86_64/include/geos/noding/NodingIntersectionFinder.h +262 -0
  268. package/dist/prebuilt/Android-x86_64/include/geos/noding/NodingValidator.h +109 -0
  269. package/dist/prebuilt/Android-x86_64/include/geos/noding/Octant.h +73 -0
  270. package/dist/prebuilt/Android-x86_64/include/geos/noding/OrientedCoordinateArray.h +113 -0
  271. package/dist/prebuilt/Android-x86_64/include/geos/noding/ScaledNoder.h +132 -0
  272. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentExtractingNoder.h +88 -0
  273. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentIntersectionDetector.h +177 -0
  274. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentIntersector.h +89 -0
  275. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentNode.h +161 -0
  276. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentNodeList.h +253 -0
  277. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentPointComparator.h +120 -0
  278. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentSetMutualIntersector.h +80 -0
  279. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentString.h +199 -0
  280. package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentStringUtil.h +67 -0
  281. package/dist/prebuilt/Android-x86_64/include/geos/noding/SimpleNoder.h +70 -0
  282. package/dist/prebuilt/Android-x86_64/include/geos/noding/SinglePassNoder.h +96 -0
  283. package/dist/prebuilt/Android-x86_64/include/geos/noding/ValidatingNoder.h +74 -0
  284. package/dist/prebuilt/Android-x86_64/include/geos/noding/snap/SnappingIntersectionAdder.h +109 -0
  285. package/dist/prebuilt/Android-x86_64/include/geos/noding/snap/SnappingNoder.h +121 -0
  286. package/dist/prebuilt/Android-x86_64/include/geos/noding/snap/SnappingPointIndex.h +62 -0
  287. package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/HotPixel.h +171 -0
  288. package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/HotPixelIndex.h +116 -0
  289. package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/MCIndexPointSnapper.h +98 -0
  290. package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/MCIndexSnapRounder.h +157 -0
  291. package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/SnapRoundingIntersectionAdder.h +126 -0
  292. package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/SnapRoundingNoder.h +167 -0
  293. package/dist/prebuilt/Android-x86_64/include/geos/operation/BoundaryOp.h +120 -0
  294. package/dist/prebuilt/Android-x86_64/include/geos/operation/GeometryGraphOperation.h +92 -0
  295. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferBuilder.h +270 -0
  296. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferCurveSetBuilder.h +296 -0
  297. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferInputLineSimplifier.h +180 -0
  298. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferOp.h +307 -0
  299. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferParameters.h +319 -0
  300. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferSubgraph.h +202 -0
  301. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetCurve.h +328 -0
  302. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetCurveBuilder.h +257 -0
  303. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetCurveSection.h +111 -0
  304. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetSegmentGenerator.h +390 -0
  305. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetSegmentString.h +215 -0
  306. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/RightmostEdgeFinder.h +105 -0
  307. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/SegmentMCIndex.h +56 -0
  308. package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/SubgraphDepthLocater.h +120 -0
  309. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/AbstractClusterFinder.h +136 -0
  310. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/Clusters.h +72 -0
  311. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/DBSCANClusterFinder.h +59 -0
  312. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/DisjointOperation.h +73 -0
  313. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/EnvelopeDistanceClusterFinder.h +53 -0
  314. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/EnvelopeIntersectsClusterFinder.h +44 -0
  315. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/GeometryDistanceClusterFinder.h +59 -0
  316. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/GeometryFlattener.h +46 -0
  317. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/GeometryIntersectsClusterFinder.h +53 -0
  318. package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/UnionFind.h +137 -0
  319. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/ConnectedElementLocationFilter.h +76 -0
  320. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/ConnectedElementPointFilter.h +73 -0
  321. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/DistanceOp.h +228 -0
  322. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/FacetSequence.h +84 -0
  323. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/FacetSequenceTreeBuilder.h +69 -0
  324. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/GeometryLocation.h +126 -0
  325. package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/IndexedFacetDistance.h +124 -0
  326. package/dist/prebuilt/Android-x86_64/include/geos/operation/intersection/Rectangle.h +236 -0
  327. package/dist/prebuilt/Android-x86_64/include/geos/operation/intersection/RectangleIntersection.h +174 -0
  328. package/dist/prebuilt/Android-x86_64/include/geos/operation/intersection/RectangleIntersectionBuilder.h +159 -0
  329. package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/EdgeString.h +88 -0
  330. package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMergeDirectedEdge.h +78 -0
  331. package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMergeEdge.h +62 -0
  332. package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMergeGraph.h +91 -0
  333. package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMerger.h +149 -0
  334. package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineSequencer.h +295 -0
  335. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/MaximalEdgeRing.h +105 -0
  336. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/MinimalEdgeRing.h +80 -0
  337. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/OverlayNodeFactory.h +56 -0
  338. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/PolygonBuilder.h +210 -0
  339. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/snap/GeometrySnapper.h +154 -0
  340. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/snap/LineStringSnapper.h +165 -0
  341. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/snap/SnapOverlayOp.h +134 -0
  342. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/validate/FuzzyPointLocator.h +97 -0
  343. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/validate/OffsetPointGenerator.h +87 -0
  344. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/validate/OverlayResultValidator.h +131 -0
  345. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/CoverageUnion.h +100 -0
  346. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/Edge.h +345 -0
  347. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeKey.h +120 -0
  348. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeMerger.h +81 -0
  349. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeNodingBuilder.h +255 -0
  350. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeSourceInfo.h +65 -0
  351. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/ElevationModel.h +170 -0
  352. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/IndexedPointOnLineLocator.h +64 -0
  353. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/InputGeometry.h +103 -0
  354. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/IntersectionPointBuilder.h +113 -0
  355. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/LineBuilder.h +189 -0
  356. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/LineLimiter.h +91 -0
  357. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/MaximalEdgeRing.h +134 -0
  358. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayEdge.h +279 -0
  359. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayEdgeRing.h +153 -0
  360. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayGraph.h +143 -0
  361. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayLabel.h +404 -0
  362. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayLabeller.h +207 -0
  363. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayMixedPoints.h +142 -0
  364. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayNG.h +410 -0
  365. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayNGRobust.h +174 -0
  366. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayPoints.h +120 -0
  367. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayUtil.h +213 -0
  368. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/PolygonBuilder.h +151 -0
  369. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/PrecisionReducer.h +75 -0
  370. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/PrecisionUtil.h +245 -0
  371. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/RingClipper.h +112 -0
  372. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/RobustClipEnvelopeComputer.h +84 -0
  373. package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/UnaryUnionNG.h +95 -0
  374. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/BuildArea.h +75 -0
  375. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/EdgeRing.h +350 -0
  376. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/HoleAssigner.h +65 -0
  377. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/PolygonizeDirectedEdge.h +127 -0
  378. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/PolygonizeEdge.h +58 -0
  379. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/PolygonizeGraph.h +214 -0
  380. package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/Polygonizer.h +260 -0
  381. package/dist/prebuilt/Android-x86_64/include/geos/operation/predicate/RectangleContains.h +119 -0
  382. package/dist/prebuilt/Android-x86_64/include/geos/operation/predicate/RectangleIntersects.h +98 -0
  383. package/dist/prebuilt/Android-x86_64/include/geos/operation/predicate/SegmentIntersectionTester.h +91 -0
  384. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/EdgeEndBuilder.h +70 -0
  385. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/EdgeEndBundle.h +104 -0
  386. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/EdgeEndBundleStar.h +65 -0
  387. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateComputer.h +185 -0
  388. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateNode.h +67 -0
  389. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateNodeFactory.h +55 -0
  390. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateNodeGraph.h +98 -0
  391. package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateOp.h +134 -0
  392. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/AdjacentEdgeLocator.h +124 -0
  393. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/BasicPredicate.h +105 -0
  394. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/DimensionLocation.h +60 -0
  395. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/EdgeSegmentIntersector.h +80 -0
  396. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/EdgeSegmentOverlapAction.h +75 -0
  397. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/EdgeSetIntersector.h +94 -0
  398. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/IMPatternMatcher.h +87 -0
  399. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/IMPredicate.h +131 -0
  400. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/IntersectionMatrixPattern.h +65 -0
  401. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/LineStringExtracter.h +77 -0
  402. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/LinearBoundary.h +88 -0
  403. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/NodeSection.h +166 -0
  404. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/NodeSections.h +102 -0
  405. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/PolygonNodeConverter.h +112 -0
  406. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateEdge.h +176 -0
  407. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateGeometry.h +272 -0
  408. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateMatrixPredicate.h +85 -0
  409. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateNG.h +295 -0
  410. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateNode.h +146 -0
  411. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelatePointLocator.h +213 -0
  412. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelatePredicate.h +652 -0
  413. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateSegmentString.h +161 -0
  414. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/TopologyComputer.h +236 -0
  415. package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/TopologyPredicate.h +206 -0
  416. package/dist/prebuilt/Android-x86_64/include/geos/operation/sharedpaths/SharedPathsOp.h +161 -0
  417. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/CascadedPolygonUnion.h +246 -0
  418. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/CoverageUnion.h +65 -0
  419. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/DisjointSubsetUnion.h +49 -0
  420. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/OverlapUnion.h +139 -0
  421. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/PointGeometryUnion.h +72 -0
  422. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/UnaryUnionOp.h +243 -0
  423. package/dist/prebuilt/Android-x86_64/include/geos/operation/union/UnionStrategy.h +73 -0
  424. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/ConsistentAreaTester.h +137 -0
  425. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IndexedNestedHoleTester.h +83 -0
  426. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IndexedNestedPolygonTester.h +111 -0
  427. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IsSimpleOp.h +299 -0
  428. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IsValidOp.h +307 -0
  429. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/MakeValid.h +76 -0
  430. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonIntersectionAnalyzer.h +125 -0
  431. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonRing.h +231 -0
  432. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonRingSelfNode.h +84 -0
  433. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonRingTouch.h +65 -0
  434. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonTopologyAnalyzer.h +211 -0
  435. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/RepeatedPointRemover.h +60 -0
  436. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/RepeatedPointTester.h +66 -0
  437. package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/TopologyValidationError.h +76 -0
  438. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/DirectedEdge.h +237 -0
  439. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/DirectedEdgeStar.h +149 -0
  440. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/Edge.h +141 -0
  441. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/GraphComponent.h +182 -0
  442. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/Node.h +158 -0
  443. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/NodeMap.h +135 -0
  444. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/PlanarGraph.h +293 -0
  445. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/Subgraph.h +181 -0
  446. package/dist/prebuilt/Android-x86_64/include/geos/planargraph/algorithm/ConnectedSubgraphFinder.h +92 -0
  447. package/dist/prebuilt/Android-x86_64/include/geos/precision/CommonBits.h +97 -0
  448. package/dist/prebuilt/Android-x86_64/include/geos/precision/CommonBitsOp.h +172 -0
  449. package/dist/prebuilt/Android-x86_64/include/geos/precision/CommonBitsRemover.h +92 -0
  450. package/dist/prebuilt/Android-x86_64/include/geos/precision/EnhancedPrecisionOp.h +105 -0
  451. package/dist/prebuilt/Android-x86_64/include/geos/precision/GeometryPrecisionReducer.h +202 -0
  452. package/dist/prebuilt/Android-x86_64/include/geos/precision/MinimumClearance.h +57 -0
  453. package/dist/prebuilt/Android-x86_64/include/geos/precision/PointwisePrecisionReducerTransformer.h +74 -0
  454. package/dist/prebuilt/Android-x86_64/include/geos/precision/PrecisionReducerCoordinateOperation.h +65 -0
  455. package/dist/prebuilt/Android-x86_64/include/geos/precision/PrecisionReducerTransformer.h +95 -0
  456. package/dist/prebuilt/Android-x86_64/include/geos/precision/SimpleGeometryPrecisionReducer.h +88 -0
  457. package/dist/prebuilt/Android-x86_64/include/geos/profiler.h +185 -0
  458. package/dist/prebuilt/Android-x86_64/include/geos/shape/fractal/HilbertCode.h +128 -0
  459. package/dist/prebuilt/Android-x86_64/include/geos/shape/fractal/HilbertEncoder.h +96 -0
  460. package/dist/prebuilt/Android-x86_64/include/geos/shape/fractal/MortonCode.h +140 -0
  461. package/dist/prebuilt/Android-x86_64/include/geos/simplify/ComponentJumpChecker.h +120 -0
  462. package/dist/prebuilt/Android-x86_64/include/geos/simplify/DouglasPeuckerLineSimplifier.h +103 -0
  463. package/dist/prebuilt/Android-x86_64/include/geos/simplify/DouglasPeuckerSimplifier.h +84 -0
  464. package/dist/prebuilt/Android-x86_64/include/geos/simplify/LineSegmentIndex.h +87 -0
  465. package/dist/prebuilt/Android-x86_64/include/geos/simplify/LinkedLine.h +84 -0
  466. package/dist/prebuilt/Android-x86_64/include/geos/simplify/LinkedRing.h +69 -0
  467. package/dist/prebuilt/Android-x86_64/include/geos/simplify/PolygonHullSimplifier.h +232 -0
  468. package/dist/prebuilt/Android-x86_64/include/geos/simplify/RingHull.h +209 -0
  469. package/dist/prebuilt/Android-x86_64/include/geos/simplify/RingHullIndex.h +55 -0
  470. package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLineSegment.h +83 -0
  471. package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLineString.h +145 -0
  472. package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLineStringSimplifier.h +178 -0
  473. package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLinesSimplifier.h +88 -0
  474. package/dist/prebuilt/Android-x86_64/include/geos/simplify/TopologyPreservingSimplifier.h +93 -0
  475. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/DelaunayTriangulationBuilder.h +166 -0
  476. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/IncrementalDelaunayTriangulator.h +106 -0
  477. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/VoronoiDiagramBuilder.h +157 -0
  478. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/ConstrainedDelaunayTriangulator.h +101 -0
  479. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonEarClipper.h +218 -0
  480. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonHoleJoiner.h +267 -0
  481. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonNoder.h +101 -0
  482. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonTriangulator.h +105 -0
  483. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/TriDelaunayImprover.h +147 -0
  484. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h +63 -0
  485. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/LocateFailureException.h +37 -0
  486. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdge.h +443 -0
  487. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdgeLocator.h +48 -0
  488. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdgeQuartet.h +64 -0
  489. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdgeSubdivision.h +514 -0
  490. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/TrianglePredicate.h +124 -0
  491. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/TriangleVisitor.h +48 -0
  492. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/Vertex.h +312 -0
  493. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/Tri.h +186 -0
  494. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/TriEdge.h +80 -0
  495. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/TriList.h +182 -0
  496. package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/TriangulationBuilder.h +86 -0
  497. package/dist/prebuilt/Android-x86_64/include/geos/unload.h +33 -0
  498. package/dist/prebuilt/Android-x86_64/include/geos/util/Assert.h +66 -0
  499. package/dist/prebuilt/Android-x86_64/include/geos/util/AssertionFailedException.h +48 -0
  500. package/dist/prebuilt/Android-x86_64/include/geos/util/CoordinateArrayFilter.h +85 -0
  501. package/dist/prebuilt/Android-x86_64/include/geos/util/GEOSException.h +64 -0
  502. package/dist/prebuilt/Android-x86_64/include/geos/util/GeometricShapeFactory.h +198 -0
  503. package/dist/prebuilt/Android-x86_64/include/geos/util/IllegalArgumentException.h +50 -0
  504. package/dist/prebuilt/Android-x86_64/include/geos/util/IllegalStateException.h +42 -0
  505. package/dist/prebuilt/Android-x86_64/include/geos/util/Interrupt.h +71 -0
  506. package/dist/prebuilt/Android-x86_64/include/geos/util/Machine.h +26 -0
  507. package/dist/prebuilt/Android-x86_64/include/geos/util/TopologyException.h +64 -0
  508. package/dist/prebuilt/Android-x86_64/include/geos/util/UniqueCoordinateArrayFilter.h +114 -0
  509. package/dist/prebuilt/Android-x86_64/include/geos/util/UnsupportedOperationException.h +52 -0
  510. package/dist/prebuilt/Android-x86_64/include/geos/util/math.h +45 -0
  511. package/dist/prebuilt/Android-x86_64/include/geos/util/string.h +31 -0
  512. package/dist/prebuilt/Android-x86_64/include/geos/util.h +86 -0
  513. package/dist/prebuilt/Android-x86_64/include/geos/vend/include_nlohmann_json.hpp +24 -0
  514. package/dist/prebuilt/Android-x86_64/include/geos/vend/json.hpp +25597 -0
  515. package/dist/prebuilt/Android-x86_64/include/geos/version.h +37 -0
  516. package/dist/prebuilt/Android-x86_64/include/geos.h +40 -0
  517. package/dist/prebuilt/Android-x86_64/include/geos_c.h +6121 -0
  518. package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-config-version.cmake +43 -0
  519. package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-config.cmake +11 -0
  520. package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-targets-release.cmake +30 -0
  521. package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-targets.cmake +124 -0
  522. package/dist/prebuilt/Android-x86_64/lib/libgeos.so +0 -0
  523. package/dist/prebuilt/Android-x86_64/lib/libgeos_c.so +0 -0
  524. package/dist/prebuilt/Android-x86_64/lib/pkgconfig/geos.pc +12 -0
  525. package/dist/prebuilt/iOS-iphoneos/bin/geosop.app/Info.plist +0 -0
  526. package/dist/prebuilt/iOS-iphoneos/bin/geosop.app/_CodeSignature/CodeResources +1 -1
  527. package/dist/prebuilt/iOS-iphoneos/bin/geosop.app/geosop +0 -0
  528. package/dist/prebuilt/iOS-iphoneos/lib/libgeos.a +0 -0
  529. package/dist/prebuilt/iOS-iphoneos/lib/libgeos_c.a +0 -0
  530. package/dist/prebuilt/iOS-iphonesimulator/bin/geosop.app/Info.plist +0 -0
  531. package/dist/prebuilt/iOS-iphonesimulator/bin/geosop.app/_CodeSignature/CodeResources +1 -1
  532. package/dist/prebuilt/iOS-iphonesimulator/bin/geosop.app/geosop +0 -0
  533. package/dist/prebuilt/iOS-iphonesimulator/lib/libgeos.a +0 -0
  534. package/dist/prebuilt/iOS-iphonesimulator/lib/libgeos_c.a +0 -0
  535. package/geos.xcframework/ios-arm64_arm64e/libgeos.a +0 -0
  536. package/geos.xcframework/ios-arm64_arm64e_x86_64-simulator/libgeos.a +0 -0
  537. package/geos_c.xcframework/ios-arm64_arm64e/libgeos_c.a +0 -0
  538. package/geos_c.xcframework/ios-arm64_arm64e_x86_64-simulator/libgeos_c.a +0 -0
  539. package/package.json +2 -2
@@ -0,0 +1,1051 @@
1
+ /**********************************************************************
2
+ *
3
+ * GEOS - Geometry Engine Open Source
4
+ * http://geos.osgeo.org
5
+ *
6
+ * Copyright (C) 2009 2011 Sandro Santilli <strk@kbt.io>
7
+ * Copyright (C) 2005 2006 Refractions Research Inc.
8
+ * Copyright (C) 2001-2002 Vivid Solutions Inc.
9
+ *
10
+ * This is free software; you can redistribute and/or modify it under
11
+ * the terms of the GNU Lesser General Public Licence as published
12
+ * by the Free Software Foundation.
13
+ * See the COPYING file for more information.
14
+ *
15
+ **********************************************************************
16
+ *
17
+ * Last port: geom/Geometry.java rev. 1.112
18
+ *
19
+ **********************************************************************/
20
+
21
+ #pragma once
22
+
23
+ #ifndef USE_UNSTABLE_GEOS_CPP_API
24
+ #ifndef _MSC_VER
25
+ # warning "The GEOS C++ API is unstable, please use the C API instead"
26
+ # warning "HINT: #include geos_c.h"
27
+ #else
28
+ #pragma message("The GEOS C++ API is unstable, please use the C API instead")
29
+ #pragma message("HINT: #include geos_c.h")
30
+ #endif
31
+ #endif
32
+
33
+ #include <geos/export.h>
34
+ #include <geos/geom/Envelope.h>
35
+ #include <geos/geom/Dimension.h> // for Dimension::DimensionType
36
+ #include <geos/geom/GeometryComponentFilter.h> // for inheritance
37
+ #include <geos/geom/CoordinateSequence.h> // to materialize CoordinateSequence
38
+
39
+ #include <algorithm>
40
+ #include <string>
41
+ #include <iostream>
42
+ #include <vector>
43
+ #include <memory>
44
+
45
+ #ifdef _MSC_VER
46
+ #pragma warning(push)
47
+ #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
48
+ #pragma warning(disable: 4355) // warning C4355: 'this' : used in base member initializer list
49
+ #endif
50
+
51
+ // Forward declarations
52
+ namespace geos {
53
+ namespace geom {
54
+ class Coordinate;
55
+ class CoordinateFilter;
56
+ class CoordinateSequence;
57
+ class CoordinateSequenceFilter;
58
+ class GeometryComponentFilter;
59
+ class GeometryFactory;
60
+ class GeometryFilter;
61
+ class PrecisionModel;
62
+ class Point;
63
+ class IntersectionMatrix;
64
+ }
65
+ namespace io { // geos.io
66
+ class Unload;
67
+ } // namespace geos.io
68
+ }
69
+
70
+ namespace geos { // geos
71
+ namespace geom { // geos::geom
72
+
73
+ /// Geometry types
74
+ enum GeometryTypeId : int {
75
+ /// a point
76
+ GEOS_POINT,
77
+ /// a linestring
78
+ GEOS_LINESTRING,
79
+ /// a linear ring (linestring with 1st point == last point)
80
+ GEOS_LINEARRING,
81
+ /// a polygon
82
+ GEOS_POLYGON,
83
+ /// a collection of points
84
+ GEOS_MULTIPOINT,
85
+ /// a collection of linestrings
86
+ GEOS_MULTILINESTRING,
87
+ /// a collection of polygons
88
+ GEOS_MULTIPOLYGON,
89
+ /// a collection of heterogeneus geometries
90
+ GEOS_GEOMETRYCOLLECTION,
91
+ GEOS_CIRCULARSTRING,
92
+ GEOS_COMPOUNDCURVE,
93
+ GEOS_CURVEPOLYGON,
94
+ GEOS_MULTICURVE,
95
+ GEOS_MULTISURFACE,
96
+ };
97
+
98
+ enum GeometrySortIndex {
99
+ SORTINDEX_POINT = 0,
100
+ SORTINDEX_MULTIPOINT = 1,
101
+ SORTINDEX_LINESTRING = 2,
102
+ SORTINDEX_LINEARRING = 3,
103
+ SORTINDEX_MULTILINESTRING = 4,
104
+ SORTINDEX_POLYGON = 5,
105
+ SORTINDEX_MULTIPOLYGON = 6,
106
+ SORTINDEX_GEOMETRYCOLLECTION = 7,
107
+ SORTINDEX_CIRCULARSTRING = 8,
108
+ SORTINDEX_COMPOUNDCURVE = 9,
109
+ SORTINDEX_CURVEPOLYGON = 10,
110
+ SORTINDEX_MULTICURVE = 11,
111
+ SORTINDEX_MULTISURFACE = 12,
112
+ };
113
+
114
+ /**
115
+ * \class Geometry geom.h geos.h
116
+ *
117
+ * \brief Basic implementation of Geometry, constructed and
118
+ * destructed by GeometryFactory.
119
+ *
120
+ * <code>clone</code> returns a deep copy of the object.
121
+ * Use GeometryFactory to construct.
122
+ *
123
+ * <H3>Binary Predicates</H3>
124
+ * Because it is not clear at this time
125
+ * what semantics for spatial
126
+ * analysis methods involving <code>GeometryCollection</code>s would be useful,
127
+ * <code>GeometryCollection</code>s are not supported as arguments to binary
128
+ * predicates (other than <code>convexHull</code>) or the <code>relate</code>
129
+ * method.
130
+ *
131
+ * <H3>Set-Theoretic Methods</H3>
132
+ *
133
+ * The spatial analysis methods will
134
+ * return the most specific class possible to represent the result. If the
135
+ * result is homogeneous, a <code>Point</code>, <code>LineString</code>, or
136
+ * <code>Polygon</code> will be returned if the result contains a single
137
+ * element; otherwise, a <code>MultiPoint</code>, <code>MultiLineString</code>,
138
+ * or <code>MultiPolygon</code> will be returned. If the result is
139
+ * heterogeneous a <code>GeometryCollection</code> will be returned. <P>
140
+ *
141
+ * Because it is not clear at this time what semantics for set-theoretic
142
+ * methods involving <code>GeometryCollection</code>s would be useful,
143
+ * <code>GeometryCollections</code>
144
+ * are not supported as arguments to the set-theoretic methods.
145
+ *
146
+ * <H4>Representation of Computed Geometries </H4>
147
+ *
148
+ * The SFS states that the result
149
+ * of a set-theoretic method is the "point-set" result of the usual
150
+ * set-theoretic definition of the operation (SFS 3.2.21.1). However, there are
151
+ * sometimes many ways of representing a point set as a <code>Geometry</code>.
152
+ * <P>
153
+ *
154
+ * The SFS does not specify an unambiguous representation of a given point set
155
+ * returned from a spatial analysis method. One goal of JTS is to make this
156
+ * specification precise and unambiguous. JTS will use a canonical form for
157
+ * <code>Geometry</code>s returned from spatial analysis methods. The canonical
158
+ * form is a <code>Geometry</code> which is simple and noded:
159
+ * <UL>
160
+ * <LI> Simple means that the Geometry returned will be simple according to
161
+ * the JTS definition of <code>isSimple</code>.
162
+ * <LI> Noded applies only to overlays involving <code>LineString</code>s. It
163
+ * means that all intersection points on <code>LineString</code>s will be
164
+ * present as endpoints of <code>LineString</code>s in the result.
165
+ * </UL>
166
+ * This definition implies that non-simple geometries which are arguments to
167
+ * spatial analysis methods must be subjected to a line-dissolve process to
168
+ * ensure that the results are simple.
169
+ *
170
+ * <H4> Constructed Points And The Precision Model </H4>
171
+ *
172
+ * The results computed by the set-theoretic methods may
173
+ * contain constructed points which are not present in the input Geometry.
174
+ * These new points arise from intersections between line segments in the
175
+ * edges of the input Geometry. In the general case it is not
176
+ * possible to represent constructed points exactly. This is due to the fact
177
+ * that the coordinates of an intersection point may contain twice as many bits
178
+ * of precision as the coordinates of the input line segments. In order to
179
+ * represent these constructed points explicitly, JTS must truncate them to fit
180
+ * the PrecisionModel.
181
+ *
182
+ * Unfortunately, truncating coordinates moves them slightly. Line segments
183
+ * which would not be coincident in the exact result may become coincident in
184
+ * the truncated representation. This in turn leads to "topology collapses" --
185
+ * situations where a computed element has a lower dimension than it would in
186
+ * the exact result.
187
+ *
188
+ * When JTS detects topology collapses during the computation of spatial
189
+ * analysis methods, it will throw an exception. If possible the exception will
190
+ * report the location of the collapse.
191
+ *
192
+ * equals(Object) and hashCode are not overridden, so that when two
193
+ * topologically equal Geometries are added to HashMaps and HashSets, they
194
+ * remain distinct. This behaviour is desired in many cases.
195
+ *
196
+ */
197
+ class GEOS_DLL Geometry {
198
+
199
+ public:
200
+
201
+ friend class GeometryFactory;
202
+
203
+ /// A vector of const Geometry pointers
204
+ using ConstVect = std::vector<const Geometry*>;
205
+
206
+ /// A vector of non-const Geometry pointers
207
+ using NonConstVect = std::vector<Geometry*>;
208
+
209
+ /// An unique_ptr of Geometry
210
+ using Ptr = std::unique_ptr<Geometry> ;
211
+
212
+ /// Make a deep-copy of this Geometry
213
+ std::unique_ptr<Geometry> clone() const { return std::unique_ptr<Geometry>(cloneImpl()); }
214
+
215
+ /// Destroy Geometry and all components
216
+ virtual ~Geometry();
217
+
218
+
219
+ /**
220
+ * \brief
221
+ * Gets the factory which contains the context in which this
222
+ * geometry was created.
223
+ *
224
+ * @return the factory for this geometry
225
+ */
226
+ const GeometryFactory*
227
+ getFactory() const
228
+ {
229
+ return _factory;
230
+ }
231
+
232
+ /**
233
+ * \brief
234
+ * A simple scheme for applications to add their own custom data to
235
+ * a Geometry.
236
+ * An example use might be to add an object representing a
237
+ * Coordinate Reference System.
238
+ *
239
+ * Note that user data objects are not present in geometries created
240
+ * by construction methods.
241
+ *
242
+ * @param newUserData an object, the semantics for which are
243
+ * defined by the application using this Geometry
244
+ */
245
+ void
246
+ setUserData(void* newUserData)
247
+ {
248
+ _userData = newUserData;
249
+ }
250
+
251
+ /**
252
+ * \brief
253
+ * Gets the user data object for this geometry, if any.
254
+ *
255
+ * @return the user data object, or <code>null</code> if none set
256
+ */
257
+ void*
258
+ getUserData() const
259
+ {
260
+ return _userData;
261
+ }
262
+
263
+ /** \brief
264
+ * Returns the ID of the Spatial Reference System used by the Geometry.
265
+ *
266
+ * GEOS supports Spatial Reference System information in the simple way
267
+ * defined in the SFS. A Spatial Reference System ID (SRID) is present
268
+ * in each Geometry object. Geometry provides basic accessor operations
269
+ * for this field, but no others. The SRID is represented as an integer.
270
+ *
271
+ * @return the ID of the coordinate space in which the Geometry is defined.
272
+ */
273
+ virtual int
274
+ getSRID() const
275
+ {
276
+ return SRID;
277
+ }
278
+
279
+ /** \brief
280
+ * Sets the ID of the Spatial Reference System used by the Geometry.
281
+ */
282
+ virtual void
283
+ setSRID(int newSRID)
284
+ {
285
+ SRID = newSRID;
286
+ }
287
+
288
+ /**
289
+ * \brief
290
+ * Get the PrecisionModel used to create this Geometry.
291
+ */
292
+ const PrecisionModel* getPrecisionModel() const;
293
+
294
+ /// Returns a vertex of this Geometry, or NULL if this is the empty geometry.
295
+ virtual const CoordinateXY* getCoordinate() const = 0; //Abstract
296
+
297
+ /**
298
+ * \brief
299
+ * Returns this Geometry vertices.
300
+ * Caller takes ownership of the returned object.
301
+ */
302
+ virtual std::unique_ptr<CoordinateSequence> getCoordinates() const = 0; //Abstract
303
+
304
+ /// Returns the count of this Geometrys vertices.
305
+ virtual std::size_t getNumPoints() const = 0; //Abstract
306
+
307
+ /// Returns false if the Geometry not simple.
308
+ virtual bool isSimple() const;
309
+
310
+ /// Return a string representation of this Geometry type
311
+ virtual std::string getGeometryType() const = 0; //Abstract
312
+
313
+ /// Returns whether the Geometry contains curved components
314
+ virtual bool hasCurvedComponents() const;
315
+
316
+ /// Return an integer representation of this Geometry type
317
+ virtual GeometryTypeId getGeometryTypeId() const = 0; //Abstract
318
+
319
+ /**
320
+ * \brief Returns the number of geometries in this collection,
321
+ * or 1 if this is not a collection.
322
+ *
323
+ * Empty collection or multi-geometry types return 0,
324
+ * and empty simple geometry types return 1.
325
+ */
326
+ virtual std::size_t
327
+ getNumGeometries() const
328
+ {
329
+ return 1;
330
+ }
331
+
332
+ /// \brief Returns a pointer to the nth Geometry in this collection
333
+ /// (or self if this is not a collection)
334
+ virtual const Geometry*
335
+ getGeometryN(std::size_t /*n*/) const
336
+ {
337
+ return this;
338
+ }
339
+
340
+ /**
341
+ * \brief Tests the validity of this <code>Geometry</code>.
342
+ *
343
+ * Subclasses provide their own definition of "valid".
344
+ *
345
+ * @return <code>true</code> if this <code>Geometry</code> is valid
346
+ *
347
+ * @see IsValidOp
348
+ */
349
+ virtual bool isValid() const;
350
+
351
+ /// Returns whether or not the set of points in this Geometry is empty.
352
+ virtual bool isEmpty() const = 0; //Abstract
353
+
354
+ /// Polygon overrides to check for actual rectangle
355
+ virtual bool
356
+ isRectangle() const
357
+ {
358
+ return false;
359
+ }
360
+
361
+ /// Returns the dimension of this Geometry (0=point, 1=line, 2=surface)
362
+ virtual Dimension::DimensionType getDimension() const = 0; //Abstract
363
+
364
+ /// Checks whether any component of this geometry has dimension d
365
+ virtual bool hasDimension(Dimension::DimensionType d) const {
366
+ return getDimension() == d;
367
+ }
368
+
369
+ /// Checks whether this Geometry consists only of components having dimension d.
370
+ virtual bool isDimensionStrict(Dimension::DimensionType d) const {
371
+ return d == getDimension();
372
+ }
373
+
374
+ bool isPuntal() const {
375
+ return isDimensionStrict(Dimension::P);
376
+ }
377
+
378
+ bool isLineal() const {
379
+ return isDimensionStrict(Dimension::L);
380
+ }
381
+
382
+ bool isPolygonal() const {
383
+ return isDimensionStrict(Dimension::A);
384
+ }
385
+
386
+ bool isMixedDimension() const;
387
+ bool isMixedDimension(Dimension::DimensionType* baseDim) const;
388
+
389
+ bool isCollection() const {
390
+ int t = getGeometryTypeId();
391
+ return t == GEOS_GEOMETRYCOLLECTION ||
392
+ t == GEOS_MULTIPOINT ||
393
+ t == GEOS_MULTILINESTRING ||
394
+ t == GEOS_MULTIPOLYGON;
395
+ }
396
+
397
+ static GeometryTypeId multiTypeId(GeometryTypeId typeId) {
398
+ switch (typeId) {
399
+ case GEOS_POINT: return GEOS_MULTIPOINT;
400
+ case GEOS_LINESTRING: return GEOS_MULTILINESTRING;
401
+ case GEOS_POLYGON: return GEOS_MULTIPOLYGON;
402
+ default: return typeId;
403
+ }
404
+ }
405
+
406
+ /// Returns the coordinate dimension of this Geometry (2=XY, 3=XYZ or XYM, 4=XYZM).
407
+ virtual uint8_t getCoordinateDimension() const = 0; //Abstract
408
+
409
+ virtual bool hasZ() const = 0;
410
+
411
+ virtual bool hasM() const = 0;
412
+
413
+ /**
414
+ * \brief
415
+ * Returns the boundary, or an empty geometry of appropriate
416
+ * dimension if this <code>Geometry</code> is empty.
417
+ *
418
+ * (In the case of zero-dimensional geometries,
419
+ * an empty GeometryCollection is returned.)
420
+ * For a discussion of this function, see the OpenGIS Simple
421
+ * Features Specification. As stated in SFS Section 2.1.13.1,
422
+ * "the boundary of a Geometry is a set of Geometries of the
423
+ * next lower dimension."
424
+ *
425
+ * @return the closure of the combinatorial boundary
426
+ * of this <code>Geometry</code>.
427
+ * Ownershipof the returned object transferred to caller.
428
+ */
429
+ virtual std::unique_ptr<Geometry> getBoundary() const = 0; //Abstract
430
+
431
+ /// Returns the dimension of this Geometrys inherent boundary.
432
+ virtual int getBoundaryDimension() const = 0; //Abstract
433
+
434
+ /// Returns this Geometrys bounding box.
435
+ virtual std::unique_ptr<Geometry> getEnvelope() const;
436
+
437
+ /** \brief
438
+ * Returns the minimum and maximum x and y values in this Geometry,
439
+ * or a null Envelope if this Geometry is empty.
440
+ */
441
+ virtual const Envelope* getEnvelopeInternal() const = 0;
442
+
443
+ /**
444
+ * Tests whether this geometry is disjoint from the specified geometry.
445
+ *
446
+ * The <code>disjoint</code> predicate has the following equivalent
447
+ * definitions:
448
+ * - The two geometries have no point in common
449
+ * - The DE-9IM Intersection Matrix for the two geometries matches
450
+ * <code>[FF*FF****]</code>
451
+ * - <code>! g.intersects(this)</code>
452
+ * (<code>disjoint</code> is the inverse of <code>intersects</code>)
453
+ *
454
+ * @param other the Geometry with which to compare this Geometry
455
+ * @return true if the two <code>Geometry</code>s are disjoint
456
+ *
457
+ * @see Geometry::intersects
458
+ */
459
+ virtual bool disjoint(const Geometry* other) const;
460
+
461
+ /** \brief
462
+ * Returns true if the DE-9IM intersection matrix for the two
463
+ * Geometrys is FT*******, F**T***** or F***T****.
464
+ */
465
+ virtual bool touches(const Geometry* other) const;
466
+
467
+ /// Returns true if disjoint returns false.
468
+ virtual bool intersects(const Geometry* g) const;
469
+
470
+ /**
471
+ * Tests whether this geometry crosses the specified geometry.
472
+ *
473
+ * The <code>crosses</code> predicate has the following equivalent
474
+ * definitions:
475
+ * - The geometries have some but not all interior points in common.
476
+ * - The DE-9IM Intersection Matrix for the two geometries matches
477
+ * - <code>[T*T******]</code> (for P/L, P/A, and L/A situations)
478
+ * - <code>[T*****T**]</code> (for L/P, A/P, and A/L situations)
479
+ * - <code>[0********]</code> (for L/L situations)
480
+ * For any other combination of dimensions this predicate returns
481
+ * <code>false</code>.
482
+ *
483
+ * The SFS defined this predicate only for P/L, P/A, L/L, and L/A
484
+ * situations.
485
+ * JTS extends the definition to apply to L/P, A/P and A/L situations
486
+ * as well, in order to make the relation symmetric.
487
+ *
488
+ * @param g the <code>Geometry</code> with which to compare this
489
+ * <code>Geometry</code>
490
+ *@return <code>true</code> if the two <code>Geometry</code>s cross.
491
+ */
492
+ virtual bool crosses(const Geometry* g) const;
493
+
494
+ /** \brief
495
+ * Returns true if the DE-9IM intersection matrix for the two
496
+ * Geometrys is T*F**F***.
497
+ */
498
+ virtual bool within(const Geometry* g) const;
499
+
500
+ /// Returns true if other.within(this) returns true.
501
+ virtual bool contains(const Geometry* g) const;
502
+
503
+ /** \brief
504
+ * Returns true if the DE-9IM intersection matrix for the two
505
+ * Geometrys is T*T***T** (for two points or two surfaces)
506
+ * 1*T***T** (for two curves).
507
+ */
508
+ virtual bool overlaps(const Geometry* g) const;
509
+
510
+ /**
511
+ * \brief
512
+ * Returns true if the elements in the DE-9IM intersection matrix
513
+ * for the two Geometrys match the elements in intersectionPattern.
514
+ *
515
+ * IntersectionPattern elements may be: 0 1 2 T ( = 0, 1 or 2)
516
+ * F ( = -1) * ( = -1, 0, 1 or 2).
517
+ *
518
+ * For more information on the DE-9IM, see the OpenGIS Simple
519
+ * Features Specification.
520
+ *
521
+ * @throws util::IllegalArgumentException if either arg is a collection
522
+ *
523
+ */
524
+ bool relate(const Geometry* g,
525
+ const std::string& intersectionPattern) const;
526
+
527
+ bool
528
+ relate(const Geometry& g, const std::string& intersectionPattern) const
529
+ {
530
+ return relate(&g, intersectionPattern);
531
+ }
532
+
533
+ /// Returns the DE-9IM intersection matrix for the two Geometrys.
534
+ std::unique_ptr<IntersectionMatrix> relate(const Geometry* g) const;
535
+
536
+ std::unique_ptr<IntersectionMatrix> relate(const Geometry& g) const;
537
+
538
+ /**
539
+ * \brief
540
+ * Returns true if the DE-9IM intersection matrix for the two
541
+ * Geometrys is T*F**FFF*.
542
+ */
543
+ virtual bool equals(const Geometry* g) const;
544
+
545
+ /** \brief
546
+ * Returns <code>true</code> if this geometry covers the
547
+ * specified geometry.
548
+ *
549
+ * The <code>covers</code> predicate has the following
550
+ * equivalent definitions:
551
+ *
552
+ * - Every point of the other geometry is a point of this geometry.
553
+ * - The DE-9IM Intersection Matrix for the two geometries is
554
+ * <code>T*****FF*</code>
555
+ * or <code>*T****FF*</code>
556
+ * or <code>***T**FF*</code>
557
+ * or <code>****T*FF*</code>
558
+ * - <code>g.coveredBy(this)</code>
559
+ * (<code>covers</code> is the inverse of <code>coveredBy</code>)
560
+ *
561
+ * If either geometry is empty, the value of this predicate
562
+ * is <tt>false</tt>.
563
+ *
564
+ * This predicate is similar to {@link #contains},
565
+ * but is more inclusive (i.e. returns <tt>true</tt> for more cases).
566
+ * In particular, unlike <code>contains</code> it does not distinguish
567
+ * between points in the boundary and in the interior of geometries.
568
+ * For most situations, <code>covers</code> should be used in
569
+ * preference to <code>contains</code>.
570
+ * As an added benefit, <code>covers</code> is more amenable to
571
+ * optimization, and hence should be more performant.
572
+ *
573
+ * @param g
574
+ * the <code>Geometry</code> with which to compare this
575
+ * <code>Geometry</code>
576
+ *
577
+ * @return <code>true</code> if this <code>Geometry</code>
578
+ * covers <code>g</code>
579
+ *
580
+ * @see Geometry::contains
581
+ * @see Geometry::coveredBy
582
+ */
583
+ bool covers(const Geometry* g) const;
584
+
585
+ /** \brief
586
+ * Tests whether this geometry is covered by the
587
+ * specified geometry.
588
+ *
589
+ * The <code>coveredBy</code> predicate has the following
590
+ * equivalent definitions:
591
+ *
592
+ * - Every point of this geometry is a point of the other geometry.
593
+ * - The DE-9IM Intersection Matrix for the two geometries matches
594
+ * <code>[T*F**F***]</code>
595
+ * or <code>[*TF**F***]</code>
596
+ * or <code>[**FT*F***]</code>
597
+ * or <code>[**F*TF***]</code>
598
+ * - <code>g.covers(this)</code>
599
+ * (<code>coveredBy</code> is the converse of <code>covers</code>)
600
+ *
601
+ * If either geometry is empty, the value of this predicate
602
+ * is <tt>false</tt>.
603
+ *
604
+ * This predicate is similar to {@link #within},
605
+ * but is more inclusive (i.e. returns <tt>true</tt> for more cases).
606
+ *
607
+ * @param g the <code>Geometry</code> with which to compare
608
+ * this <code>Geometry</code>
609
+ * @return <code>true</code> if this <code>Geometry</code>
610
+ * is covered by <code>g</code>
611
+ *
612
+ * @see Geometry#within
613
+ * @see Geometry#covers
614
+ */
615
+ bool coveredBy(const Geometry* g) const;
616
+
617
+
618
+ /// Returns the Well-known Text representation of this Geometry.
619
+ virtual std::string toString() const;
620
+
621
+ virtual std::string toText() const;
622
+
623
+ /// Returns a buffer region around this Geometry having the given width.
624
+ ///
625
+ /// @throws util::TopologyException if a robustness error occurs
626
+ ///
627
+ std::unique_ptr<Geometry> buffer(double distance) const;
628
+
629
+ /// \brief
630
+ /// Returns a buffer region around this Geometry having the
631
+ /// given width and with a specified number of segments used
632
+ /// to approximate curves.
633
+ ///
634
+ /// @throws util::TopologyException if a robustness error occurs
635
+ ///
636
+ std::unique_ptr<Geometry> buffer(double distance, int quadrantSegments) const;
637
+
638
+ /** \brief
639
+ * Computes a buffer area around this geometry having the given
640
+ * width and with a specified accuracy of approximation for circular
641
+ * arcs, and using a specified end cap style.
642
+ *
643
+ * Buffer area boundaries can contain circular arcs.
644
+ * To represent these arcs using linear geometry they must be
645
+ * approximated with line segments.
646
+ *
647
+ * The <code>quadrantSegments</code> argument allows controlling the
648
+ * accuracy of the approximation by specifying the number of line
649
+ * segments used to represent a quadrant of a circle
650
+ *
651
+ * The end cap style specifies the buffer geometry that will be
652
+ * created at the ends of linestrings. The styles provided are:
653
+ *
654
+ * - BufferOp::CAP_ROUND - (default) a semi-circle
655
+ * - BufferOp::CAP_BUTT - a straight line perpendicular to the
656
+ * end segment
657
+ * - BufferOp::CAP_SQUARE - a half-square
658
+ *
659
+ *
660
+ * @param distance the width of the buffer
661
+ * (may be positive, negative or 0)
662
+ *
663
+ * @param quadrantSegments the number of line segments used
664
+ * to represent a quadrant of a circle
665
+ *
666
+ * @param endCapStyle the end cap style to use
667
+ *
668
+ * @return an area geometry representing the buffer region
669
+ *
670
+ * @throws util::TopologyException if a robustness error occurs
671
+ *
672
+ * @see BufferOp
673
+ */
674
+ std::unique_ptr<Geometry> buffer(double distance, int quadrantSegments,
675
+ int endCapStyle) const;
676
+
677
+ /// \brief
678
+ /// Returns the smallest convex Polygon that contains
679
+ /// all the points in the Geometry.
680
+ virtual std::unique_ptr<Geometry> convexHull() const;
681
+
682
+ /** \brief
683
+ * Computes a new geometry which has all component coordinate sequences
684
+ * in reverse order (opposite orientation) to this one.
685
+ *
686
+ * @return a reversed geometry
687
+ */
688
+ std::unique_ptr<Geometry> reverse() const { return std::unique_ptr<Geometry>(reverseImpl()); }
689
+
690
+ /** \brief
691
+ * Returns a Geometry representing the points shared by
692
+ * this Geometry and other.
693
+ *
694
+ * @throws util::TopologyException if a robustness error occurs
695
+ * @throws util::IllegalArgumentException if either input is a
696
+ * non-empty GeometryCollection
697
+ *
698
+ */
699
+ std::unique_ptr<Geometry> intersection(const Geometry* other) const;
700
+
701
+ /** \brief
702
+ * Returns a Geometry representing all the points in this Geometry
703
+ * and other.
704
+ *
705
+ * @throws util::TopologyException if a robustness error occurs
706
+ * @throws util::IllegalArgumentException if either input is a
707
+ * non-empty GeometryCollection
708
+ *
709
+ */
710
+ std::unique_ptr<Geometry> Union(const Geometry* other) const;
711
+ // throw(IllegalArgumentException *, TopologyException *);
712
+
713
+ /** \brief
714
+ * Computes the union of all the elements of this geometry. Heterogeneous
715
+ * [GeometryCollections](@ref GeometryCollection) are fully supported.
716
+ *
717
+ * The result obeys the following contract:
718
+ *
719
+ * - Unioning a set of [LineStrings](@ref LineString) has the effect of fully noding
720
+ * and dissolving the linework.
721
+ * - Unioning a set of [Polygons](@ref Polygon) will always
722
+ * return a polygonal geometry (unlike Geometry::Union(const Geometry* other) const),
723
+ * which may return geometrys of lower dimension if a topology collapse
724
+ * occurred.
725
+ *
726
+ * @return the union geometry
727
+ *
728
+ * @see UnaryUnionOp
729
+ */
730
+ Ptr Union() const;
731
+ // throw(IllegalArgumentException *, TopologyException *);
732
+
733
+ /**
734
+ * \brief
735
+ * Returns a Geometry representing the points making up this
736
+ * Geometry that do not make up other.
737
+ *
738
+ * @throws util::TopologyException if a robustness error occurs
739
+ * @throws util::IllegalArgumentException if either input is a
740
+ * non-empty GeometryCollection
741
+ *
742
+ */
743
+ std::unique_ptr<Geometry> difference(const Geometry* other) const;
744
+
745
+ /** \brief
746
+ * Returns a set combining the points in this Geometry not in other,
747
+ * and the points in other not in this Geometry.
748
+ *
749
+ * @throws util::TopologyException if a robustness error occurs
750
+ * @throws util::IllegalArgumentException if either input is a
751
+ * non-empty GeometryCollection
752
+ *
753
+ */
754
+ std::unique_ptr<Geometry> symDifference(const Geometry* other) const;
755
+
756
+ /** \brief
757
+ * Returns true iff the two Geometrys are of the same type and their
758
+ * vertices corresponding by index are equal up to a specified distance
759
+ * tolerance. Geometries are not required to have the same dimemsion;
760
+ * any Z/M values are ignored.
761
+ */
762
+ virtual bool equalsExact(const Geometry* other, double tolerance = 0)
763
+ const = 0; // Abstract
764
+
765
+ /** \brief
766
+ * Returns true if the two geometries are of the same type and their
767
+ * vertices corresponding by index are equal in all dimensions.
768
+ */
769
+ virtual bool equalsIdentical(const Geometry* other) const = 0;
770
+
771
+ virtual void apply_rw(const CoordinateFilter* filter) = 0; //Abstract
772
+ virtual void apply_ro(CoordinateFilter* filter) const = 0; //Abstract
773
+ virtual void apply_rw(GeometryFilter* filter);
774
+ virtual void apply_ro(GeometryFilter* filter) const;
775
+ virtual void apply_rw(GeometryComponentFilter* filter);
776
+ virtual void apply_ro(GeometryComponentFilter* filter) const;
777
+
778
+ /**
779
+ * Performs an operation on the coordinates in this Geometry's
780
+ * CoordinateSequences.
781
+ * If the filter reports that a coordinate value has been changed,
782
+ * {@link #geometryChanged} will be called automatically.
783
+ *
784
+ * @param filter the filter to apply
785
+ */
786
+ virtual void apply_rw(CoordinateSequenceFilter& filter) = 0;
787
+
788
+ /**
789
+ * Performs a read-only operation on the coordinates in this
790
+ * Geometry's CoordinateSequences.
791
+ *
792
+ * @param filter the filter to apply
793
+ */
794
+ virtual void apply_ro(CoordinateSequenceFilter& filter) const = 0;
795
+
796
+ /** \brief
797
+ * Apply a filter to each component of this geometry.
798
+ * The filter is expected to provide a .filter(const Geometry*)
799
+ * method.
800
+ *
801
+ * I intend similar templated methods to replace
802
+ * all the virtual apply_rw and apply_ro functions...
803
+ * --strk(2005-02-06);
804
+ */
805
+ template <class T>
806
+ void
807
+ applyComponentFilter(T& f) const
808
+ {
809
+ for(std::size_t i = 0, n = getNumGeometries(); i < n; ++i) {
810
+ f.filter(getGeometryN(i));
811
+ }
812
+ }
813
+
814
+ /**
815
+ * Reorganizes this Geometry into normal form (or canonical form).
816
+ * Starting point of rings is lower left, collections are ordered
817
+ * by geometry type, etc.
818
+ */
819
+ virtual void normalize() = 0; //Abstract
820
+
821
+ /// Comparator for sorting geometry
822
+ virtual int compareTo(const Geometry* geom) const;
823
+
824
+ /// Returns the area of this Geometry.
825
+ virtual double getArea() const;
826
+
827
+ /// Returns the length of this Geometry.
828
+ virtual double getLength() const;
829
+
830
+ /** Returns the minimum distance between this Geometry and the Geometry g
831
+ *
832
+ * @param g the Geometry to calculate distance to
833
+ * @return the distance in cartesian units
834
+ */
835
+ virtual double distance(const Geometry* g) const;
836
+
837
+
838
+ /** \brief
839
+ * Tests whether the distance from this Geometry to another
840
+ * is less than or equal to a specified value.
841
+ *
842
+ * @param geom the Geometry to check the distance to
843
+ * @param cDistance the distance value to compare
844
+ * @return <code>true</code> if the geometries are less than
845
+ * <code>distance</code> apart.
846
+ *
847
+ * @todo doesn't seem to need being virtual, make it concrete
848
+ */
849
+ virtual bool isWithinDistance(const Geometry* geom,
850
+ double cDistance) const;
851
+
852
+ /** \brief
853
+ * Computes the centroid of this <code>Geometry</code>.
854
+ *
855
+ * The centroid is equal to the centroid of the set of component
856
+ * Geometries of highest dimension (since the lower-dimension geometries
857
+ * contribute zero "weight" to the centroid)
858
+ *
859
+ * @return a {@link Point} which is the centroid of this Geometry
860
+ */
861
+ virtual std::unique_ptr<Point> getCentroid() const;
862
+
863
+ /// Computes the centroid of this Geometry as a Coordinate
864
+ //
865
+ /// Returns false if centroid cannot be computed (EMPTY geometry)
866
+ ///
867
+ virtual bool getCentroid(CoordinateXY& ret) const;
868
+
869
+ /** \brief
870
+ * Computes an interior point of this <code>Geometry</code>.
871
+ *
872
+ * An interior point is guaranteed to lie in the interior of the Geometry,
873
+ * if it possible to calculate such a point exactly. Otherwise,
874
+ * the point may lie on the boundary of the geometry.
875
+ *
876
+ * @return a Point which is in the interior of this Geometry, or
877
+ * null if the geometry doesn't have an interior (empty)
878
+ */
879
+ std::unique_ptr<Point> getInteriorPoint() const;
880
+
881
+ /**
882
+ * \brief
883
+ * Notifies this Geometry that its Coordinates have been changed
884
+ * by an external party (using a CoordinateFilter, for example).
885
+ */
886
+ virtual void geometryChanged();
887
+
888
+ /**
889
+ * \brief
890
+ * Notifies this Geometry that its Coordinates have been changed
891
+ * by an external party.
892
+ */
893
+ virtual void geometryChangedAction() = 0;
894
+
895
+ protected:
896
+ /// Make a deep-copy of this Geometry
897
+ virtual Geometry* cloneImpl() const = 0;
898
+
899
+ /// Make a geometry with coordinates in reverse order
900
+ virtual Geometry* reverseImpl() const = 0;
901
+
902
+ /// Returns true if the array contains any non-empty Geometrys.
903
+ template<typename T>
904
+ static bool hasNonEmptyElements(const std::vector<T>* geometries) {
905
+ return std::any_of(geometries->begin(), geometries->end(), [](const T& g) { return !g->isEmpty(); });
906
+ }
907
+
908
+ /// Returns true if the CoordinateSequence contains any null elements.
909
+ static bool hasNullElements(const CoordinateSequence* list);
910
+
911
+ /// Returns true if the vector contains any null elements.
912
+ template<typename T>
913
+ static bool hasNullElements(const std::vector<T>* geometries) {
914
+ return std::any_of(geometries->begin(), geometries->end(), [](const T& g) { return g == nullptr; });
915
+ }
916
+
917
+ // static void reversePointOrder(CoordinateSequence* coordinates);
918
+ // static Coordinate& minCoordinate(CoordinateSequence* coordinates);
919
+ // static void scroll(CoordinateSequence* coordinates,Coordinate* firstCoordinate);
920
+ // static int indexOf(Coordinate* coordinate,CoordinateSequence* coordinates);
921
+ //
922
+ /** \brief
923
+ * Returns whether the two Geometrys are equal, from the point
924
+ * of view of the equalsExact method.
925
+ */
926
+ virtual bool isEquivalentClass(const Geometry* other) const;
927
+
928
+ static void checkNotGeometryCollection(const Geometry* g);
929
+
930
+ virtual int compareToSameClass(const Geometry* geom) const = 0; //Abstract
931
+
932
+ template<typename T>
933
+ static int compare(const T& a, const T& b)
934
+ {
935
+ std::size_t i = 0;
936
+ std::size_t j = 0;
937
+ while(i < a.size() && j < b.size()) {
938
+ const auto& aGeom = *a[i];
939
+ const auto& bGeom = *b[j];
940
+
941
+ int comparison = aGeom.compareTo(&bGeom);
942
+ if(comparison != 0) {
943
+ return comparison;
944
+ }
945
+
946
+ i++;
947
+ j++;
948
+ }
949
+
950
+ if(i < a.size()) {
951
+ return 1;
952
+ }
953
+
954
+ if(j < b.size()) {
955
+ return -1;
956
+ }
957
+
958
+ return 0;
959
+ }
960
+
961
+ bool equal(const CoordinateXY& a, const CoordinateXY& b,
962
+ double tolerance) const;
963
+ int SRID;
964
+
965
+ Geometry(const Geometry& geom);
966
+
967
+ /** \brief
968
+ * Construct a geometry with the given GeometryFactory.
969
+ *
970
+ * Will keep a reference to the factory, so don't
971
+ * delete it until al Geometry objects referring to
972
+ * it are deleted.
973
+ *
974
+ * @param factory
975
+ */
976
+ Geometry(const GeometryFactory* factory);
977
+
978
+ template<typename T>
979
+ static std::vector<std::unique_ptr<Geometry>> toGeometryArray(std::vector<std::unique_ptr<T>> && v) {
980
+ static_assert(std::is_base_of<Geometry, T>::value, "");
981
+ std::vector<std::unique_ptr<Geometry>> gv(v.size());
982
+ for (std::size_t i = 0; i < v.size(); i++) {
983
+ gv[i] = std::move(v[i]);
984
+ }
985
+ return gv;
986
+ }
987
+
988
+ static std::vector<std::unique_ptr<Geometry>> toGeometryArray(std::vector<std::unique_ptr<Geometry>> && v) {
989
+ return std::move(v);
990
+ }
991
+
992
+ protected:
993
+
994
+ virtual int getSortIndex() const = 0;
995
+
996
+
997
+ private:
998
+
999
+ class GEOS_DLL GeometryChangedFilter : public GeometryComponentFilter {
1000
+ public:
1001
+ void filter_rw(Geometry* geom) override;
1002
+ };
1003
+
1004
+ static GeometryChangedFilter geometryChangedFilter;
1005
+
1006
+ /// The GeometryFactory used to create this Geometry
1007
+ ///
1008
+ /// Externally owned
1009
+ ///
1010
+ const GeometryFactory* _factory;
1011
+
1012
+ void* _userData;
1013
+ };
1014
+
1015
+ /// \brief
1016
+ /// Write the Well-known Binary representation of this Geometry
1017
+ /// as an HEX string to the given output stream
1018
+ ///
1019
+ GEOS_DLL std::ostream& operator<< (std::ostream& os, const Geometry& geom);
1020
+
1021
+ struct GEOS_DLL GeometryGreaterThen {
1022
+ bool operator()(const Geometry* first, const Geometry* second);
1023
+ };
1024
+
1025
+
1026
+ /// Return current GEOS version
1027
+ GEOS_DLL std::string geosversion();
1028
+
1029
+ /**
1030
+ * \brief
1031
+ * Return the version of JTS this GEOS
1032
+ * release has been ported from.
1033
+ */
1034
+ GEOS_DLL std::string jtsport();
1035
+
1036
+ // We use this instead of std::pair<unique_ptr<Geometry>> because C++11
1037
+ // forbids that construct:
1038
+ // http://lwg.github.com/issues/lwg-closed.html#2068
1039
+ struct GeomPtrPair {
1040
+ typedef std::unique_ptr<Geometry> GeomPtr;
1041
+ GeomPtr first;
1042
+ GeomPtr second;
1043
+ };
1044
+
1045
+ } // namespace geos::geom
1046
+ } // namespace geos
1047
+
1048
+ #ifdef _MSC_VER
1049
+ #pragma warning(pop)
1050
+ #endif
1051
+