@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,667 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
*
|
|
3
|
+
* GEOS - Geometry Engine Open Source
|
|
4
|
+
* http://geos.osgeo.org
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2005-2006 Refractions Research Inc.
|
|
7
|
+
* Copyright (C) 2001-2002 Vivid Solutions Inc.
|
|
8
|
+
*
|
|
9
|
+
* This is free software; you can redistribute and/or modify it under
|
|
10
|
+
* the terms of the GNU Lesser General Public Licence as published
|
|
11
|
+
* by the Free Software Foundation.
|
|
12
|
+
* See the COPYING file for more information.
|
|
13
|
+
*
|
|
14
|
+
**********************************************************************
|
|
15
|
+
*
|
|
16
|
+
* Last port: algorithm/RobustLineIntersector.java r785 (JTS-1.13+)
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#pragma once
|
|
21
|
+
|
|
22
|
+
#include <geos/export.h>
|
|
23
|
+
#include <geos/algorithm/Intersection.h>
|
|
24
|
+
#include <geos/algorithm/Interpolate.h>
|
|
25
|
+
#include <geos/algorithm/Orientation.h>
|
|
26
|
+
#include <geos/geom/Coordinate.h>
|
|
27
|
+
#include <geos/geom/Envelope.h>
|
|
28
|
+
#include <geos/geom/PrecisionModel.h>
|
|
29
|
+
|
|
30
|
+
#include <string>
|
|
31
|
+
|
|
32
|
+
// Forward declarations
|
|
33
|
+
namespace geos {
|
|
34
|
+
namespace geom {
|
|
35
|
+
class PrecisionModel;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
namespace geos {
|
|
40
|
+
namespace algorithm { // geos::algorithm
|
|
41
|
+
|
|
42
|
+
/** \brief
|
|
43
|
+
* A LineIntersector is an algorithm that can both test whether
|
|
44
|
+
* two line segments intersect and compute the intersection point
|
|
45
|
+
* if they do.
|
|
46
|
+
*
|
|
47
|
+
* The intersection point may be computed in a precise or non-precise manner.
|
|
48
|
+
* Computing it precisely involves rounding it to an integer. (This assumes
|
|
49
|
+
* that the input coordinates have been made precise by scaling them to
|
|
50
|
+
* an integer grid.)
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
class GEOS_DLL LineIntersector {
|
|
54
|
+
public:
|
|
55
|
+
|
|
56
|
+
/// Computes the "edge distance" of an intersection point p in an edge.
|
|
57
|
+
///
|
|
58
|
+
/// The edge distance is a metric of the point along the edge.
|
|
59
|
+
/// The metric used is a robust and easy to compute metric function.
|
|
60
|
+
/// It is <b>not</b> equivalent to the usual Euclidean metric.
|
|
61
|
+
/// It relies on the fact that either the x or the y ordinates of the
|
|
62
|
+
/// points in the edge are unique, depending on whether the edge is longer in
|
|
63
|
+
/// the horizontal or vertical direction.
|
|
64
|
+
///
|
|
65
|
+
/// NOTE: This function may produce incorrect distances
|
|
66
|
+
/// for inputs where p is not precisely on p1-p2
|
|
67
|
+
/// (E.g. p = (139,9) p1 = (139,10), p2 = (280,1) produces distanct
|
|
68
|
+
/// 0.0, which is incorrect.
|
|
69
|
+
///
|
|
70
|
+
/// My hypothesis is that the function is safe to use for points which are the
|
|
71
|
+
/// result of <b>rounding</b> points which lie on the line,
|
|
72
|
+
/// but not safe to use for <b>truncated</b> points.
|
|
73
|
+
///
|
|
74
|
+
static double computeEdgeDistance(const geom::CoordinateXY& p, const geom::CoordinateXY& p0, const geom::CoordinateXY& p1);
|
|
75
|
+
|
|
76
|
+
static double nonRobustComputeEdgeDistance(const geom::Coordinate& p, const geom::Coordinate& p1,
|
|
77
|
+
const geom::Coordinate& p2);
|
|
78
|
+
|
|
79
|
+
explicit LineIntersector(const geom::PrecisionModel* initialPrecisionModel = nullptr)
|
|
80
|
+
:
|
|
81
|
+
precisionModel(initialPrecisionModel),
|
|
82
|
+
result(0),
|
|
83
|
+
inputLines(),
|
|
84
|
+
isProperVar(false)
|
|
85
|
+
{}
|
|
86
|
+
|
|
87
|
+
~LineIntersector() = default;
|
|
88
|
+
|
|
89
|
+
/** \brief
|
|
90
|
+
* Tests whether either intersection point is an interior point of
|
|
91
|
+
* one of the input segments.
|
|
92
|
+
*
|
|
93
|
+
* @return <code>true</code> if either intersection point is in
|
|
94
|
+
* the interior of one of the input segments
|
|
95
|
+
*/
|
|
96
|
+
bool isInteriorIntersection()
|
|
97
|
+
{
|
|
98
|
+
if(isInteriorIntersection(0)) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
if(isInteriorIntersection(1)) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
return false;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/** \brief
|
|
108
|
+
* Tests whether either intersection point is an interior point
|
|
109
|
+
* of the specified input segment.
|
|
110
|
+
*
|
|
111
|
+
* @return <code>true</code> if either intersection point is in
|
|
112
|
+
* the interior of the input segment
|
|
113
|
+
*/
|
|
114
|
+
bool isInteriorIntersection(std::size_t inputLineIndex)
|
|
115
|
+
{
|
|
116
|
+
for(std::size_t i = 0; i < result; ++i) {
|
|
117
|
+
if(!(intPt[i].equals2D(*inputLines[inputLineIndex][0])
|
|
118
|
+
|| intPt[i].equals2D(*inputLines[inputLineIndex][1]))) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/// Force computed intersection to be rounded to a given precision model.
|
|
126
|
+
///
|
|
127
|
+
/// No getter is provided, because the precision model is not required
|
|
128
|
+
/// to be specified.
|
|
129
|
+
/// @param newPM the PrecisionModel to use for rounding
|
|
130
|
+
///
|
|
131
|
+
void
|
|
132
|
+
setPrecisionModel(const geom::PrecisionModel* newPM)
|
|
133
|
+
{
|
|
134
|
+
precisionModel = newPM;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
enum intersection_type : uint8_t {
|
|
138
|
+
/// Indicates that line segments do not intersect
|
|
139
|
+
NO_INTERSECTION = 0,
|
|
140
|
+
|
|
141
|
+
/// Indicates that line segments intersect in a single point
|
|
142
|
+
POINT_INTERSECTION = 1,
|
|
143
|
+
|
|
144
|
+
/// Indicates that line segments intersect in a line segment
|
|
145
|
+
COLLINEAR_INTERSECTION = 2
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
/// Computes the intersection of the lines p1-p2 and p3-p4
|
|
149
|
+
template<typename C1, typename C2>
|
|
150
|
+
void computeIntersection(const C1& p1, const C1& p2,
|
|
151
|
+
const C2& p3, const C2& p4)
|
|
152
|
+
{
|
|
153
|
+
inputLines[0][0] = &p1;
|
|
154
|
+
inputLines[0][1] = &p2;
|
|
155
|
+
inputLines[1][0] = &p3;
|
|
156
|
+
inputLines[1][1] = &p4;
|
|
157
|
+
result = computeIntersect(p1, p2, p3, p4);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/// Compute the intersection between two segments, given a sequence and starting index of each
|
|
161
|
+
void computeIntersection(const geom::CoordinateSequence& p, std::size_t p0,
|
|
162
|
+
const geom::CoordinateSequence& q, std::size_t q0);
|
|
163
|
+
|
|
164
|
+
std::string toString() const;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Tests whether the input geometries intersect.
|
|
168
|
+
*
|
|
169
|
+
* @return true if the input geometries intersect
|
|
170
|
+
*/
|
|
171
|
+
bool
|
|
172
|
+
hasIntersection() const
|
|
173
|
+
{
|
|
174
|
+
return result != NO_INTERSECTION;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Gets an endpoint of an input segment.
|
|
180
|
+
*
|
|
181
|
+
* @param segmentIndex the index of the input segment (0 or 1)
|
|
182
|
+
* @param ptIndex the index of the endpoint (0 or 1)
|
|
183
|
+
* @return the specified endpoint
|
|
184
|
+
*/
|
|
185
|
+
const geom::CoordinateXY*
|
|
186
|
+
getEndpoint(std::size_t segmentIndex, std::size_t ptIndex) const
|
|
187
|
+
{
|
|
188
|
+
return inputLines[segmentIndex][ptIndex];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/// Returns the number of intersection points found.
|
|
192
|
+
///
|
|
193
|
+
/// This will be either 0, 1 or 2.
|
|
194
|
+
///
|
|
195
|
+
size_t
|
|
196
|
+
getIntersectionNum() const
|
|
197
|
+
{
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
/// Returns the intIndex'th intersection point
|
|
203
|
+
///
|
|
204
|
+
/// @param intIndex is 0 or 1
|
|
205
|
+
///
|
|
206
|
+
/// @return the intIndex'th intersection point
|
|
207
|
+
///
|
|
208
|
+
const geom::CoordinateXYZM&
|
|
209
|
+
getIntersection(std::size_t intIndex) const
|
|
210
|
+
{
|
|
211
|
+
return intPt[intIndex];
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/// Returns false if both numbers are zero.
|
|
215
|
+
///
|
|
216
|
+
/// @return true if both numbers are positive or if both numbers are negative.
|
|
217
|
+
///
|
|
218
|
+
static bool isSameSignAndNonZero(double a, double b);
|
|
219
|
+
|
|
220
|
+
/** \brief
|
|
221
|
+
* Test whether a point is a intersection point of two line segments.
|
|
222
|
+
*
|
|
223
|
+
* Note that if the intersection is a line segment, this method only tests for
|
|
224
|
+
* equality with the endpoints of the intersection segment.
|
|
225
|
+
* It does <b>not</b> return true if
|
|
226
|
+
* the input point is internal to the intersection segment.
|
|
227
|
+
*
|
|
228
|
+
* @return true if the input point is one of the intersection points.
|
|
229
|
+
*/
|
|
230
|
+
bool isIntersection(const geom::Coordinate& pt) const
|
|
231
|
+
{
|
|
232
|
+
for(std::size_t i = 0; i < result; ++i) {
|
|
233
|
+
if(intPt[i].equals2D(pt)) {
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return false;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
/** \brief
|
|
241
|
+
* Tests whether an intersection is proper.
|
|
242
|
+
*
|
|
243
|
+
* The intersection between two line segments is considered proper if
|
|
244
|
+
* they intersect in a single point in the interior of both segments
|
|
245
|
+
* (e.g. the intersection is a single point and is not equal to any of the
|
|
246
|
+
* endpoints).
|
|
247
|
+
*
|
|
248
|
+
* The intersection between a point and a line segment is considered proper
|
|
249
|
+
* if the point lies in the interior of the segment (e.g. is not equal to
|
|
250
|
+
* either of the endpoints).
|
|
251
|
+
*
|
|
252
|
+
* @return true if the intersection is proper
|
|
253
|
+
*/
|
|
254
|
+
bool
|
|
255
|
+
isProper() const
|
|
256
|
+
{
|
|
257
|
+
return hasIntersection() && isProperVar;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/** \brief
|
|
261
|
+
* Computes the intIndex'th intersection point in the direction of
|
|
262
|
+
* a specified input line segment
|
|
263
|
+
*
|
|
264
|
+
* @param segmentIndex is 0 or 1
|
|
265
|
+
* @param intIndex is 0 or 1
|
|
266
|
+
*
|
|
267
|
+
* @return the intIndex'th intersection point in the direction of the
|
|
268
|
+
* specified input line segment
|
|
269
|
+
*/
|
|
270
|
+
const geom::Coordinate& getIntersectionAlongSegment(std::size_t segmentIndex, std::size_t intIndex);
|
|
271
|
+
|
|
272
|
+
/** \brief
|
|
273
|
+
* Computes the index of the intIndex'th intersection point in the direction of
|
|
274
|
+
* a specified input line segment
|
|
275
|
+
*
|
|
276
|
+
* @param segmentIndex is 0 or 1
|
|
277
|
+
* @param intIndex is 0 or 1
|
|
278
|
+
*
|
|
279
|
+
* @return the index of the intersection point along the segment (0 or 1)
|
|
280
|
+
*/
|
|
281
|
+
std::size_t getIndexAlongSegment(std::size_t segmentIndex, std::size_t intIndex);
|
|
282
|
+
|
|
283
|
+
/** \brief
|
|
284
|
+
* Computes the "edge distance" of an intersection point along the specified
|
|
285
|
+
* input line segment.
|
|
286
|
+
*
|
|
287
|
+
* @param geomIndex is 0 or 1
|
|
288
|
+
* @param intIndex is 0 or 1
|
|
289
|
+
*
|
|
290
|
+
* @return the edge distance of the intersection point
|
|
291
|
+
*/
|
|
292
|
+
double getEdgeDistance(std::size_t geomIndex, std::size_t intIndex) const;
|
|
293
|
+
|
|
294
|
+
private:
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* If makePrecise is true, computed intersection coordinates
|
|
298
|
+
* will be made precise using Coordinate#makePrecise
|
|
299
|
+
*/
|
|
300
|
+
const geom::PrecisionModel* precisionModel;
|
|
301
|
+
|
|
302
|
+
std::size_t result;
|
|
303
|
+
|
|
304
|
+
const geom::CoordinateXY* inputLines[2][2];
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* We store real Coordinates here because
|
|
308
|
+
* we must compute the Z of intersection point.
|
|
309
|
+
*/
|
|
310
|
+
geom::CoordinateXYZM intPt[2];
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* The indexes of the endpoints of the intersection lines, in order along
|
|
314
|
+
* the corresponding line
|
|
315
|
+
*/
|
|
316
|
+
std::size_t intLineIndex[2][2];
|
|
317
|
+
|
|
318
|
+
bool isProperVar;
|
|
319
|
+
//Coordinate &pa;
|
|
320
|
+
//Coordinate &pb;
|
|
321
|
+
|
|
322
|
+
bool
|
|
323
|
+
isCollinear() const
|
|
324
|
+
{
|
|
325
|
+
return result == COLLINEAR_INTERSECTION;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
template<typename C1, typename C2>
|
|
329
|
+
uint8_t computeIntersect(const C1& p1, const C1& p2, const C2& q1, const C2& q2)
|
|
330
|
+
{
|
|
331
|
+
isProperVar = false;
|
|
332
|
+
|
|
333
|
+
// first try a fast test to see if the envelopes of the lines intersect
|
|
334
|
+
if(!geom::Envelope::intersects(p1, p2, q1, q2)) {
|
|
335
|
+
return NO_INTERSECTION;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// for each endpoint, compute which side of the other segment it lies
|
|
339
|
+
// if both endpoints lie on the same side of the other segment,
|
|
340
|
+
// the segments do not intersect
|
|
341
|
+
int Pq1 = Orientation::index(p1, p2, q1);
|
|
342
|
+
int Pq2 = Orientation::index(p1, p2, q2);
|
|
343
|
+
|
|
344
|
+
if((Pq1 > 0 && Pq2 > 0) || (Pq1 < 0 && Pq2 < 0)) {
|
|
345
|
+
return NO_INTERSECTION;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
int Qp1 = Orientation::index(q1, q2, p1);
|
|
349
|
+
int Qp2 = Orientation::index(q1, q2, p2);
|
|
350
|
+
|
|
351
|
+
if((Qp1 > 0 && Qp2 > 0) || (Qp1 < 0 && Qp2 < 0)) {
|
|
352
|
+
return NO_INTERSECTION;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Intersection is collinear if each endpoint lies on the other line.
|
|
357
|
+
*/
|
|
358
|
+
bool collinear = Pq1 == 0 && Pq2 == 0 && Qp1 == 0 && Qp2 == 0;
|
|
359
|
+
if(collinear) {
|
|
360
|
+
return computeCollinearIntersection(p1, p2, q1, q2);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/*
|
|
364
|
+
* At this point we know that there is a single intersection point
|
|
365
|
+
* (since the lines are not collinear).
|
|
366
|
+
*/
|
|
367
|
+
|
|
368
|
+
/*
|
|
369
|
+
* Check if the intersection is an endpoint.
|
|
370
|
+
* If it is, copy the endpoint as
|
|
371
|
+
* the intersection point. Copying the point rather than
|
|
372
|
+
* computing it ensures the point has the exact value,
|
|
373
|
+
* which is important for robustness. It is sufficient to
|
|
374
|
+
* simply check for an endpoint which is on the other line,
|
|
375
|
+
* since at this point we know that the inputLines must
|
|
376
|
+
* intersect.
|
|
377
|
+
*/
|
|
378
|
+
geom::CoordinateXYZM p;
|
|
379
|
+
double z = DoubleNotANumber;
|
|
380
|
+
double m = DoubleNotANumber;
|
|
381
|
+
|
|
382
|
+
if(Pq1 == 0 || Pq2 == 0 || Qp1 == 0 || Qp2 == 0) {
|
|
383
|
+
|
|
384
|
+
isProperVar = false;
|
|
385
|
+
|
|
386
|
+
/* Check for two equal endpoints.
|
|
387
|
+
* This is done explicitly rather than by the orientation tests
|
|
388
|
+
* below in order to improve robustness.
|
|
389
|
+
*
|
|
390
|
+
* (A example where the orientation tests fail
|
|
391
|
+
* to be consistent is:
|
|
392
|
+
*
|
|
393
|
+
* LINESTRING ( 19.850257749638203 46.29709338043669,
|
|
394
|
+
* 20.31970698357233 46.76654261437082 )
|
|
395
|
+
* and
|
|
396
|
+
* LINESTRING ( -48.51001596420236 -22.063180333403878,
|
|
397
|
+
* 19.850257749638203 46.29709338043669 )
|
|
398
|
+
*
|
|
399
|
+
* which used to produce the INCORRECT result:
|
|
400
|
+
* (20.31970698357233, 46.76654261437082, NaN)
|
|
401
|
+
*/
|
|
402
|
+
|
|
403
|
+
if (p1.equals2D(q1)) {
|
|
404
|
+
p = p1;
|
|
405
|
+
z = Interpolate::zGet(p1, q1);
|
|
406
|
+
m = Interpolate::mGet(p1, q1);
|
|
407
|
+
}
|
|
408
|
+
else if (p1.equals2D(q2)) {
|
|
409
|
+
p = p1;
|
|
410
|
+
z = Interpolate::zGet(p1, q2);
|
|
411
|
+
m = Interpolate::mGet(p1, q2);
|
|
412
|
+
}
|
|
413
|
+
else if (p2.equals2D(q1)) {
|
|
414
|
+
p = p2;
|
|
415
|
+
z = Interpolate::zGet(p2, q1);
|
|
416
|
+
m = Interpolate::mGet(p2, q1);
|
|
417
|
+
}
|
|
418
|
+
else if (p2.equals2D(q2)) {
|
|
419
|
+
p = p2;
|
|
420
|
+
z = Interpolate::zGet(p2, q2);
|
|
421
|
+
m = Interpolate::mGet(p2, q2);
|
|
422
|
+
}
|
|
423
|
+
/*
|
|
424
|
+
* Now check to see if any endpoint lies on the interior of the other segment.
|
|
425
|
+
*/
|
|
426
|
+
else if(Pq1 == 0) {
|
|
427
|
+
p = q1;
|
|
428
|
+
z = Interpolate::zGetOrInterpolate(q1, p1, p2);
|
|
429
|
+
m = Interpolate::mGetOrInterpolate(q1, p1, p2);
|
|
430
|
+
}
|
|
431
|
+
else if(Pq2 == 0) {
|
|
432
|
+
p = q2;
|
|
433
|
+
z = Interpolate::zGetOrInterpolate(q2, p1, p2);
|
|
434
|
+
m = Interpolate::mGetOrInterpolate(q2, p1, p2);
|
|
435
|
+
}
|
|
436
|
+
else if(Qp1 == 0) {
|
|
437
|
+
p = p1;
|
|
438
|
+
z = Interpolate::zGetOrInterpolate(p1, q1, q2);
|
|
439
|
+
m = Interpolate::mGetOrInterpolate(p1, q1, q2);
|
|
440
|
+
}
|
|
441
|
+
else if(Qp2 == 0) {
|
|
442
|
+
p = p2;
|
|
443
|
+
z = Interpolate::zGetOrInterpolate(p2, q1, q2);
|
|
444
|
+
m = Interpolate::mGetOrInterpolate(p2, q1, q2);
|
|
445
|
+
}
|
|
446
|
+
} else {
|
|
447
|
+
isProperVar = true;
|
|
448
|
+
p = intersection(p1, p2, q1, q2);
|
|
449
|
+
z = Interpolate::zInterpolate(p, p1, p2, q1, q2);
|
|
450
|
+
m = Interpolate::mInterpolate(p, p1, p2, q1, q2);
|
|
451
|
+
}
|
|
452
|
+
intPt[0] = geom::CoordinateXYZM(p.x, p.y, z, m);
|
|
453
|
+
#if GEOS_DEBUG
|
|
454
|
+
std::cerr << " POINT_INTERSECTION; intPt[0]:" << intPt[0].toString() << std::endl;
|
|
455
|
+
#endif // GEOS_DEBUG
|
|
456
|
+
return POINT_INTERSECTION;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
bool
|
|
460
|
+
isEndPoint() const
|
|
461
|
+
{
|
|
462
|
+
return hasIntersection() && !isProperVar;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
void computeIntLineIndex();
|
|
466
|
+
|
|
467
|
+
void computeIntLineIndex(std::size_t segmentIndex);
|
|
468
|
+
|
|
469
|
+
template<typename C1, typename C2>
|
|
470
|
+
uint8_t computeCollinearIntersection(const C1& p1, const C1& p2, const C2& q1, const C2& q2)
|
|
471
|
+
{
|
|
472
|
+
bool q1inP = geom::Envelope::intersects(p1, p2, q1);
|
|
473
|
+
bool q2inP = geom::Envelope::intersects(p1, p2, q2);
|
|
474
|
+
bool p1inQ = geom::Envelope::intersects(q1, q2, p1);
|
|
475
|
+
bool p2inQ = geom::Envelope::intersects(q1, q2, p2);
|
|
476
|
+
|
|
477
|
+
if(q1inP && q2inP) {
|
|
478
|
+
intPt[0] = zmGetOrInterpolateCopy(q1, p1, p2);
|
|
479
|
+
intPt[1] = zmGetOrInterpolateCopy(q2, p1, p2);
|
|
480
|
+
return COLLINEAR_INTERSECTION;
|
|
481
|
+
}
|
|
482
|
+
if(p1inQ && p2inQ) {
|
|
483
|
+
intPt[0] = zmGetOrInterpolateCopy(p1, q1, q2);
|
|
484
|
+
intPt[1] = zmGetOrInterpolateCopy(p2, q1, q2);
|
|
485
|
+
return COLLINEAR_INTERSECTION;
|
|
486
|
+
}
|
|
487
|
+
if(q1inP && p1inQ) {
|
|
488
|
+
// if pts are equal Z is chosen arbitrarily
|
|
489
|
+
intPt[0] = zmGetOrInterpolateCopy(q1, p1, p2);
|
|
490
|
+
intPt[1] = zmGetOrInterpolateCopy(p1, q1, q2);
|
|
491
|
+
|
|
492
|
+
return (q1 == p1) && !q2inP && !p2inQ ? POINT_INTERSECTION : COLLINEAR_INTERSECTION;
|
|
493
|
+
}
|
|
494
|
+
if(q1inP && p2inQ) {
|
|
495
|
+
// if pts are equal Z is chosen arbitrarily
|
|
496
|
+
intPt[0] = zmGetOrInterpolateCopy(q1, p1, p2);
|
|
497
|
+
intPt[1] = zmGetOrInterpolateCopy(p2, q1, q2);
|
|
498
|
+
|
|
499
|
+
return (q1 == p2) && !q2inP && !p1inQ ? POINT_INTERSECTION : COLLINEAR_INTERSECTION;
|
|
500
|
+
}
|
|
501
|
+
if(q2inP && p1inQ) {
|
|
502
|
+
// if pts are equal Z is chosen arbitrarily
|
|
503
|
+
intPt[0] = zmGetOrInterpolateCopy(q2, p1, p2);
|
|
504
|
+
intPt[1] = zmGetOrInterpolateCopy(p1, q1, q2);
|
|
505
|
+
|
|
506
|
+
return (q2 == p1) && !q1inP && !p2inQ ? POINT_INTERSECTION : COLLINEAR_INTERSECTION;
|
|
507
|
+
}
|
|
508
|
+
if(q2inP && p2inQ) {
|
|
509
|
+
// if pts are equal Z is chosen arbitrarily
|
|
510
|
+
intPt[0] = zmGetOrInterpolateCopy(q2, p1, p2);
|
|
511
|
+
intPt[1] = zmGetOrInterpolateCopy(p2, q1, q2);
|
|
512
|
+
return (q2 == p2) && !q1inP && !p1inQ ? POINT_INTERSECTION : COLLINEAR_INTERSECTION;
|
|
513
|
+
}
|
|
514
|
+
return NO_INTERSECTION;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/** \brief
|
|
518
|
+
* This method computes the actual value of the intersection point.
|
|
519
|
+
*
|
|
520
|
+
* To obtain the maximum precision from the intersection calculation,
|
|
521
|
+
* the coordinates are normalized by subtracting the minimum
|
|
522
|
+
* ordinate values (in absolute value). This has the effect of
|
|
523
|
+
* removing common significant digits from the calculation to
|
|
524
|
+
* maintain more bits of precision.
|
|
525
|
+
*/
|
|
526
|
+
template<typename C1, typename C2>
|
|
527
|
+
geom::CoordinateXYZM intersection (const C1& p1, const C1& p2, const C2& q1, const C2& q2) const {
|
|
528
|
+
auto intPtOut = intersectionSafe(p1, p2, q1, q2);
|
|
529
|
+
|
|
530
|
+
/*
|
|
531
|
+
* Due to rounding it can happen that the computed intersection is
|
|
532
|
+
* outside the envelopes of the input segments. Clearly this
|
|
533
|
+
* is inconsistent.
|
|
534
|
+
* This code checks this condition and forces a more reasonable answer
|
|
535
|
+
*
|
|
536
|
+
* MD - May 4 2005 - This is still a problem. Here is a failure case:
|
|
537
|
+
*
|
|
538
|
+
* LINESTRING (2089426.5233462777 1180182.3877339689,
|
|
539
|
+
* 2085646.6891757075 1195618.7333999649)
|
|
540
|
+
* LINESTRING (1889281.8148903656 1997547.0560044837,
|
|
541
|
+
* 2259977.3672235999 483675.17050843034)
|
|
542
|
+
* int point = (2097408.2633752143,1144595.8008114607)
|
|
543
|
+
*/
|
|
544
|
+
|
|
545
|
+
if(! isInSegmentEnvelopes(intPtOut)) {
|
|
546
|
+
//intPt = CentralEndpointIntersector::getIntersection(p1, p2, q1, q2);
|
|
547
|
+
intPtOut = nearestEndpoint(p1, p2, q1, q2);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
if(precisionModel != nullptr) {
|
|
551
|
+
precisionModel->makePrecise(intPtOut);
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
return intPtOut;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
/**
|
|
558
|
+
* Test whether a point lies in the envelopes of both input segments.
|
|
559
|
+
* A correctly computed intersection point should return true
|
|
560
|
+
* for this test.
|
|
561
|
+
* Since this test is for debugging purposes only, no attempt is
|
|
562
|
+
* made to optimize the envelope test.
|
|
563
|
+
*
|
|
564
|
+
* @return true if the input point lies within both
|
|
565
|
+
* input segment envelopes
|
|
566
|
+
*/
|
|
567
|
+
bool isInSegmentEnvelopes(const geom::CoordinateXY& pt) const
|
|
568
|
+
{
|
|
569
|
+
geom::Envelope env0(*inputLines[0][0], *inputLines[0][1]);
|
|
570
|
+
geom::Envelope env1(*inputLines[1][0], *inputLines[1][1]);
|
|
571
|
+
return env0.contains(pt) && env1.contains(pt);
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* Computes a segment intersection.
|
|
576
|
+
* Round-off error can cause the raw computation to fail,
|
|
577
|
+
* (usually due to the segments being approximately parallel).
|
|
578
|
+
* If this happens, a reasonable approximation is computed instead.
|
|
579
|
+
*
|
|
580
|
+
* @param p1 a segment endpoint
|
|
581
|
+
* @param p2 a segment endpoint
|
|
582
|
+
* @param q1 a segment endpoint
|
|
583
|
+
* @param q2 a segment endpoint
|
|
584
|
+
* @return the computed intersection point is stored there
|
|
585
|
+
*/
|
|
586
|
+
template<typename C1, typename C2>
|
|
587
|
+
geom::CoordinateXYZM intersectionSafe(const C1& p1, const C1& p2,
|
|
588
|
+
const C2& q1, const C2& q2) const
|
|
589
|
+
{
|
|
590
|
+
geom::CoordinateXYZM ptInt(Intersection::intersection(p1, p2, q1, q2));
|
|
591
|
+
if (ptInt.isNull()) {
|
|
592
|
+
const geom::CoordinateXY& nearest = nearestEndpoint(p1, p2, q1, q2);
|
|
593
|
+
#if __cplusplus >= 201703L
|
|
594
|
+
if constexpr (std::is_same<C1, C2>::value) {
|
|
595
|
+
#else
|
|
596
|
+
if (std::is_same<C1, C2>::value) {
|
|
597
|
+
#endif
|
|
598
|
+
ptInt = static_cast<const C1&>(nearest);
|
|
599
|
+
} else {
|
|
600
|
+
if (&nearest == static_cast<const geom::CoordinateXY*>(&p1) || &nearest == static_cast<const geom::CoordinateXY*>(&p2)) {
|
|
601
|
+
ptInt = static_cast<const C1&>(nearest);
|
|
602
|
+
} else {
|
|
603
|
+
ptInt = static_cast<const C2&>(nearest);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
return ptInt;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* Finds the endpoint of the segments P and Q which
|
|
612
|
+
* is closest to the other segment.
|
|
613
|
+
* This is a reasonable surrogate for the true
|
|
614
|
+
* intersection points in ill-conditioned cases
|
|
615
|
+
* (e.g. where two segments are nearly coincident,
|
|
616
|
+
* or where the endpoint of one segment lies almost on the other segment).
|
|
617
|
+
* <p>
|
|
618
|
+
* This replaces the older CentralEndpoint heuristic,
|
|
619
|
+
* which chose the wrong endpoint in some cases
|
|
620
|
+
* where the segments had very distinct slopes
|
|
621
|
+
* and one endpoint lay almost on the other segment.
|
|
622
|
+
*
|
|
623
|
+
* @param p1 an endpoint of segment P
|
|
624
|
+
* @param p2 an endpoint of segment P
|
|
625
|
+
* @param q1 an endpoint of segment Q
|
|
626
|
+
* @param q2 an endpoint of segment Q
|
|
627
|
+
* @return the nearest endpoint to the other segment
|
|
628
|
+
*/
|
|
629
|
+
static const geom::CoordinateXY& nearestEndpoint(const geom::CoordinateXY& p1,
|
|
630
|
+
const geom::CoordinateXY& p2,
|
|
631
|
+
const geom::CoordinateXY& q1,
|
|
632
|
+
const geom::CoordinateXY& q2);
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
template<typename C1, typename C2>
|
|
636
|
+
static geom::CoordinateXYZM zmGetOrInterpolateCopy(
|
|
637
|
+
const C1& p,
|
|
638
|
+
const C2& p1,
|
|
639
|
+
const C2& p2)
|
|
640
|
+
{
|
|
641
|
+
geom::CoordinateXYZM pCopy(p);
|
|
642
|
+
pCopy.z = Interpolate::zGetOrInterpolate(p, p1, p2);
|
|
643
|
+
pCopy.m = Interpolate::mGetOrInterpolate(p, p1, p2);
|
|
644
|
+
return pCopy;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
};
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
} // namespace geos::algorithm
|
|
651
|
+
} // namespace geos
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
|