@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.
- package/CHANGELOG.md +7 -0
- package/cppjs-package-geos.podspec +1 -1
- package/dist/prebuilt/Android-x86_64/bin/geos-config +79 -0
- package/dist/prebuilt/Android-x86_64/bin/geosop +0 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Angle.h +247 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Area.h +82 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/BoundaryNodeRule.h +146 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/CGAlgorithmsDD.h +193 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/CentralEndpointIntersector.h +161 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Centroid.h +157 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/CircularArcs.h +37 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/ConvexHull.h +211 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Distance.h +116 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/HCoordinate.h +100 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/InteriorPointArea.h +110 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/InteriorPointLine.h +79 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/InteriorPointPoint.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Interpolate.h +182 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Intersection.h +84 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Length.h +50 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/LineIntersector.h +667 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/MinimumAreaRectangle.h +159 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/MinimumBoundingCircle.h +137 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/MinimumDiameter.h +185 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/NotRepresentableException.h +43 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Orientation.h +122 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PointInRing.h +40 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PointLocation.h +107 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PointLocator.h +108 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/PolygonNodeTopology.h +149 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/RayCrossingCounter.h +173 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/Rectangle.h +96 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/RobustDeterminant.h +66 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/SimplePointInRing.h +44 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/IndexedDistanceToPoint.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/IndexedPointInPolygonsLocator.h +79 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/LargestEmptyCircle.h +240 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/construct/MaximumInscribedCircle.h +221 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/DiscreteFrechetDistance.h +175 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/DiscreteHausdorffDistance.h +252 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/DistanceToPoint.h +72 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/distance/PointPairDistance.h +151 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/ConcaveHull.h +309 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/ConcaveHullOfPolygons.h +377 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/HullTri.h +156 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/hull/HullTriangulation.h +139 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/locate/IndexedPointInAreaLocator.h +139 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/locate/PointOnGeometryLocator.h +56 -0
- package/dist/prebuilt/Android-x86_64/include/geos/algorithm/locate/SimplePointInAreaLocator.h +117 -0
- package/dist/prebuilt/Android-x86_64/include/geos/constants.h +49 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/Corner.h +137 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageBoundarySegmentFinder.h +83 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageEdge.h +171 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageGapFinder.h +106 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoveragePolygon.h +57 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoveragePolygonValidator.h +381 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageRing.h +205 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageRingEdges.h +170 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageSimplifier.h +166 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageUnion.h +77 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/CoverageValidator.h +159 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/InvalidSegmentDetector.h +133 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/TPVWSimplifier.h +225 -0
- package/dist/prebuilt/Android-x86_64/include/geos/coverage/VertexRingCounter.h +71 -0
- package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/EdgeGraph.h +137 -0
- package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/EdgeGraphBuilder.h +91 -0
- package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/HalfEdge.h +315 -0
- package/dist/prebuilt/Android-x86_64/include/geos/edgegraph/MarkHalfEdge.h +110 -0
- package/dist/prebuilt/Android-x86_64/include/geos/export.h +51 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CircularArc.h +273 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CircularString.h +85 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CompoundCurve.h +121 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Coordinate.h +627 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateFilter.h +134 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateList.h +244 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequence.h +807 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequenceFilter.h +116 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequenceIterator.h +126 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CoordinateSequences.h +76 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Curve.h +71 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/CurvePolygon.h +58 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Dimension.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Envelope.h +826 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Geometry.h +1051 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryCollection.h +256 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryComponentFilter.h +61 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryFactory.h +542 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryFilter.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/GeometryTypeName.h +110 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/HeuristicOverlay.h +99 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/IntersectionMatrix.h +383 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/LineSegment.h +576 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/LineString.h +151 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/LinearRing.h +128 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Location.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiCurve.h +126 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiLineString.h +160 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiPoint.h +150 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiPolygon.h +155 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/MultiSurface.h +94 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Point.h +221 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Polygon.h +138 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Position.h +68 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/PrecisionModel.h +374 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Quadrant.h +164 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/SimpleCurve.h +142 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Surface.h +115 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/SurfaceImpl.h +159 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/Triangle.h +230 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/AbstractPreparedPolygonContains.h +144 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/BasicPreparedGeometry.h +214 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedGeometry.h +260 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedGeometryFactory.h +93 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineString.h +70 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineStringDistance.h +57 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineStringIntersects.h +97 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedLineStringNearestPoints.h +54 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPoint.h +56 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygon.h +81 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonContains.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonContainsProperly.h +101 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonCovers.h +108 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonDistance.h +67 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonIntersects.h +90 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/prep/PreparedPolygonPredicate.h +141 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/ComponentCoordinateExtracter.h +69 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/CoordinateOperation.h +70 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/Densifier.h +90 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryCombiner.h +151 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryEditor.h +127 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryEditorOperation.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryExtracter.h +95 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryFixer.h +169 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryLister.h +92 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryMapper.h +115 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/GeometryTransformer.h +181 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/LinearComponentExtracter.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/NoOpGeometryOperation.h +52 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/PointExtracter.h +63 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/PolygonExtracter.h +66 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/PolygonalExtracter.h +54 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/ShortCircuitedGeometryVisitor.h +66 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom/util/SineStarFactory.h +122 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geom.h +146 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Depth.h +143 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/DirectedEdge.h +236 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/DirectedEdgeStar.h +164 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Edge.h +285 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeEnd.h +187 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeEndStar.h +217 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeIntersection.h +149 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeIntersectionList.h +129 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeList.h +124 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeNodingValidator.h +113 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/EdgeRing.h +201 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/GeometryGraph.h +251 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/GraphComponent.h +117 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Label.h +290 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/Node.h +192 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/NodeFactory.h +51 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/NodeMap.h +143 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/PlanarGraph.h +203 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/TopologyLocation.h +238 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/EdgeSetIntersector.h +68 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/MonotoneChain.h +72 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/MonotoneChainEdge.h +85 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/MonotoneChainIndexer.h +71 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SegmentIntersector.h +176 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SimpleEdgeSetIntersector.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h +108 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SimpleSweepLineIntersector.h +94 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SweepLineEvent.h +136 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SweepLineEventObj.h +38 -0
- package/dist/prebuilt/Android-x86_64/include/geos/geomgraph/index/SweepLineSegment.h +57 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/ItemVisitor.h +38 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/SpatialIndex.h +103 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/VertexSequencePackedRtree.h +153 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Bintree.h +129 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Interval.h +61 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Key.h +71 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Node.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/NodeBase.h +83 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/bintree/Root.h +77 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChain.h +206 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChainBuilder.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChainOverlapAction.h +86 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/chain/MonotoneChainSelectAction.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/IntervalRTreeBranchNode.h +53 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h +58 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/IntervalRTreeNode.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/intervalrtree/SortedPackedIntervalRTree.h +110 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/kdtree/KdNode.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/kdtree/KdNodeVisitor.h +45 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/kdtree/KdTree.h +191 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/IntervalSize.h +62 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Key.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Node.h +141 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/NodeBase.h +161 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Quadtree.h +200 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/quadtree/Root.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/AbstractNode.h +131 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/AbstractSTRtree.h +324 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/Boundable.h +49 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/BoundablePair.h +122 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/EnvelopeUtil.h +33 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/GeometryItemDistance.h +44 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/Interval.h +60 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/ItemBoundable.h +59 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/ItemDistance.h +49 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SIRtree.h +124 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/STRtree.h +177 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SimpleSTRdistance.h +166 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SimpleSTRnode.h +141 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/SimpleSTRtree.h +189 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRNode.h +156 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRNodePair.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRtree.h +807 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/strtree/TemplateSTRtreeDistance.h +233 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineEvent.h +95 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineIndex.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineInterval.h +37 -0
- package/dist/prebuilt/Android-x86_64/include/geos/index/sweepline/SweepLineOverlapAction.h +44 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/ByteOrderDataInStream.h +125 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/ByteOrderValues.h +61 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/CLocalizer.h +53 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/CheckOrdinatesFilter.h +68 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/GeoJSON.h +154 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/GeoJSONReader.h +125 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/GeoJSONWriter.h +139 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/OrdinateSet.h +119 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/ParseException.h +53 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/StringTokenizer.h +66 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKBConstants.h +57 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKBReader.h +204 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKBStreamReader.h +49 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKBWriter.h +260 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKTFileReader.h +46 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKTReader.h +165 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKTStreamReader.h +48 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/WKTWriter.h +342 -0
- package/dist/prebuilt/Android-x86_64/include/geos/io/Writer.h +51 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/ExtractLineByLocation.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LengthIndexOfPoint.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LengthIndexedLine.h +211 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LengthLocationMap.h +134 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LinearGeometryBuilder.h +106 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LinearIterator.h +156 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LinearLocation.h +248 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LocationIndexOfLine.h +72 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LocationIndexOfPoint.h +77 -0
- package/dist/prebuilt/Android-x86_64/include/geos/linearref/LocationIndexedLine.h +276 -0
- package/dist/prebuilt/Android-x86_64/include/geos/math/DD.h +200 -0
- package/dist/prebuilt/Android-x86_64/include/geos/namespaces.h +317 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/BasicSegmentString.h +89 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/BoundaryChainNoder.h +171 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/FastNodingValidator.h +129 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/FastSegmentSetIntersectionFinder.h +80 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/GeometryNoder.h +69 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/IntersectionAdder.h +202 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/IntersectionFinderAdder.h +110 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/IteratedNoder.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/MCIndexNoder.h +141 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/MCIndexSegmentSetMutualIntersector.h +146 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/NodableSegmentString.h +56 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/NodedSegmentString.h +218 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/Noder.h +79 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/NodingIntersectionFinder.h +262 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/NodingValidator.h +109 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/Octant.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/OrientedCoordinateArray.h +113 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/ScaledNoder.h +132 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentExtractingNoder.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentIntersectionDetector.h +177 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentIntersector.h +89 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentNode.h +161 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentNodeList.h +253 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentPointComparator.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentSetMutualIntersector.h +80 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentString.h +199 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SegmentStringUtil.h +67 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SimpleNoder.h +70 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/SinglePassNoder.h +96 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/ValidatingNoder.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snap/SnappingIntersectionAdder.h +109 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snap/SnappingNoder.h +121 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snap/SnappingPointIndex.h +62 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/HotPixel.h +171 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/HotPixelIndex.h +116 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/MCIndexPointSnapper.h +98 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/MCIndexSnapRounder.h +157 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/SnapRoundingIntersectionAdder.h +126 -0
- package/dist/prebuilt/Android-x86_64/include/geos/noding/snapround/SnapRoundingNoder.h +167 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/BoundaryOp.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/GeometryGraphOperation.h +92 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferBuilder.h +270 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferCurveSetBuilder.h +296 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferInputLineSimplifier.h +180 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferOp.h +307 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferParameters.h +319 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/BufferSubgraph.h +202 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetCurve.h +328 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetCurveBuilder.h +257 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetCurveSection.h +111 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetSegmentGenerator.h +390 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/OffsetSegmentString.h +215 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/RightmostEdgeFinder.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/SegmentMCIndex.h +56 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/buffer/SubgraphDepthLocater.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/AbstractClusterFinder.h +136 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/Clusters.h +72 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/DBSCANClusterFinder.h +59 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/DisjointOperation.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/EnvelopeDistanceClusterFinder.h +53 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/EnvelopeIntersectsClusterFinder.h +44 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/GeometryDistanceClusterFinder.h +59 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/GeometryFlattener.h +46 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/GeometryIntersectsClusterFinder.h +53 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/cluster/UnionFind.h +137 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/ConnectedElementLocationFilter.h +76 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/ConnectedElementPointFilter.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/DistanceOp.h +228 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/FacetSequence.h +84 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/FacetSequenceTreeBuilder.h +69 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/GeometryLocation.h +126 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/distance/IndexedFacetDistance.h +124 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/intersection/Rectangle.h +236 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/intersection/RectangleIntersection.h +174 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/intersection/RectangleIntersectionBuilder.h +159 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/EdgeString.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMergeDirectedEdge.h +78 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMergeEdge.h +62 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMergeGraph.h +91 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineMerger.h +149 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/linemerge/LineSequencer.h +295 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/MaximalEdgeRing.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/MinimalEdgeRing.h +80 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/OverlayNodeFactory.h +56 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/PolygonBuilder.h +210 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/snap/GeometrySnapper.h +154 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/snap/LineStringSnapper.h +165 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/snap/SnapOverlayOp.h +134 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/validate/FuzzyPointLocator.h +97 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/validate/OffsetPointGenerator.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlay/validate/OverlayResultValidator.h +131 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/CoverageUnion.h +100 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/Edge.h +345 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeKey.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeMerger.h +81 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeNodingBuilder.h +255 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/EdgeSourceInfo.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/ElevationModel.h +170 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/IndexedPointOnLineLocator.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/InputGeometry.h +103 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/IntersectionPointBuilder.h +113 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/LineBuilder.h +189 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/LineLimiter.h +91 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/MaximalEdgeRing.h +134 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayEdge.h +279 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayEdgeRing.h +153 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayGraph.h +143 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayLabel.h +404 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayLabeller.h +207 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayMixedPoints.h +142 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayNG.h +410 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayNGRobust.h +174 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayPoints.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/OverlayUtil.h +213 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/PolygonBuilder.h +151 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/PrecisionReducer.h +75 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/PrecisionUtil.h +245 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/RingClipper.h +112 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/RobustClipEnvelopeComputer.h +84 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/overlayng/UnaryUnionNG.h +95 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/BuildArea.h +75 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/EdgeRing.h +350 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/HoleAssigner.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/PolygonizeDirectedEdge.h +127 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/PolygonizeEdge.h +58 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/PolygonizeGraph.h +214 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/polygonize/Polygonizer.h +260 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/predicate/RectangleContains.h +119 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/predicate/RectangleIntersects.h +98 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/predicate/SegmentIntersectionTester.h +91 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/EdgeEndBuilder.h +70 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/EdgeEndBundle.h +104 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/EdgeEndBundleStar.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateComputer.h +185 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateNode.h +67 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateNodeFactory.h +55 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateNodeGraph.h +98 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relate/RelateOp.h +134 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/AdjacentEdgeLocator.h +124 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/BasicPredicate.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/DimensionLocation.h +60 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/EdgeSegmentIntersector.h +80 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/EdgeSegmentOverlapAction.h +75 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/EdgeSetIntersector.h +94 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/IMPatternMatcher.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/IMPredicate.h +131 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/IntersectionMatrixPattern.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/LineStringExtracter.h +77 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/LinearBoundary.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/NodeSection.h +166 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/NodeSections.h +102 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/PolygonNodeConverter.h +112 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateEdge.h +176 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateGeometry.h +272 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateMatrixPredicate.h +85 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateNG.h +295 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateNode.h +146 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelatePointLocator.h +213 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelatePredicate.h +652 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/RelateSegmentString.h +161 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/TopologyComputer.h +236 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/relateng/TopologyPredicate.h +206 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/sharedpaths/SharedPathsOp.h +161 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/CascadedPolygonUnion.h +246 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/CoverageUnion.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/DisjointSubsetUnion.h +49 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/OverlapUnion.h +139 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/PointGeometryUnion.h +72 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/UnaryUnionOp.h +243 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/union/UnionStrategy.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/ConsistentAreaTester.h +137 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IndexedNestedHoleTester.h +83 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IndexedNestedPolygonTester.h +111 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IsSimpleOp.h +299 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/IsValidOp.h +307 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/MakeValid.h +76 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonIntersectionAnalyzer.h +125 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonRing.h +231 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonRingSelfNode.h +84 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonRingTouch.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/PolygonTopologyAnalyzer.h +211 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/RepeatedPointRemover.h +60 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/RepeatedPointTester.h +66 -0
- package/dist/prebuilt/Android-x86_64/include/geos/operation/valid/TopologyValidationError.h +76 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/DirectedEdge.h +237 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/DirectedEdgeStar.h +149 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/Edge.h +141 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/GraphComponent.h +182 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/Node.h +158 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/NodeMap.h +135 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/PlanarGraph.h +293 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/Subgraph.h +181 -0
- package/dist/prebuilt/Android-x86_64/include/geos/planargraph/algorithm/ConnectedSubgraphFinder.h +92 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/CommonBits.h +97 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/CommonBitsOp.h +172 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/CommonBitsRemover.h +92 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/EnhancedPrecisionOp.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/GeometryPrecisionReducer.h +202 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/MinimumClearance.h +57 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/PointwisePrecisionReducerTransformer.h +74 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/PrecisionReducerCoordinateOperation.h +65 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/PrecisionReducerTransformer.h +95 -0
- package/dist/prebuilt/Android-x86_64/include/geos/precision/SimpleGeometryPrecisionReducer.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/profiler.h +185 -0
- package/dist/prebuilt/Android-x86_64/include/geos/shape/fractal/HilbertCode.h +128 -0
- package/dist/prebuilt/Android-x86_64/include/geos/shape/fractal/HilbertEncoder.h +96 -0
- package/dist/prebuilt/Android-x86_64/include/geos/shape/fractal/MortonCode.h +140 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/ComponentJumpChecker.h +120 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/DouglasPeuckerLineSimplifier.h +103 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/DouglasPeuckerSimplifier.h +84 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/LineSegmentIndex.h +87 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/LinkedLine.h +84 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/LinkedRing.h +69 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/PolygonHullSimplifier.h +232 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/RingHull.h +209 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/RingHullIndex.h +55 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLineSegment.h +83 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLineString.h +145 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLineStringSimplifier.h +178 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/TaggedLinesSimplifier.h +88 -0
- package/dist/prebuilt/Android-x86_64/include/geos/simplify/TopologyPreservingSimplifier.h +93 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/DelaunayTriangulationBuilder.h +166 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/IncrementalDelaunayTriangulator.h +106 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/VoronoiDiagramBuilder.h +157 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/ConstrainedDelaunayTriangulator.h +101 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonEarClipper.h +218 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonHoleJoiner.h +267 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonNoder.h +101 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/PolygonTriangulator.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/polygon/TriDelaunayImprover.h +147 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h +63 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/LocateFailureException.h +37 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdge.h +443 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdgeLocator.h +48 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdgeQuartet.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/QuadEdgeSubdivision.h +514 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/TrianglePredicate.h +124 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/TriangleVisitor.h +48 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/quadedge/Vertex.h +312 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/Tri.h +186 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/TriEdge.h +80 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/TriList.h +182 -0
- package/dist/prebuilt/Android-x86_64/include/geos/triangulate/tri/TriangulationBuilder.h +86 -0
- package/dist/prebuilt/Android-x86_64/include/geos/unload.h +33 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/Assert.h +66 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/AssertionFailedException.h +48 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/CoordinateArrayFilter.h +85 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/GEOSException.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/GeometricShapeFactory.h +198 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/IllegalArgumentException.h +50 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/IllegalStateException.h +42 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/Interrupt.h +71 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/Machine.h +26 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/TopologyException.h +64 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/UniqueCoordinateArrayFilter.h +114 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/UnsupportedOperationException.h +52 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/math.h +45 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util/string.h +31 -0
- package/dist/prebuilt/Android-x86_64/include/geos/util.h +86 -0
- package/dist/prebuilt/Android-x86_64/include/geos/vend/include_nlohmann_json.hpp +24 -0
- package/dist/prebuilt/Android-x86_64/include/geos/vend/json.hpp +25597 -0
- package/dist/prebuilt/Android-x86_64/include/geos/version.h +37 -0
- package/dist/prebuilt/Android-x86_64/include/geos.h +40 -0
- package/dist/prebuilt/Android-x86_64/include/geos_c.h +6121 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-config-version.cmake +43 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-config.cmake +11 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-targets-release.cmake +30 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/GEOS/geos-targets.cmake +124 -0
- package/dist/prebuilt/Android-x86_64/lib/libgeos.so +0 -0
- package/dist/prebuilt/Android-x86_64/lib/libgeos_c.so +0 -0
- package/dist/prebuilt/Android-x86_64/lib/pkgconfig/geos.pc +12 -0
- package/dist/prebuilt/iOS-iphoneos/bin/geosop.app/Info.plist +0 -0
- package/dist/prebuilt/iOS-iphoneos/bin/geosop.app/_CodeSignature/CodeResources +1 -1
- package/dist/prebuilt/iOS-iphoneos/bin/geosop.app/geosop +0 -0
- package/dist/prebuilt/iOS-iphoneos/lib/libgeos.a +0 -0
- package/dist/prebuilt/iOS-iphoneos/lib/libgeos_c.a +0 -0
- package/dist/prebuilt/iOS-iphonesimulator/bin/geosop.app/Info.plist +0 -0
- package/dist/prebuilt/iOS-iphonesimulator/bin/geosop.app/_CodeSignature/CodeResources +1 -1
- package/dist/prebuilt/iOS-iphonesimulator/bin/geosop.app/geosop +0 -0
- package/dist/prebuilt/iOS-iphonesimulator/lib/libgeos.a +0 -0
- package/dist/prebuilt/iOS-iphonesimulator/lib/libgeos_c.a +0 -0
- package/geos.xcframework/ios-arm64_arm64e/libgeos.a +0 -0
- package/geos.xcframework/ios-arm64_arm64e_x86_64-simulator/libgeos.a +0 -0
- package/geos_c.xcframework/ios-arm64_arm64e/libgeos_c.a +0 -0
- package/geos_c.xcframework/ios-arm64_arm64e_x86_64-simulator/libgeos_c.a +0 -0
- 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
|
+
|