@cpp.js/package-geos 1.0.0-beta.22 → 1.0.0
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 +13 -0
- package/README.md +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,309 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
*
|
|
3
|
+
* GEOS - Geometry Engine Open Source
|
|
4
|
+
* http://geos.osgeo.org
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2021 Paul Ramsey <pramsey@cleverelephant.ca>
|
|
7
|
+
*
|
|
8
|
+
* This is free software; you can redistribute and/or modify it under
|
|
9
|
+
* the terms of the GNU Lesser General Public Licence as published
|
|
10
|
+
* by the Free Software Foundation.
|
|
11
|
+
* See the COPYING file for more information.
|
|
12
|
+
*
|
|
13
|
+
**********************************************************************/
|
|
14
|
+
|
|
15
|
+
#pragma once
|
|
16
|
+
|
|
17
|
+
#include <geos/geom/Triangle.h>
|
|
18
|
+
#include <geos/triangulate/tri/Tri.h>
|
|
19
|
+
#include <geos/triangulate/tri/TriList.h>
|
|
20
|
+
#include <geos/triangulate/quadedge/TriangleVisitor.h>
|
|
21
|
+
#include <geos/algorithm/hull/HullTri.h>
|
|
22
|
+
|
|
23
|
+
#include <queue>
|
|
24
|
+
#include <deque>
|
|
25
|
+
|
|
26
|
+
namespace geos {
|
|
27
|
+
namespace geom {
|
|
28
|
+
class Coordinate;
|
|
29
|
+
class Geometry;
|
|
30
|
+
class GeometryFactory;
|
|
31
|
+
}
|
|
32
|
+
namespace triangulate {
|
|
33
|
+
namespace quadedge {
|
|
34
|
+
class Quadedge;
|
|
35
|
+
class QuadEdgeSubdivision;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
using geos::geom::Coordinate;
|
|
41
|
+
using geos::geom::Geometry;
|
|
42
|
+
using geos::geom::GeometryFactory;
|
|
43
|
+
using geos::geom::Triangle;
|
|
44
|
+
using geos::triangulate::quadedge::QuadEdge;
|
|
45
|
+
using geos::triangulate::quadedge::QuadEdgeSubdivision;
|
|
46
|
+
using geos::triangulate::quadedge::TriangleVisitor;
|
|
47
|
+
using geos::triangulate::tri::Tri;
|
|
48
|
+
using geos::triangulate::tri::TriList;
|
|
49
|
+
|
|
50
|
+
namespace geos {
|
|
51
|
+
namespace algorithm { // geos::algorithm
|
|
52
|
+
namespace hull { // geos::algorithm::hull
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
typedef std::priority_queue<HullTri*, std::vector<HullTri*>, HullTri::HullTriCompare> HullTriQueue;
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Constructs a concave hull of a set of points.
|
|
60
|
+
* The hull is constructed by removing border triangles
|
|
61
|
+
* of the Delaunay Triangulation of the points
|
|
62
|
+
* as long as their "size" is larger than the target criterion.
|
|
63
|
+
* The target criteria are:
|
|
64
|
+
*
|
|
65
|
+
* * Maximum Edge Length Ratio - determines the Maximum Edge Length
|
|
66
|
+
* by a fraction of the difference between
|
|
67
|
+
* the longest and shortest edge lengths
|
|
68
|
+
* in the Delaunay Triangulation. This normalizes the
|
|
69
|
+
* Maximum Edge Length to be scale-independent.
|
|
70
|
+
* * Maximum Area Ratio - the ratio of the concave hull area to the convex
|
|
71
|
+
* hull area will be no larger than this value
|
|
72
|
+
* * Alpha - produces Alpha-shapes, by removing border triangles
|
|
73
|
+
* with a circumradius greater than alpha.
|
|
74
|
+
* Large values produce the convex hull; a value of 0
|
|
75
|
+
* produces maximum concaveness.
|
|
76
|
+
*
|
|
77
|
+
* The preferred criterium is the Maximum Edge Length Ratio, since it is
|
|
78
|
+
* scale-free and local (so that no assumption needs to be made about the
|
|
79
|
+
* total amount of concavity present.
|
|
80
|
+
*
|
|
81
|
+
* Other length criteria can be used by setting the Maximum Edge Length.
|
|
82
|
+
* For example, use a length relative to the longest edge length
|
|
83
|
+
* in the Minimum Spanning Tree of the point set.
|
|
84
|
+
* Or, use a length derived from the uniformGridEdgeLength() value.
|
|
85
|
+
*
|
|
86
|
+
* The computed hull is always a single connected geom::Polygon
|
|
87
|
+
* (unless it is degenerate, in which case it will be a geom::Point or a geom::LineString).
|
|
88
|
+
* This constraint may cause the concave hull to fail to meet the target criteria.
|
|
89
|
+
*
|
|
90
|
+
* Optionally the concave hull can be allowed
|
|
91
|
+
* to contain holes by calling setHolesAllowed(boolean).
|
|
92
|
+
*
|
|
93
|
+
* @author mdavis
|
|
94
|
+
*/
|
|
95
|
+
class GEOS_DLL ConcaveHull {
|
|
96
|
+
|
|
97
|
+
public:
|
|
98
|
+
|
|
99
|
+
ConcaveHull(const Geometry* geom);
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Computes the approximate edge length of
|
|
103
|
+
* a uniform square grid having the same number of
|
|
104
|
+
* points as a geometry and the same area as its convex hull.
|
|
105
|
+
* This value can be used to determine a suitable length threshold value
|
|
106
|
+
* for computing a concave hull.
|
|
107
|
+
* A value from 2 to 4 times the uniform grid length
|
|
108
|
+
* seems to produce reasonable results.
|
|
109
|
+
*
|
|
110
|
+
* @param geom a geometry
|
|
111
|
+
* @return the approximate uniform grid length
|
|
112
|
+
*/
|
|
113
|
+
static double uniformEdgeLength(const Geometry* geom);
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Computes the concave hull of the vertices in a geometry
|
|
117
|
+
* using the target criteria of maximum edge length.
|
|
118
|
+
*
|
|
119
|
+
* @param geom the input geometry
|
|
120
|
+
* @param maxLength the target maximum edge length
|
|
121
|
+
* @return the concave hull
|
|
122
|
+
*/
|
|
123
|
+
static std::unique_ptr<Geometry> concaveHullByLength(
|
|
124
|
+
const Geometry* geom, double maxLength);
|
|
125
|
+
|
|
126
|
+
static std::unique_ptr<Geometry> concaveHullByLength(
|
|
127
|
+
const Geometry* geom, double maxLength, bool isHolesAllowed);
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Computes the concave hull of the vertices in a geometry
|
|
131
|
+
* using the target criteria of maximum edge length ratio.
|
|
132
|
+
* The edge length ratio is a fraction of the length difference
|
|
133
|
+
* between the longest and shortest edges
|
|
134
|
+
* in the Delaunay Triangulation of the input points.
|
|
135
|
+
*
|
|
136
|
+
* @param geom the input geometry
|
|
137
|
+
* @param lengthRatio the target edge length factor
|
|
138
|
+
* @return the concave hull
|
|
139
|
+
*/
|
|
140
|
+
static std::unique_ptr<Geometry> concaveHullByLengthRatio(
|
|
141
|
+
const Geometry* geom, double lengthRatio);
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Computes the concave hull of the vertices in a geometry
|
|
145
|
+
* using the target criterion of maximum edge length factor,
|
|
146
|
+
* and optionally allowing holes.
|
|
147
|
+
* The edge length factor is a fraction of the length difference
|
|
148
|
+
* between the longest and shortest edges
|
|
149
|
+
* in the Delaunay Triangulation of the input points.
|
|
150
|
+
*
|
|
151
|
+
* @param geom the input geometry
|
|
152
|
+
* @param lengthRatio the target maximum edge length
|
|
153
|
+
* @param isHolesAllowed whether holes are allowed in the result
|
|
154
|
+
* @return the concave hull
|
|
155
|
+
*/
|
|
156
|
+
static std::unique_ptr<Geometry> concaveHullByLengthRatio(
|
|
157
|
+
const Geometry* geom,
|
|
158
|
+
double lengthRatio,
|
|
159
|
+
bool isHolesAllowed);
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Computes the alpha shape of a geometry as a polygon.
|
|
163
|
+
* The alpha parameter is the radius of the eroding disc.
|
|
164
|
+
*
|
|
165
|
+
* @param geom the input geometry
|
|
166
|
+
* @param alpha the radius of the eroding disc
|
|
167
|
+
* @param isHolesAllowed whether holes are allowed in the result
|
|
168
|
+
* @return the alpha shape polygon
|
|
169
|
+
*/
|
|
170
|
+
static std::unique_ptr<Geometry> alphaShape(
|
|
171
|
+
const Geometry* geom,
|
|
172
|
+
double alpha,
|
|
173
|
+
bool isHolesAllowed);
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Sets the target maximum edge length for the concave hull.
|
|
177
|
+
* The length value must be zero or greater.
|
|
178
|
+
*
|
|
179
|
+
* * The value 0.0 produces the concave hull of smallest area
|
|
180
|
+
* that is still connected.
|
|
181
|
+
* * Larger values produce less concave results.
|
|
182
|
+
* A value equal or greater than the longest Delaunay Triangulation edge length
|
|
183
|
+
* produces the convex hull.
|
|
184
|
+
*
|
|
185
|
+
* The uniformGridEdgeLength value may be used as
|
|
186
|
+
* the basis for estimating an appropriate target maximum edge length.
|
|
187
|
+
*
|
|
188
|
+
* @param edgeLength a non-negative length
|
|
189
|
+
*/
|
|
190
|
+
void setMaximumEdgeLength(double edgeLength);
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Sets the target maximum edge length ratio for the concave hull.
|
|
194
|
+
* The edge length ratio is a fraction of the length delta
|
|
195
|
+
* between the longest and shortest edges
|
|
196
|
+
* in the Delaunay Triangulation of the input points.
|
|
197
|
+
* A value of 1.0 produces the convex hull.
|
|
198
|
+
* A value of 0.0 produces a concave hull of minimum area
|
|
199
|
+
* that is still connected.
|
|
200
|
+
*
|
|
201
|
+
* @param edgeLengthRatio a length ratio value between 0 and 1
|
|
202
|
+
*/
|
|
203
|
+
void setMaximumEdgeLengthRatio(double edgeLengthRatio);
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Sets whether holes are allowed in the concave hull polygon.
|
|
207
|
+
*
|
|
208
|
+
* @param holesAllowed true if holes are allowed in the result
|
|
209
|
+
*/
|
|
210
|
+
void setHolesAllowed(bool holesAllowed);
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Sets the alpha parameter to compute an alpha shape of the input.
|
|
214
|
+
* Alpha is the radius of the eroding disc.
|
|
215
|
+
* Border triangles with circumradius greater than alpha are removed.
|
|
216
|
+
*
|
|
217
|
+
* @param newAlpha the alpha radius
|
|
218
|
+
*/
|
|
219
|
+
void setAlpha(double newAlpha);
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Gets the computed concave hull.
|
|
223
|
+
*
|
|
224
|
+
* @return the concave hull
|
|
225
|
+
*/
|
|
226
|
+
std::unique_ptr<Geometry> getHull();
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
private:
|
|
230
|
+
|
|
231
|
+
// Constants
|
|
232
|
+
static constexpr int PARAM_EDGE_LENGTH = 1;
|
|
233
|
+
static constexpr int PARAM_ALPHA = 2;
|
|
234
|
+
|
|
235
|
+
// Members
|
|
236
|
+
const Geometry* inputGeometry;
|
|
237
|
+
double maxEdgeLengthRatio;
|
|
238
|
+
double alpha;
|
|
239
|
+
bool isHolesAllowed;
|
|
240
|
+
int criteriaType;
|
|
241
|
+
double maxSizeInHull;
|
|
242
|
+
const GeometryFactory* geomFactory;
|
|
243
|
+
|
|
244
|
+
// Methods
|
|
245
|
+
static double computeTargetEdgeLength(
|
|
246
|
+
TriList<HullTri>& triList,
|
|
247
|
+
double edgeLengthFactor);
|
|
248
|
+
|
|
249
|
+
void computeHull(TriList<HullTri>& triList);
|
|
250
|
+
void computeHullBorder(TriList<HullTri>& triList);
|
|
251
|
+
void createBorderQueue(HullTriQueue& queue, TriList<HullTri>& triList);
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Adds a Tri to the queue.
|
|
255
|
+
* Only add tris with a single border edge.
|
|
256
|
+
* since otherwise that would risk isolating a vertex if
|
|
257
|
+
* the tri ends up being eroded from the hull.
|
|
258
|
+
* Sets the tri size according to the threshold parameter being used.
|
|
259
|
+
*
|
|
260
|
+
* @param tri the Tri to add
|
|
261
|
+
* @param queue the priority queue
|
|
262
|
+
*/
|
|
263
|
+
void addBorderTri(HullTri* tri, HullTriQueue& queue);
|
|
264
|
+
void computeHullHoles(TriList<HullTri>& triList);
|
|
265
|
+
void setSize(HullTri* tri);
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Finds tris which may be the start of holes.
|
|
270
|
+
* Only tris which have a long enough edge and which do not touch the current hull
|
|
271
|
+
* boundary are included.
|
|
272
|
+
* This avoids the risk of disconnecting the result polygon.
|
|
273
|
+
* The list is sorted in decreasing order of edge length.
|
|
274
|
+
* The list is sorted in decreasing order of size.
|
|
275
|
+
*
|
|
276
|
+
* @param triList
|
|
277
|
+
* @param maxSizeInHull maximum tri size which is not in a hole
|
|
278
|
+
* @return
|
|
279
|
+
*/
|
|
280
|
+
static std::vector<HullTri*> findCandidateHoles(
|
|
281
|
+
TriList<HullTri>& triList, double maxSizeInHull);
|
|
282
|
+
|
|
283
|
+
void removeHole(TriList<HullTri>& triList, HullTri* triHole);
|
|
284
|
+
void setSize(TriList<HullTri>& triList);
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Tests if a tri is included in the hull.
|
|
288
|
+
* Tris with size less than the maximum are included in the hull.
|
|
289
|
+
*
|
|
290
|
+
* @param tri the tri to test
|
|
291
|
+
* @return true if the tri is included in the hull
|
|
292
|
+
*/
|
|
293
|
+
bool isInHull(const HullTri* tri) const;
|
|
294
|
+
|
|
295
|
+
bool isRemovableBorder(const HullTri* tri) const;
|
|
296
|
+
bool isRemovableHole(const HullTri* tri) const;
|
|
297
|
+
|
|
298
|
+
std::unique_ptr<Geometry> toGeometry(
|
|
299
|
+
TriList<HullTri>& triList,
|
|
300
|
+
const GeometryFactory* factory);
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
} // geos::algorithm::hull
|
|
307
|
+
} // geos::algorithm
|
|
308
|
+
} // geos
|
|
309
|
+
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
*
|
|
3
|
+
* GEOS - Geometry Engine Open Source
|
|
4
|
+
* http://geos.osgeo.org
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2022 Paul Ramsey <pramsey@cleverelephant.ca>
|
|
7
|
+
*
|
|
8
|
+
* This is free software; you can redistribute and/or modify it under
|
|
9
|
+
* the terms of the GNU Lesser General Public Licence as published
|
|
10
|
+
* by the Free Software Foundation.
|
|
11
|
+
* See the COPYING file for more information.
|
|
12
|
+
*
|
|
13
|
+
**********************************************************************/
|
|
14
|
+
|
|
15
|
+
#pragma once
|
|
16
|
+
|
|
17
|
+
#include <geos/triangulate/tri/TriList.h>
|
|
18
|
+
|
|
19
|
+
#include <set>
|
|
20
|
+
#include <deque>
|
|
21
|
+
#include <map>
|
|
22
|
+
|
|
23
|
+
namespace geos {
|
|
24
|
+
namespace geom {
|
|
25
|
+
class Coordinate;
|
|
26
|
+
class CoordinateSequence;
|
|
27
|
+
class Envelope;
|
|
28
|
+
class Geometry;
|
|
29
|
+
class GeometryCollection;
|
|
30
|
+
class GeometryFactory;
|
|
31
|
+
class LinearRing;
|
|
32
|
+
class Polygon;
|
|
33
|
+
}
|
|
34
|
+
namespace triangulate {
|
|
35
|
+
namespace tri {
|
|
36
|
+
class Tri;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#include <geos/triangulate/tri/Tri.h>
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
using geos::geom::Coordinate;
|
|
45
|
+
using geos::geom::CoordinateSequence;
|
|
46
|
+
using geos::geom::Envelope;
|
|
47
|
+
using geos::geom::Geometry;
|
|
48
|
+
using geos::geom::GeometryCollection;
|
|
49
|
+
using geos::geom::GeometryFactory;
|
|
50
|
+
using geos::geom::LinearRing;
|
|
51
|
+
using geos::geom::Polygon;
|
|
52
|
+
using geos::triangulate::tri::Tri;
|
|
53
|
+
using geos::triangulate::tri::TriList;
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
namespace geos {
|
|
57
|
+
namespace algorithm { // geos::algorithm
|
|
58
|
+
namespace hull { // geos::algorithm::hull
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Constructs a concave hull of a set of polygons, respecting
|
|
63
|
+
* the polygons as constraints.
|
|
64
|
+
* A concave hull is a possibly non-convex polygon containing all the input polygons.
|
|
65
|
+
* A given set of polygons has a sequence of hulls of increasing concaveness,
|
|
66
|
+
* determined by a numeric target parameter.
|
|
67
|
+
* The computed hull "fills the gap" between the polygons,
|
|
68
|
+
* and does not intersect their interior.
|
|
69
|
+
*
|
|
70
|
+
* The concave hull is constructed by removing the longest outer edges
|
|
71
|
+
* of the Delaunay Triangulation of the space between the polygons,
|
|
72
|
+
* until the target criterion parameter is reached.
|
|
73
|
+
*
|
|
74
|
+
* The target criteria are:
|
|
75
|
+
* * Maximum Edge Length - the length of the longest edge between the polygons is no larger
|
|
76
|
+
* than this value.
|
|
77
|
+
* * Maximum Edge Length Ratio - determine the Maximum Edge Length
|
|
78
|
+
* as a fraction of the difference between the longest and shortest edge lengths
|
|
79
|
+
* between the polygons. This normalizes the Maximum Edge Length to be scale-free.
|
|
80
|
+
* A value of 1 produces the convex hull; a value of 0 produces the original polygons.
|
|
81
|
+
*
|
|
82
|
+
* The preferred criterion is the Maximum Edge Length Ratio, since it is
|
|
83
|
+
* scale-free and local (so that no assumption needs to be made about the
|
|
84
|
+
* total amount of concaveness present).
|
|
85
|
+
*
|
|
86
|
+
* Optionally the concave hull can be allowed to contain holes, via setHolesAllowed().
|
|
87
|
+
*
|
|
88
|
+
* The hull can be specified as being "tight", which means it follows the outer boundaries
|
|
89
|
+
* of the input polygons.
|
|
90
|
+
*
|
|
91
|
+
* The input polygons must form a valid MultiPolygon
|
|
92
|
+
* (i.e. they must be non-overlapping).
|
|
93
|
+
*
|
|
94
|
+
* \author Martin Davis
|
|
95
|
+
*
|
|
96
|
+
*/
|
|
97
|
+
class GEOS_DLL ConcaveHullOfPolygons {
|
|
98
|
+
|
|
99
|
+
private:
|
|
100
|
+
|
|
101
|
+
/* Members */
|
|
102
|
+
|
|
103
|
+
static constexpr int FRAME_EXPAND_FACTOR = 4;
|
|
104
|
+
|
|
105
|
+
const Geometry* inputPolygons;
|
|
106
|
+
const GeometryFactory* geomFactory;
|
|
107
|
+
double maxEdgeLength;
|
|
108
|
+
double maxEdgeLengthRatio;
|
|
109
|
+
bool isHolesAllowed;
|
|
110
|
+
bool isTight;
|
|
111
|
+
|
|
112
|
+
std::set<Tri*> hullTris;
|
|
113
|
+
std::deque<Tri*> borderTriQue;
|
|
114
|
+
std::vector<const LinearRing*> polygonRings;
|
|
115
|
+
TriList<Tri> triList;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Records the edge index of the longest border edge for border tris,
|
|
119
|
+
* so it can be tested for length and possible removal.
|
|
120
|
+
*/
|
|
121
|
+
std::map<Tri*, TriIndex> borderEdgeMap;
|
|
122
|
+
|
|
123
|
+
/* Methods */
|
|
124
|
+
|
|
125
|
+
std::unique_ptr<Geometry> createEmptyHull();
|
|
126
|
+
|
|
127
|
+
static void extractShellRings(
|
|
128
|
+
const Geometry* polygons,
|
|
129
|
+
std::vector<const LinearRing*>& rings);
|
|
130
|
+
|
|
131
|
+
void buildHullTris();
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Creates a rectangular "frame" around the input polygons,
|
|
135
|
+
* with the input polygons as holes in it.
|
|
136
|
+
* The frame is large enough that the constrained Delaunay triangulation
|
|
137
|
+
* of it should contain the convex hull of the input as edges.
|
|
138
|
+
* The frame corner triangles can be removed to produce a
|
|
139
|
+
* triangulation of the space around and between the input polygons.
|
|
140
|
+
*
|
|
141
|
+
* @param polygonsEnv
|
|
142
|
+
* @return the frame polygon
|
|
143
|
+
*/
|
|
144
|
+
std::unique_ptr<Polygon> createFrame(
|
|
145
|
+
const Envelope* polygonsEnv);
|
|
146
|
+
|
|
147
|
+
double computeTargetEdgeLength(
|
|
148
|
+
TriList<Tri>& triList,
|
|
149
|
+
const CoordinateSequence* frameCorners,
|
|
150
|
+
double edgeLengthRatio) const;
|
|
151
|
+
|
|
152
|
+
bool isFrameTri(
|
|
153
|
+
const Tri* tri,
|
|
154
|
+
const CoordinateSequence* frameCorners) const;
|
|
155
|
+
|
|
156
|
+
void removeFrameCornerTris(
|
|
157
|
+
TriList<Tri>& tris,
|
|
158
|
+
const CoordinateSequence* frameCorners);
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Get the tri vertex index of some point in a list,
|
|
162
|
+
* or -1 if none are vertices.
|
|
163
|
+
*
|
|
164
|
+
* @param tri the tri to test for containing a point
|
|
165
|
+
* @param pts the points to test
|
|
166
|
+
* @return the vertex index of a point, or -1
|
|
167
|
+
*/
|
|
168
|
+
TriIndex vertexIndex(
|
|
169
|
+
const Tri* tri,
|
|
170
|
+
const CoordinateSequence* pts) const;
|
|
171
|
+
|
|
172
|
+
void removeBorderTris();
|
|
173
|
+
|
|
174
|
+
void removeHoleTris();
|
|
175
|
+
|
|
176
|
+
Tri* findHoleSeedTri() const;
|
|
177
|
+
|
|
178
|
+
bool isHoleSeedTri(const Tri* tri) const;
|
|
179
|
+
|
|
180
|
+
bool isBorderTri(const Tri* tri) const;
|
|
181
|
+
|
|
182
|
+
bool isRemovable(const Tri* tri) const;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Tests whether a triangle touches a single polygon at all vertices.
|
|
186
|
+
* If so, it is a candidate for removal if the hull polygon
|
|
187
|
+
* is being kept tight to the outer boundary of the input polygons.
|
|
188
|
+
* Tris which touch more than one polygon are called "bridging".
|
|
189
|
+
*
|
|
190
|
+
* @param tri
|
|
191
|
+
* @return true if the tri touches a single polygon
|
|
192
|
+
*/
|
|
193
|
+
bool isTouchingSinglePolygon(const Tri* tri) const;
|
|
194
|
+
|
|
195
|
+
void addBorderTris(Tri* tri);
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Adds an adjacent tri to the current border.
|
|
199
|
+
* The adjacent edge is recorded as the border edge for the tri.
|
|
200
|
+
* Note that only edges adjacent to another tri can become border edges.
|
|
201
|
+
* Since constraint-adjacent edges do not have an adjacent tri,
|
|
202
|
+
* they can never be on the border and thus will not be removed
|
|
203
|
+
* due to being shorter than the length threshold.
|
|
204
|
+
* The tri containing them may still be removed via another edge, however.
|
|
205
|
+
*
|
|
206
|
+
* @param tri the tri adjacent to the tri to be added to the border
|
|
207
|
+
* @param index the index of the adjacent tri
|
|
208
|
+
*/
|
|
209
|
+
void addBorderTri(Tri* tri, TriIndex index);
|
|
210
|
+
|
|
211
|
+
void removeBorderTri(Tri* tri);
|
|
212
|
+
|
|
213
|
+
bool hasAllVertices(const LinearRing* ring, const Tri* tri) const;
|
|
214
|
+
|
|
215
|
+
bool hasVertex(const LinearRing* ring, const Coordinate& v) const;
|
|
216
|
+
|
|
217
|
+
void envelope(const Tri* tri, Envelope& env) const;
|
|
218
|
+
|
|
219
|
+
std::unique_ptr<Geometry> createHullGeometry(bool isIncludeInput);
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
public:
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Computes a concave hull of set of polygons
|
|
226
|
+
* using the target criterion of maximum edge length.
|
|
227
|
+
*
|
|
228
|
+
* @param polygons the input polygons
|
|
229
|
+
* @param maxLength the target maximum edge length
|
|
230
|
+
* @return the concave hull
|
|
231
|
+
*/
|
|
232
|
+
static std::unique_ptr<Geometry>
|
|
233
|
+
concaveHullByLength(const Geometry* polygons, double maxLength);
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Computes a concave hull of set of polygons
|
|
237
|
+
* using the target criterion of maximum edge length,
|
|
238
|
+
* and allowing control over whether the hull boundary is tight
|
|
239
|
+
* and can contain holes.
|
|
240
|
+
*
|
|
241
|
+
* @param polygons the input polygons
|
|
242
|
+
* @param maxLength the target maximum edge length
|
|
243
|
+
* @param isTight true if the hull should be tight to the outside of the polygons
|
|
244
|
+
* @param isHolesAllowed true if holes are allowed in the hull polygon
|
|
245
|
+
* @return the concave hull
|
|
246
|
+
*/
|
|
247
|
+
static std::unique_ptr<Geometry>
|
|
248
|
+
concaveHullByLength(
|
|
249
|
+
const Geometry* polygons, double maxLength,
|
|
250
|
+
bool isTight, bool isHolesAllowed);
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Computes a concave hull of set of polygons
|
|
254
|
+
* using the target criterion of maximum edge length ratio.
|
|
255
|
+
*
|
|
256
|
+
* @param polygons the input polygons
|
|
257
|
+
* @param lengthRatio the target maximum edge length ratio
|
|
258
|
+
* @return the concave hull
|
|
259
|
+
*/
|
|
260
|
+
static std::unique_ptr<Geometry>
|
|
261
|
+
concaveHullByLengthRatio(const Geometry* polygons, double lengthRatio);
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Computes a concave hull of set of polygons
|
|
265
|
+
* using the target criterion of maximum edge length ratio,
|
|
266
|
+
* and allowing control over whether the hull boundary is tight
|
|
267
|
+
* and can contain holes.
|
|
268
|
+
*
|
|
269
|
+
* @param polygons the input polygons
|
|
270
|
+
* @param lengthRatio the target maximum edge length ratio
|
|
271
|
+
* @param isTight true if the hull should be tight to the outside of the polygons
|
|
272
|
+
* @param isHolesAllowed true if holes are allowed in the hull polygon
|
|
273
|
+
* @return the concave hull
|
|
274
|
+
*/
|
|
275
|
+
static std::unique_ptr<Geometry>
|
|
276
|
+
concaveHullByLengthRatio(
|
|
277
|
+
const Geometry* polygons, double lengthRatio,
|
|
278
|
+
bool isTight, bool isHolesAllowed);
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Computes a concave fill area between a set of polygons,
|
|
282
|
+
* using the target criterion of maximum edge length.
|
|
283
|
+
*
|
|
284
|
+
* @param polygons the input polygons
|
|
285
|
+
* @param maxLength the target maximum edge length
|
|
286
|
+
* @return the concave fill
|
|
287
|
+
*/
|
|
288
|
+
static std::unique_ptr<Geometry>
|
|
289
|
+
concaveFillByLength(const Geometry* polygons, double maxLength);
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Computes a concave fill area between a set of polygons,
|
|
293
|
+
* using the target criterion of maximum edge length ratio.
|
|
294
|
+
*
|
|
295
|
+
* @param polygons the input polygons
|
|
296
|
+
* @param lengthRatio the target maximum edge length ratio
|
|
297
|
+
* @return the concave fill
|
|
298
|
+
*/
|
|
299
|
+
static std::unique_ptr<Geometry>
|
|
300
|
+
concaveFillByLengthRatio(const Geometry* polygons, double lengthRatio);
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Creates a new instance for a given geometry.
|
|
304
|
+
*
|
|
305
|
+
* @param geom the input geometry
|
|
306
|
+
*/
|
|
307
|
+
ConcaveHullOfPolygons(const Geometry* geom);
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Sets the target maximum edge length for the concave hull.
|
|
311
|
+
* The length value must be zero or greater.
|
|
312
|
+
*
|
|
313
|
+
* * The value 0.0 produces the input polygons.
|
|
314
|
+
* * Larger values produce less concave results.
|
|
315
|
+
* Above a certain large value the result is the convex hull of the input.
|
|
316
|
+
*
|
|
317
|
+
* The edge length ratio provides a scale-free parameter which
|
|
318
|
+
* is intended to produce similar concave results for a variety of inputs.
|
|
319
|
+
*
|
|
320
|
+
* @param edgeLength a non-negative length
|
|
321
|
+
*/
|
|
322
|
+
void setMaximumEdgeLength(double edgeLength);
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Sets the target maximum edge length ratio for the concave hull.
|
|
326
|
+
* The edge length ratio is a fraction of the difference
|
|
327
|
+
* between the longest and shortest edge lengths
|
|
328
|
+
* in the Delaunay Triangulation of the area between the input polygons.
|
|
329
|
+
* (Roughly speaking, it is a fraction of the difference between
|
|
330
|
+
* the shortest and longest distances between the input polygons.)
|
|
331
|
+
* It is a value in the range 0 to 1.
|
|
332
|
+
*
|
|
333
|
+
* * The value 0.0 produces the original input polygons.
|
|
334
|
+
* * The value 1.0 produces the convex hull.
|
|
335
|
+
*
|
|
336
|
+
* @param edgeLengthRatio a length factor value between 0 and 1
|
|
337
|
+
*/
|
|
338
|
+
void setMaximumEdgeLengthRatio(double edgeLengthRatio);
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Sets whether holes are allowed in the concave hull polygon.
|
|
342
|
+
*
|
|
343
|
+
* @param p_isHolesAllowed true if holes are allowed in the result
|
|
344
|
+
*/
|
|
345
|
+
void setHolesAllowed(bool p_isHolesAllowed);
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Sets whether the boundary of the hull polygon is kept
|
|
349
|
+
* tight to the outer edges of the input polygons.
|
|
350
|
+
*
|
|
351
|
+
* @param p_isTight true if the boundary is kept tight
|
|
352
|
+
*/
|
|
353
|
+
void setTight(bool p_isTight);
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Gets the computed concave hull.
|
|
357
|
+
*
|
|
358
|
+
* @return the concave hull
|
|
359
|
+
*/
|
|
360
|
+
std::unique_ptr<Geometry> getHull();
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Gets the concave fill, which is the area between the input polygons,
|
|
364
|
+
* subject to the concaveness control parameter.
|
|
365
|
+
*
|
|
366
|
+
* @return the concave fill
|
|
367
|
+
*/
|
|
368
|
+
std::unique_ptr<Geometry> getFill();
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
} // geos::algorithm::hull
|
|
376
|
+
} // geos::algorithm
|
|
377
|
+
} // geos
|