@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,807 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
*
|
|
3
|
+
* GEOS - Geometry Engine Open Source
|
|
4
|
+
* http://geos.osgeo.org
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2022 ISciences LLC
|
|
7
|
+
* Copyright (C) 2006 Refractions Research 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
|
+
#pragma once
|
|
17
|
+
|
|
18
|
+
#include <geos/export.h>
|
|
19
|
+
|
|
20
|
+
#include <geos/geom/Coordinate.h> // for applyCoordinateFilter
|
|
21
|
+
#include <geos/geom/CoordinateSequenceIterator.h>
|
|
22
|
+
|
|
23
|
+
#include <cassert>
|
|
24
|
+
#include <vector>
|
|
25
|
+
#include <iostream>
|
|
26
|
+
#include <iosfwd> // ostream
|
|
27
|
+
#include <memory> // for unique_ptr typedef
|
|
28
|
+
|
|
29
|
+
// Forward declarations
|
|
30
|
+
namespace geos {
|
|
31
|
+
namespace geom {
|
|
32
|
+
class Envelope;
|
|
33
|
+
class CoordinateFilter;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
namespace geos {
|
|
38
|
+
namespace geom { // geos::geom
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* \class CoordinateSequence geom.h geos.h
|
|
42
|
+
*
|
|
43
|
+
* \brief
|
|
44
|
+
* The internal representation of a list of coordinates inside a Geometry.
|
|
45
|
+
*
|
|
46
|
+
* A CoordinateSequence is capable of storing XY, XYZ, XYM, or XYZM Coordinates. For efficient
|
|
47
|
+
* storage, the dimensionality of the CoordinateSequence should be specified at creation using
|
|
48
|
+
* the constructor with `hasz` and `hasm` arguments. Currently most of the GEOS code base
|
|
49
|
+
* stores 2D Coordinates and accesses using the Coordinate type. Sequences used by these parts
|
|
50
|
+
* of the code must be created with constructors without `hasz` and `hasm` arguments.
|
|
51
|
+
*
|
|
52
|
+
* If a high-dimension Coordinate coordinate is read from a low-dimension CoordinateSequence,
|
|
53
|
+
* the higher dimensions will be populated with incorrect values or a segfault may occur.
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
class GEOS_DLL CoordinateSequence {
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
|
|
60
|
+
/// Standard ordinate index values
|
|
61
|
+
enum { X, Y, Z, M };
|
|
62
|
+
|
|
63
|
+
using iterator = CoordinateSequenceIterator<CoordinateSequence, Coordinate>;
|
|
64
|
+
using const_iterator = CoordinateSequenceIterator<const CoordinateSequence, const Coordinate>;
|
|
65
|
+
|
|
66
|
+
typedef std::unique_ptr<CoordinateSequence> Ptr;
|
|
67
|
+
|
|
68
|
+
/// \defgroup construct Constructors
|
|
69
|
+
/// @{
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Create an CoordinateSequence capable of storing XY or XYZ coordinates.
|
|
73
|
+
*/
|
|
74
|
+
CoordinateSequence();
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Create a CoordinateSequence capable of storing XY, XYZ or XYZM coordinates.
|
|
78
|
+
*
|
|
79
|
+
* @param size size of the sequence to create.
|
|
80
|
+
* @param dim 2 for 2D, 3 for XYZ, 4 for XYZM, or 0 to determine
|
|
81
|
+
* this based on the first coordinate in the sequence
|
|
82
|
+
*/
|
|
83
|
+
CoordinateSequence(std::size_t size, std::size_t dim = 0);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Create a CoordinateSequence that packs coordinates of any dimension.
|
|
87
|
+
* Code using a CoordinateSequence constructed in this way must not
|
|
88
|
+
* attempt to access references to coordinates with dimensions that
|
|
89
|
+
* are not actually stored in the sequence.
|
|
90
|
+
*
|
|
91
|
+
* @param size size of the sequence to create
|
|
92
|
+
* @param hasz true if the stored
|
|
93
|
+
* @param hasm
|
|
94
|
+
* @param initialize
|
|
95
|
+
*/
|
|
96
|
+
CoordinateSequence(std::size_t size, bool hasz, bool hasm, bool initialize = true);
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Create a CoordinateSequence from a list of XYZ coordinates.
|
|
100
|
+
* Code using the sequence may only access references to CoordinateXY
|
|
101
|
+
* or Coordinate objects.
|
|
102
|
+
*/
|
|
103
|
+
CoordinateSequence(const std::initializer_list<Coordinate>&);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Create a CoordinateSequence from a list of XY coordinates.
|
|
107
|
+
* Code using the sequence may only access references to CoordinateXY objects.
|
|
108
|
+
*/
|
|
109
|
+
CoordinateSequence(const std::initializer_list<CoordinateXY>&);
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Create a CoordinateSequence from a list of XYM coordinates.
|
|
113
|
+
* Code using the sequence may only access references to CoordinateXY
|
|
114
|
+
* or CoordinateXYM objects.
|
|
115
|
+
*/
|
|
116
|
+
CoordinateSequence(const std::initializer_list<CoordinateXYM>&);
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Create a CoordinateSequence from a list of XYZM coordinates.
|
|
120
|
+
*/
|
|
121
|
+
CoordinateSequence(const std::initializer_list<CoordinateXYZM>&);
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Create a CoordinateSequence storing XY values only.
|
|
125
|
+
*
|
|
126
|
+
* @param size size of the sequence to create
|
|
127
|
+
*/
|
|
128
|
+
static CoordinateSequence XY(std::size_t size) {
|
|
129
|
+
return CoordinateSequence(size, false, false);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Create a CoordinateSequence storing XYZ values only.
|
|
134
|
+
*
|
|
135
|
+
* @param size size of the sequence to create
|
|
136
|
+
*/
|
|
137
|
+
static CoordinateSequence XYZ(std::size_t size) {
|
|
138
|
+
return CoordinateSequence(size, true, false);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Create a CoordinateSequence storing XYZM values only.
|
|
143
|
+
*
|
|
144
|
+
* @param size size of the sequence to create
|
|
145
|
+
*/
|
|
146
|
+
static CoordinateSequence XYZM(std::size_t size) {
|
|
147
|
+
return CoordinateSequence(size, true, true);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Create a CoordinateSequence storing XYM values only.
|
|
152
|
+
*
|
|
153
|
+
* @param size size of the sequence to create
|
|
154
|
+
*/
|
|
155
|
+
static CoordinateSequence XYM(std::size_t size) {
|
|
156
|
+
return CoordinateSequence(size, false, true);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** \brief
|
|
160
|
+
* Returns a heap-allocated deep copy of this CoordinateSequence.
|
|
161
|
+
*/
|
|
162
|
+
std::unique_ptr<CoordinateSequence> clone() const;
|
|
163
|
+
|
|
164
|
+
/// @}
|
|
165
|
+
/// \defgroup prop Properties
|
|
166
|
+
/// @{
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Return the Envelope containing all points in this sequence.
|
|
170
|
+
* The Envelope is not cached and is computed each time the
|
|
171
|
+
* method is called.
|
|
172
|
+
*/
|
|
173
|
+
Envelope getEnvelope() const;
|
|
174
|
+
|
|
175
|
+
/** \brief
|
|
176
|
+
* Returns the number of Coordinates
|
|
177
|
+
*/
|
|
178
|
+
std::size_t getSize() const {
|
|
179
|
+
return size();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/** \brief
|
|
183
|
+
* Returns the number of Coordinates
|
|
184
|
+
*/
|
|
185
|
+
size_t size() const
|
|
186
|
+
{
|
|
187
|
+
assert(stride() == 2 || stride() == 3 || stride() == 4);
|
|
188
|
+
switch(stride()) {
|
|
189
|
+
case 2: return m_vect.size() / 2;
|
|
190
|
+
case 4: return m_vect.size() / 4;
|
|
191
|
+
default : return m_vect.size() / 3;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/// Returns <code>true</code> if list contains no coordinates.
|
|
196
|
+
bool isEmpty() const {
|
|
197
|
+
return m_vect.empty();
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** \brief
|
|
201
|
+
* Tests whether an a {@link CoordinateSequence} forms a ring,
|
|
202
|
+
* by checking length and closure. Self-intersection is not checked.
|
|
203
|
+
*
|
|
204
|
+
* @return true if the coordinate form a ring.
|
|
205
|
+
*/
|
|
206
|
+
bool isRing() const;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Returns the dimension (number of ordinates in each coordinate)
|
|
210
|
+
* for this sequence.
|
|
211
|
+
*
|
|
212
|
+
* @return the dimension of the sequence.
|
|
213
|
+
*/
|
|
214
|
+
std::size_t getDimension() const;
|
|
215
|
+
|
|
216
|
+
bool hasZ() const {
|
|
217
|
+
return m_hasdim ? m_hasz : (m_vect.empty() || !std::isnan(m_vect[2]));
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
bool hasM() const {
|
|
221
|
+
return m_hasm;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/// Returns true if contains any two consecutive points
|
|
225
|
+
bool hasRepeatedPoints() const;
|
|
226
|
+
|
|
227
|
+
/// Returns true if contains any NaN/Inf coordinates
|
|
228
|
+
bool hasRepeatedOrInvalidPoints() const;
|
|
229
|
+
|
|
230
|
+
/// Get the backing type of this CoordinateSequence. This is not necessarily
|
|
231
|
+
/// consistent with the dimensionality of the stored Coordinates; 2D Coordinates
|
|
232
|
+
/// may be stored as a XYZ coordinates.
|
|
233
|
+
CoordinateType getCoordinateType() const {
|
|
234
|
+
switch(stride()) {
|
|
235
|
+
case 4: return CoordinateType::XYZM;
|
|
236
|
+
case 2: return CoordinateType::XY;
|
|
237
|
+
default: return hasM() ? CoordinateType::XYM : CoordinateType::XYZ;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/// @}
|
|
242
|
+
/// \defgroup access Accessors
|
|
243
|
+
/// @{
|
|
244
|
+
|
|
245
|
+
/** \brief
|
|
246
|
+
* Returns a read-only reference to Coordinate at position i.
|
|
247
|
+
*/
|
|
248
|
+
template<typename T=Coordinate>
|
|
249
|
+
const T& getAt(std::size_t i) const {
|
|
250
|
+
static_assert(std::is_base_of<CoordinateXY, T>::value, "Must be a Coordinate class");
|
|
251
|
+
assert(sizeof(T) <= sizeof(double) * stride());
|
|
252
|
+
assert(i*stride() < m_vect.size());
|
|
253
|
+
const T* orig = reinterpret_cast<const T*>(&m_vect[i*stride()]);
|
|
254
|
+
return *orig;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/** \brief
|
|
258
|
+
* Returns a reference to Coordinate at position i.
|
|
259
|
+
*/
|
|
260
|
+
template<typename T=Coordinate>
|
|
261
|
+
T& getAt(std::size_t i) {
|
|
262
|
+
static_assert(std::is_base_of<CoordinateXY, T>::value, "Must be a Coordinate class");
|
|
263
|
+
assert(sizeof(T) <= sizeof(double) * stride());
|
|
264
|
+
assert(i*stride() < m_vect.size());
|
|
265
|
+
T* orig = reinterpret_cast<T*>(&m_vect[i*stride()]);
|
|
266
|
+
return *orig;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/** \brief
|
|
270
|
+
* Write Coordinate at position i to given Coordinate.
|
|
271
|
+
*/
|
|
272
|
+
template<typename T>
|
|
273
|
+
void getAt(std::size_t i, T& c) const {
|
|
274
|
+
switch(getCoordinateType()) {
|
|
275
|
+
case CoordinateType::XY: c = getAt<CoordinateXY>(i); break;
|
|
276
|
+
case CoordinateType::XYZ: c = getAt<Coordinate>(i); break;
|
|
277
|
+
case CoordinateType::XYZM: c = getAt<CoordinateXYZM>(i); break;
|
|
278
|
+
case CoordinateType::XYM: c = getAt<CoordinateXYM>(i); break;
|
|
279
|
+
default: getAt<Coordinate>(i);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
void getAt(std::size_t i, CoordinateXY& c) const {
|
|
284
|
+
c = getAt<CoordinateXY>(i);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// TODO: change to return CoordinateXY
|
|
288
|
+
/**
|
|
289
|
+
* Returns a read-only reference to Coordinate at i
|
|
290
|
+
*/
|
|
291
|
+
const Coordinate& operator[](std::size_t i) const
|
|
292
|
+
{
|
|
293
|
+
return getAt(i);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// TODO: change to return CoordinateXY
|
|
297
|
+
/**
|
|
298
|
+
* Returns a reference to Coordinate at i
|
|
299
|
+
*/
|
|
300
|
+
Coordinate&
|
|
301
|
+
operator[](std::size_t i)
|
|
302
|
+
{
|
|
303
|
+
return getAt(i);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Returns the ordinate of a coordinate in this sequence.
|
|
308
|
+
* Ordinate indices 0 and 1 are assumed to be X and Y.
|
|
309
|
+
* Ordinates indices greater than 1 have user-defined semantics
|
|
310
|
+
* (for instance, they may contain other dimensions or measure values).
|
|
311
|
+
*
|
|
312
|
+
* @param index the coordinate index in the sequence
|
|
313
|
+
* @param ordinateIndex the ordinate index in the coordinate
|
|
314
|
+
* (in range [0, dimension-1])
|
|
315
|
+
*/
|
|
316
|
+
double getOrdinate(std::size_t index, std::size_t ordinateIndex) const;
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Returns ordinate X (0) of the specified coordinate.
|
|
320
|
+
*
|
|
321
|
+
* @param index
|
|
322
|
+
* @return the value of the X ordinate in the index'th coordinate
|
|
323
|
+
*/
|
|
324
|
+
double getX(std::size_t index) const
|
|
325
|
+
{
|
|
326
|
+
return m_vect[index * stride()];
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Returns ordinate Y (1) of the specified coordinate.
|
|
331
|
+
*
|
|
332
|
+
* @param index
|
|
333
|
+
* @return the value of the Y ordinate in the index'th coordinate
|
|
334
|
+
*/
|
|
335
|
+
double getY(std::size_t index) const
|
|
336
|
+
{
|
|
337
|
+
return m_vect[index * stride() + 1];
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/// Return last Coordinate in the sequence
|
|
341
|
+
template<typename T=Coordinate>
|
|
342
|
+
const T& back() const
|
|
343
|
+
{
|
|
344
|
+
return getAt<T>(size() - 1);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/// Return last Coordinate in the sequence
|
|
348
|
+
template<typename T=Coordinate>
|
|
349
|
+
T& back()
|
|
350
|
+
{
|
|
351
|
+
return getAt<T>(size() - 1);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/// Return first Coordinate in the sequence
|
|
355
|
+
template<typename T=Coordinate>
|
|
356
|
+
const T& front() const
|
|
357
|
+
{
|
|
358
|
+
return *(reinterpret_cast<const T*>(m_vect.data()));
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/// Return first Coordinate in the sequence
|
|
362
|
+
template<typename T=Coordinate>
|
|
363
|
+
T& front()
|
|
364
|
+
{
|
|
365
|
+
return *(reinterpret_cast<T*>(m_vect.data()));
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/// Pushes all Coordinates of this sequence into the provided vector.
|
|
369
|
+
void toVector(std::vector<Coordinate>& coords) const;
|
|
370
|
+
|
|
371
|
+
void toVector(std::vector<CoordinateXY>& coords) const;
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
/// @}
|
|
375
|
+
/// \defgroup mutate Mutators
|
|
376
|
+
/// @{
|
|
377
|
+
|
|
378
|
+
/// Copy Coordinate c to position pos
|
|
379
|
+
template<typename T>
|
|
380
|
+
void setAt(const T& c, std::size_t pos) {
|
|
381
|
+
switch(getCoordinateType()) {
|
|
382
|
+
case CoordinateType::XY: setAtImpl<CoordinateXY>(c, pos); break;
|
|
383
|
+
case CoordinateType::XYZ: setAtImpl<Coordinate>(c, pos); break;
|
|
384
|
+
case CoordinateType::XYZM: setAtImpl<CoordinateXYZM>(c, pos); break;
|
|
385
|
+
case CoordinateType::XYM: setAtImpl<CoordinateXYM>(c, pos); break;
|
|
386
|
+
default: setAtImpl<Coordinate>(c, pos);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Sets the value for a given ordinate of a coordinate in this sequence.
|
|
392
|
+
*
|
|
393
|
+
* @param index the coordinate index in the sequence
|
|
394
|
+
* @param ordinateIndex the ordinate index in the coordinate
|
|
395
|
+
* (in range [0, dimension-1])
|
|
396
|
+
* @param value the new ordinate value
|
|
397
|
+
*/
|
|
398
|
+
void setOrdinate(std::size_t index, std::size_t ordinateIndex, double value);
|
|
399
|
+
|
|
400
|
+
/// Substitute Coordinate list with a copy of the given vector
|
|
401
|
+
void setPoints(const std::vector<Coordinate>& v);
|
|
402
|
+
|
|
403
|
+
/// @}
|
|
404
|
+
/// \defgroup add Adding methods
|
|
405
|
+
/// @{
|
|
406
|
+
|
|
407
|
+
/// Adds the specified coordinate to the end of the sequence. Dimensions
|
|
408
|
+
/// present in the coordinate but not in the sequence will be ignored.
|
|
409
|
+
/// If multiple coordinates are to be added, a multiple-insert method should
|
|
410
|
+
/// be used for best performance.
|
|
411
|
+
template<typename T=Coordinate>
|
|
412
|
+
void add(const T& c) {
|
|
413
|
+
add(c, size());
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/// Adds the specified coordinate to the end of the sequence. Dimensions
|
|
417
|
+
/// present in the coordinate but not in the sequence will be ignored. If
|
|
418
|
+
/// allowRepeated is false, the coordinate will not be added if it is the
|
|
419
|
+
/// same as the last coordinate in the sequence.
|
|
420
|
+
/// If multiple coordinates are to be added, a multiple-insert method should
|
|
421
|
+
/// be used for best performance.
|
|
422
|
+
template<typename T>
|
|
423
|
+
void add(const T& c, bool allowRepeated)
|
|
424
|
+
{
|
|
425
|
+
if(!allowRepeated && !isEmpty()) {
|
|
426
|
+
const CoordinateXY& last = back<CoordinateXY>();
|
|
427
|
+
if(last.equals2D(c)) {
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
add(c);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/** \brief
|
|
436
|
+
* Inserts the specified coordinate at the specified position in
|
|
437
|
+
* this sequence. If multiple coordinates are to be added, a multiple-
|
|
438
|
+
* insert method should be used for best performance.
|
|
439
|
+
*
|
|
440
|
+
* @param c the coordinate to insert
|
|
441
|
+
* @param pos the position at which to insert
|
|
442
|
+
*/
|
|
443
|
+
template<typename T>
|
|
444
|
+
void add(const T& c, std::size_t pos)
|
|
445
|
+
{
|
|
446
|
+
static_assert(std::is_base_of<CoordinateXY, T>::value, "Must be a Coordinate class");
|
|
447
|
+
|
|
448
|
+
// c may be a reference inside m_vect, so we make sure it will not
|
|
449
|
+
// grow before adding it
|
|
450
|
+
if (m_vect.size() + stride() <= m_vect.capacity()) {
|
|
451
|
+
make_space(pos, 1);
|
|
452
|
+
setAt(c, static_cast<std::size_t>(pos));
|
|
453
|
+
} else {
|
|
454
|
+
T tmp{c};
|
|
455
|
+
make_space(pos, 1);
|
|
456
|
+
setAt(tmp, static_cast<std::size_t>(pos));
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/** \brief
|
|
461
|
+
* Inserts the specified coordinate at the specified position in
|
|
462
|
+
* this list.
|
|
463
|
+
*
|
|
464
|
+
* @param i the position at which to insert
|
|
465
|
+
* @param coord the coordinate to insert
|
|
466
|
+
* @param allowRepeated if set to false, repeated coordinates are
|
|
467
|
+
* collapsed
|
|
468
|
+
*/
|
|
469
|
+
template<typename T>
|
|
470
|
+
void add(std::size_t i, const T& coord, bool allowRepeated)
|
|
471
|
+
{
|
|
472
|
+
// don't add duplicate coordinates
|
|
473
|
+
if(! allowRepeated) {
|
|
474
|
+
std::size_t sz = size();
|
|
475
|
+
if(sz > 0) {
|
|
476
|
+
if(i > 0) {
|
|
477
|
+
const CoordinateXY& prev = getAt<CoordinateXY>(i - 1);
|
|
478
|
+
if(prev.equals2D(coord)) {
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
if(i < sz) {
|
|
483
|
+
const CoordinateXY& next = getAt<CoordinateXY>(i);
|
|
484
|
+
if(next.equals2D(coord)) {
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
add(coord, i);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
void add(double x, double y) {
|
|
495
|
+
CoordinateXY c(x, y);
|
|
496
|
+
add(c);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
void add(const CoordinateSequence& cs);
|
|
500
|
+
|
|
501
|
+
void add(const CoordinateSequence& cs, bool allowRepeated);
|
|
502
|
+
|
|
503
|
+
void add(const CoordinateSequence& cl, bool allowRepeated, bool forwardDirection);
|
|
504
|
+
|
|
505
|
+
void add(const CoordinateSequence& cs, std::size_t from, std::size_t to);
|
|
506
|
+
|
|
507
|
+
void add(const CoordinateSequence& cs, std::size_t from, std::size_t to, bool allowRepeated);
|
|
508
|
+
|
|
509
|
+
template<typename T, typename... Args>
|
|
510
|
+
void add(T begin, T end, Args... args) {
|
|
511
|
+
for (auto it = begin; it != end; ++it) {
|
|
512
|
+
add(*it, args...);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
template<typename T>
|
|
517
|
+
void add(std::size_t i, T from, T to) {
|
|
518
|
+
auto npts = static_cast<std::size_t>(std::distance(from, to));
|
|
519
|
+
make_space(i, npts);
|
|
520
|
+
|
|
521
|
+
for (auto it = from; it != to; ++it) {
|
|
522
|
+
setAt(*it, i);
|
|
523
|
+
i++;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/// @}
|
|
528
|
+
/// \defgroup util Utilities
|
|
529
|
+
/// @{
|
|
530
|
+
|
|
531
|
+
void clear() {
|
|
532
|
+
m_vect.clear();
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
void reserve(std::size_t capacity) {
|
|
536
|
+
m_vect.reserve(capacity * stride());
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
void resize(std::size_t capacity) {
|
|
540
|
+
m_vect.resize(capacity * stride());
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
void pop_back();
|
|
544
|
+
|
|
545
|
+
/// Get a string representation of CoordinateSequence
|
|
546
|
+
std::string toString() const;
|
|
547
|
+
|
|
548
|
+
/// Returns lower-left Coordinate in list
|
|
549
|
+
const CoordinateXY* minCoordinate() const;
|
|
550
|
+
|
|
551
|
+
/** \brief
|
|
552
|
+
* Returns either the given CoordinateSequence if its length
|
|
553
|
+
* is greater than the given amount, or an empty CoordinateSequence.
|
|
554
|
+
*/
|
|
555
|
+
static CoordinateSequence* atLeastNCoordinatesOrNothing(std::size_t n,
|
|
556
|
+
CoordinateSequence* c);
|
|
557
|
+
|
|
558
|
+
/// Return position of a Coordinate
|
|
559
|
+
//
|
|
560
|
+
/// or numeric_limits<std::size_t>::max() if not found
|
|
561
|
+
///
|
|
562
|
+
static std::size_t indexOf(const CoordinateXY* coordinate,
|
|
563
|
+
const CoordinateSequence* cl);
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* \brief
|
|
567
|
+
* Returns true if the two arrays are identical, both null,
|
|
568
|
+
* or pointwise equal in two dimensions
|
|
569
|
+
*/
|
|
570
|
+
static bool equals(const CoordinateSequence* cl1,
|
|
571
|
+
const CoordinateSequence* cl2);
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* \brief
|
|
575
|
+
* Returns true if the two sequences are identical (pointwise
|
|
576
|
+
* equal in all dimensions, with NaN == NaN).
|
|
577
|
+
*/
|
|
578
|
+
bool equalsIdentical(const CoordinateSequence& other) const;
|
|
579
|
+
|
|
580
|
+
/// Scroll given CoordinateSequence so to start with given Coordinate.
|
|
581
|
+
static void scroll(CoordinateSequence* cl, const CoordinateXY* firstCoordinate);
|
|
582
|
+
|
|
583
|
+
/** \brief
|
|
584
|
+
* Determines which orientation of the {@link Coordinate} array
|
|
585
|
+
* is (overall) increasing.
|
|
586
|
+
*
|
|
587
|
+
* In other words, determines which end of the array is "smaller"
|
|
588
|
+
* (using the standard ordering on {@link Coordinate}).
|
|
589
|
+
* Returns an integer indicating the increasing direction.
|
|
590
|
+
* If the sequence is a palindrome, it is defined to be
|
|
591
|
+
* oriented in a positive direction.
|
|
592
|
+
*
|
|
593
|
+
* @param pts the array of Coordinates to test
|
|
594
|
+
* @return <code>1</code> if the array is smaller at the start
|
|
595
|
+
* or is a palindrome,
|
|
596
|
+
* <code>-1</code> if smaller at the end
|
|
597
|
+
*
|
|
598
|
+
* NOTE: this method is found in CoordinateArrays class for JTS
|
|
599
|
+
*/
|
|
600
|
+
static int increasingDirection(const CoordinateSequence& pts);
|
|
601
|
+
|
|
602
|
+
/// Reverse Coordinate order in given CoordinateSequence
|
|
603
|
+
void reverse();
|
|
604
|
+
|
|
605
|
+
void sort();
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Expands the given Envelope to include the coordinates in the
|
|
610
|
+
* sequence.
|
|
611
|
+
* @param env the envelope to expand
|
|
612
|
+
*/
|
|
613
|
+
void expandEnvelope(Envelope& env) const;
|
|
614
|
+
|
|
615
|
+
void closeRing(bool allowRepeated = false);
|
|
616
|
+
|
|
617
|
+
/// @}
|
|
618
|
+
/// \defgroup iterate Iteration
|
|
619
|
+
/// @{
|
|
620
|
+
|
|
621
|
+
template<typename Filter>
|
|
622
|
+
void apply_rw(const Filter* filter) {
|
|
623
|
+
switch(getCoordinateType()) {
|
|
624
|
+
case CoordinateType::XY:
|
|
625
|
+
for (auto& c : items<CoordinateXY>()) {
|
|
626
|
+
if (filter->isDone()) break;
|
|
627
|
+
filter->filter_rw(&c);
|
|
628
|
+
}
|
|
629
|
+
break;
|
|
630
|
+
case CoordinateType::XYZ:
|
|
631
|
+
for (auto& c : items<Coordinate>()) {
|
|
632
|
+
if (filter->isDone()) break;
|
|
633
|
+
filter->filter_rw(&c);
|
|
634
|
+
}
|
|
635
|
+
break;
|
|
636
|
+
case CoordinateType::XYM:
|
|
637
|
+
for (auto& c : items<CoordinateXYM>()) {
|
|
638
|
+
if (filter->isDone()) break;
|
|
639
|
+
filter->filter_rw(&c);
|
|
640
|
+
}
|
|
641
|
+
break;
|
|
642
|
+
case CoordinateType::XYZM:
|
|
643
|
+
for (auto& c : items<CoordinateXYZM>()) {
|
|
644
|
+
if (filter->isDone()) break;
|
|
645
|
+
filter->filter_rw(&c);
|
|
646
|
+
}
|
|
647
|
+
break;
|
|
648
|
+
}
|
|
649
|
+
m_hasdim = m_hasz = false; // re-check (see http://trac.osgeo.org/geos/ticket/435)
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
template<typename Filter>
|
|
653
|
+
void apply_ro(Filter* filter) const {
|
|
654
|
+
switch(getCoordinateType()) {
|
|
655
|
+
case CoordinateType::XY:
|
|
656
|
+
for (const auto& c : items<CoordinateXY>()) {
|
|
657
|
+
if (filter->isDone()) break;
|
|
658
|
+
filter->filter_ro(&c);
|
|
659
|
+
}
|
|
660
|
+
break;
|
|
661
|
+
case CoordinateType::XYZ:
|
|
662
|
+
for (const auto& c : items<Coordinate>()) {
|
|
663
|
+
if (filter->isDone()) break;
|
|
664
|
+
filter->filter_ro(&c);
|
|
665
|
+
}
|
|
666
|
+
break;
|
|
667
|
+
case CoordinateType::XYM:
|
|
668
|
+
for (const auto& c : items<CoordinateXYM>()) {
|
|
669
|
+
if (filter->isDone()) break;
|
|
670
|
+
filter->filter_ro(&c);
|
|
671
|
+
}
|
|
672
|
+
break;
|
|
673
|
+
case CoordinateType::XYZM:
|
|
674
|
+
for (const auto& c : items<CoordinateXYZM>()) {
|
|
675
|
+
if (filter->isDone()) break;
|
|
676
|
+
filter->filter_ro(&c);
|
|
677
|
+
}
|
|
678
|
+
break;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
template<typename F>
|
|
683
|
+
void forEach(F&& fun) const {
|
|
684
|
+
switch(getCoordinateType()) {
|
|
685
|
+
case CoordinateType::XY: for (const auto& c : items<CoordinateXY>()) { fun(c); } break;
|
|
686
|
+
case CoordinateType::XYZ: for (const auto& c : items<Coordinate>()) { fun(c); } break;
|
|
687
|
+
case CoordinateType::XYM: for (const auto& c : items<CoordinateXYM>()) { fun(c); } break;
|
|
688
|
+
case CoordinateType::XYZM: for (const auto& c : items<CoordinateXYZM>()) { fun(c); } break;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
template<typename T, typename F>
|
|
693
|
+
void forEach(F&& fun) const
|
|
694
|
+
{
|
|
695
|
+
for (std::size_t i = 0; i < size(); i++) {
|
|
696
|
+
fun(getAt<T>(i));
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
template<typename T, typename F>
|
|
701
|
+
void forEach(std::size_t from, std::size_t to, F&& fun) const
|
|
702
|
+
{
|
|
703
|
+
for (std::size_t i = from; i <= to; i++) {
|
|
704
|
+
fun(getAt<T>(i));
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
template<typename T>
|
|
709
|
+
class Coordinates {
|
|
710
|
+
public:
|
|
711
|
+
using SequenceType = typename std::conditional<std::is_const<T>::value, const CoordinateSequence, CoordinateSequence>::type;
|
|
712
|
+
|
|
713
|
+
explicit Coordinates(SequenceType* seq) : m_seq(seq) {}
|
|
714
|
+
|
|
715
|
+
CoordinateSequenceIterator<SequenceType, T> begin() {
|
|
716
|
+
return {m_seq};
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
CoordinateSequenceIterator<SequenceType, T> end() {
|
|
720
|
+
return {m_seq, m_seq->getSize()};
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>
|
|
724
|
+
begin() const {
|
|
725
|
+
return CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>{m_seq};
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>
|
|
729
|
+
end() const {
|
|
730
|
+
return CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>{m_seq, m_seq->getSize()};
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>
|
|
734
|
+
cbegin() const {
|
|
735
|
+
return CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>{m_seq};
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>
|
|
739
|
+
cend() const {
|
|
740
|
+
return CoordinateSequenceIterator<const SequenceType, typename std::add_const<T>::type>{m_seq, m_seq->getSize()};
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
private:
|
|
744
|
+
SequenceType* m_seq;
|
|
745
|
+
};
|
|
746
|
+
|
|
747
|
+
template<typename T>
|
|
748
|
+
Coordinates<typename std::add_const<T>::type> items() const {
|
|
749
|
+
return Coordinates<typename std::add_const<T>::type>(this);
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
template<typename T>
|
|
753
|
+
Coordinates<T> items() {
|
|
754
|
+
return Coordinates<T>(this);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
/// @}
|
|
759
|
+
|
|
760
|
+
double* data() {
|
|
761
|
+
return m_vect.data();
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
const double* data() const {
|
|
765
|
+
return m_vect.data();
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
private:
|
|
769
|
+
std::vector<double> m_vect; // Vector to store values
|
|
770
|
+
|
|
771
|
+
uint8_t m_stride; // Stride of stored values, corresponding to underlying type
|
|
772
|
+
|
|
773
|
+
mutable bool m_hasdim; // Has the dimension of this sequence been determined? Or was it created with no
|
|
774
|
+
// explicit dimensionality, and we're waiting for getDimension() to be called
|
|
775
|
+
// after some coordinates have been added?
|
|
776
|
+
mutable bool m_hasz;
|
|
777
|
+
bool m_hasm;
|
|
778
|
+
|
|
779
|
+
void initialize();
|
|
780
|
+
|
|
781
|
+
template<typename T1, typename T2>
|
|
782
|
+
void setAtImpl(const T2& c, std::size_t pos) {
|
|
783
|
+
auto& orig = getAt<T1>(pos);
|
|
784
|
+
orig = c;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
void make_space(std::size_t pos, std::size_t n) {
|
|
788
|
+
m_vect.insert(std::next(m_vect.begin(), static_cast<std::ptrdiff_t>(pos * stride())),
|
|
789
|
+
m_stride * n,
|
|
790
|
+
DoubleNotANumber);
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
std::uint8_t stride() const {
|
|
794
|
+
return m_stride;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateSequence& cs);
|
|
800
|
+
|
|
801
|
+
GEOS_DLL bool operator== (const CoordinateSequence& s1, const CoordinateSequence& s2);
|
|
802
|
+
|
|
803
|
+
GEOS_DLL bool operator!= (const CoordinateSequence& s1, const CoordinateSequence& s2);
|
|
804
|
+
|
|
805
|
+
} // namespace geos::geom
|
|
806
|
+
} // namespace geos
|
|
807
|
+
|