├── .gitignore ├── LICENSE.md ├── Podfile ├── Podfile.lock ├── Pods ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── ProtocolBuffers-Swift │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AbstractMessage.swift │ │ ├── CodedInputStream.swift │ │ ├── CodedOutputStream.swift │ │ ├── ConcreateExtensionField.swift │ │ ├── ExtendableMessage.swift │ │ ├── ExtensionRegistry.swift │ │ ├── Field.swift │ │ ├── GeneratedMessage.swift │ │ ├── Google.Protobuf.Any.proto.swift │ │ ├── Google.Protobuf.Api.proto.swift │ │ ├── Google.Protobuf.Descriptor.proto.swift │ │ ├── Google.Protobuf.Duration.proto.swift │ │ ├── Google.Protobuf.Empty.proto.swift │ │ ├── Google.Protobuf.FieldMask.proto.swift │ │ ├── Google.Protobuf.SourceContext.proto.swift │ │ ├── Google.Protobuf.Struct.proto.swift │ │ ├── Google.Protobuf.SwiftDescriptor.proto.swift │ │ ├── Google.Protobuf.Timestamp.proto.swift │ │ ├── Google.Protobuf.Type.proto.swift │ │ ├── Google.Protobuf.Wrappers.proto.swift │ │ ├── RingBuffer.swift │ │ ├── UnknownFieldSet.swift │ │ └── WireFormat.swift ├── Target Support Files │ ├── Pods-SwiftVectorTiles │ │ ├── Info.plist │ │ ├── Pods-SwiftVectorTiles-acknowledgements.markdown │ │ ├── Pods-SwiftVectorTiles-acknowledgements.plist │ │ ├── Pods-SwiftVectorTiles-dummy.m │ │ ├── Pods-SwiftVectorTiles-resources.sh │ │ ├── Pods-SwiftVectorTiles-umbrella.h │ │ ├── Pods-SwiftVectorTiles.debug.xcconfig │ │ ├── Pods-SwiftVectorTiles.modulemap │ │ └── Pods-SwiftVectorTiles.release.xcconfig │ ├── Pods-SwiftVectorTilesTests │ │ ├── Info.plist │ │ ├── Pods-SwiftVectorTilesTests-acknowledgements.markdown │ │ ├── Pods-SwiftVectorTilesTests-acknowledgements.plist │ │ ├── Pods-SwiftVectorTilesTests-dummy.m │ │ ├── Pods-SwiftVectorTilesTests-frameworks.sh │ │ ├── Pods-SwiftVectorTilesTests-resources.sh │ │ ├── Pods-SwiftVectorTilesTests-umbrella.h │ │ ├── Pods-SwiftVectorTilesTests.debug.xcconfig │ │ ├── Pods-SwiftVectorTilesTests.modulemap │ │ └── Pods-SwiftVectorTilesTests.release.xcconfig │ ├── ProtocolBuffers-Swift │ │ ├── Info.plist │ │ ├── ProtocolBuffers-Swift-dummy.m │ │ ├── ProtocolBuffers-Swift-prefix.pch │ │ ├── ProtocolBuffers-Swift-umbrella.h │ │ ├── ProtocolBuffers-Swift.modulemap │ │ └── ProtocolBuffers-Swift.xcconfig │ └── geos │ │ ├── Info.plist │ │ ├── geos-dummy.m │ │ ├── geos-prefix.pch │ │ ├── geos-umbrella.h │ │ ├── geos.modulemap │ │ └── geos.xcconfig └── geos │ ├── COPYING │ ├── README │ ├── README.md │ ├── capi │ ├── Makefile │ ├── Makefile.in │ ├── geos_c.cpp │ ├── geos_c.h │ ├── geos_c.h.in │ ├── geos_c.h.orig │ └── geos_ts_c.cpp │ ├── geos_svn_revision.h │ ├── include │ ├── Makefile │ ├── Makefile.in │ ├── acconfig.h │ ├── config.h │ ├── config.h.in │ ├── geos.h │ └── geos │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── algorithm │ │ ├── Angle.h │ │ ├── BoundaryNodeRule.h │ │ ├── CGAlgorithms.h │ │ ├── CentralEndpointIntersector.h │ │ ├── Centroid.h │ │ ├── CentroidArea.h │ │ ├── CentroidLine.h │ │ ├── CentroidPoint.h │ │ ├── ConvexHull.h │ │ ├── ConvexHull.inl │ │ ├── HCoordinate.h │ │ ├── InteriorPointArea.h │ │ ├── InteriorPointLine.h │ │ ├── InteriorPointPoint.h │ │ ├── LineIntersector.h │ │ ├── MCPointInRing.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── MinimumDiameter.h │ │ ├── NotRepresentableException.h │ │ ├── PointInRing.h │ │ ├── PointLocator.h │ │ ├── RayCrossingCounter.h │ │ ├── RobustDeterminant.h │ │ ├── SIRtreePointInRing.h │ │ ├── SimplePointInRing.h │ │ ├── distance │ │ │ ├── DiscreteHausdorffDistance.h │ │ │ ├── DistanceToPoint.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ └── PointPairDistance.h │ │ └── locate │ │ │ ├── IndexedPointInAreaLocator.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── PointOnGeometryLocator.h │ │ │ └── SimplePointInAreaLocator.h │ │ ├── export.h │ │ ├── geom.h │ │ ├── geom │ │ ├── BinaryOp.h │ │ ├── Coordinate.h │ │ ├── Coordinate.inl │ │ ├── CoordinateArraySequence.h │ │ ├── CoordinateArraySequenceFactory.h │ │ ├── CoordinateArraySequenceFactory.inl │ │ ├── CoordinateFilter.h │ │ ├── CoordinateList.h │ │ ├── CoordinateSequence.h │ │ ├── CoordinateSequenceFactory.h │ │ ├── CoordinateSequenceFilter.h │ │ ├── Dimension.h │ │ ├── Envelope.h │ │ ├── Envelope.inl │ │ ├── Geometry.h │ │ ├── GeometryCollection.h │ │ ├── GeometryCollection.inl │ │ ├── GeometryComponentFilter.h │ │ ├── GeometryFactory.h │ │ ├── GeometryFactory.inl │ │ ├── GeometryFilter.h │ │ ├── GeometryList.h │ │ ├── IntersectionMatrix.h │ │ ├── LineSegment.h │ │ ├── LineSegment.inl │ │ ├── LineString.h │ │ ├── Lineal.h │ │ ├── LinearRing.h │ │ ├── Location.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── MultiLineString.h │ │ ├── MultiLineString.inl │ │ ├── MultiPoint.h │ │ ├── MultiPolygon.h │ │ ├── MultiPolygon.inl │ │ ├── Point.h │ │ ├── Polygon.h │ │ ├── Polygonal.h │ │ ├── PrecisionModel.h │ │ ├── PrecisionModel.inl │ │ ├── Puntal.h │ │ ├── Triangle.h │ │ ├── prep │ │ │ ├── AbstractPreparedPolygonContains.h │ │ │ ├── BasicPreparedGeometry.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── PreparedGeometry.h │ │ │ ├── PreparedGeometryFactory.h │ │ │ ├── PreparedLineString.h │ │ │ ├── PreparedLineStringIntersects.h │ │ │ ├── PreparedPoint.h │ │ │ ├── PreparedPolygon.h │ │ │ ├── PreparedPolygonContains.h │ │ │ ├── PreparedPolygonContainsProperly.h │ │ │ ├── PreparedPolygonCovers.h │ │ │ ├── PreparedPolygonIntersects.h │ │ │ └── PreparedPolygonPredicate.h │ │ └── util │ │ │ ├── ComponentCoordinateExtracter.h │ │ │ ├── CoordinateOperation.h │ │ │ ├── GeometryCombiner.h │ │ │ ├── GeometryEditor.h │ │ │ ├── GeometryEditorOperation.h │ │ │ ├── GeometryExtracter.h │ │ │ ├── GeometryTransformer.h │ │ │ ├── LinearComponentExtracter.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── PointExtracter.h │ │ │ ├── PolygonExtracter.h │ │ │ ├── ShortCircuitedGeometryVisitor.h │ │ │ └── SineStarFactory.h │ │ ├── geomPrep.h │ │ ├── geomUtil.h │ │ ├── geomgraph.h │ │ ├── geomgraph │ │ ├── Depth.h │ │ ├── DirectedEdge.h │ │ ├── DirectedEdge.inl │ │ ├── DirectedEdgeStar.h │ │ ├── Edge.h │ │ ├── EdgeEnd.h │ │ ├── EdgeEndStar.h │ │ ├── EdgeIntersection.h │ │ ├── EdgeIntersectionList.h │ │ ├── EdgeList.h │ │ ├── EdgeNodingValidator.h │ │ ├── EdgeRing.h │ │ ├── GeometryGraph.h │ │ ├── GeometryGraph.inl │ │ ├── GraphComponent.h │ │ ├── Label.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── Node.h │ │ ├── NodeFactory.h │ │ ├── NodeMap.h │ │ ├── PlanarGraph.h │ │ ├── Position.h │ │ ├── Quadrant.h │ │ ├── TopologyLocation.h │ │ └── index │ │ │ ├── EdgeSetIntersector.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── MonotoneChain.h │ │ │ ├── MonotoneChainEdge.h │ │ │ ├── MonotoneChainIndexer.h │ │ │ ├── SegmentIntersector.h │ │ │ ├── SimpleEdgeSetIntersector.h │ │ │ ├── SimpleMCSweepLineIntersector.h │ │ │ ├── SimpleSweepLineIntersector.h │ │ │ ├── SweepLineEvent.h │ │ │ ├── SweepLineEventObj.h │ │ │ └── SweepLineSegment.h │ │ ├── geomgraphindex.h │ │ ├── geosAlgorithm.h │ │ ├── index │ │ ├── ItemVisitor.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── SpatialIndex.h │ │ ├── bintree │ │ │ ├── Bintree.h │ │ │ ├── Interval.h │ │ │ ├── Key.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── Node.h │ │ │ ├── NodeBase.h │ │ │ └── Root.h │ │ ├── chain │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── MonotoneChain.h │ │ │ ├── MonotoneChainBuilder.h │ │ │ ├── MonotoneChainOverlapAction.h │ │ │ └── MonotoneChainSelectAction.h │ │ ├── intervalrtree │ │ │ ├── IntervalRTreeBranchNode.h │ │ │ ├── IntervalRTreeLeafNode.h │ │ │ ├── IntervalRTreeNode.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ └── SortedPackedIntervalRTree.h │ │ ├── quadtree │ │ │ ├── DoubleBits.h │ │ │ ├── IntervalSize.h │ │ │ ├── Key.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── Node.h │ │ │ ├── NodeBase.h │ │ │ ├── Quadtree.h │ │ │ └── Root.h │ │ ├── strtree │ │ │ ├── AbstractNode.h │ │ │ ├── AbstractSTRtree.h │ │ │ ├── Boundable.h │ │ │ ├── Interval.h │ │ │ ├── ItemBoundable.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── SIRtree.h │ │ │ └── STRtree.h │ │ └── sweepline │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── SweepLineEvent.h │ │ │ ├── SweepLineIndex.h │ │ │ ├── SweepLineInterval.h │ │ │ └── SweepLineOverlapAction.h │ │ ├── indexBintree.h │ │ ├── indexChain.h │ │ ├── indexIntervalRTree.h │ │ ├── indexQuadtree.h │ │ ├── indexStrtree.h │ │ ├── indexSweepline.h │ │ ├── inline.h │ │ ├── io.h │ │ ├── io │ │ ├── ByteOrderDataInStream.h │ │ ├── ByteOrderDataInStream.inl │ │ ├── ByteOrderValues.h │ │ ├── CLocalizer.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── ParseException.h │ │ ├── StringTokenizer.h │ │ ├── WKBConstants.h │ │ ├── WKBReader.h │ │ ├── WKBWriter.h │ │ ├── WKTReader.h │ │ ├── WKTReader.inl │ │ ├── WKTWriter.h │ │ └── Writer.h │ │ ├── linearref │ │ ├── ExtractLineByLocation.h │ │ ├── LengthIndexOfPoint.h │ │ ├── LengthIndexedLine.h │ │ ├── LengthLocationMap.h │ │ ├── LinearGeometryBuilder.h │ │ ├── LinearIterator.h │ │ ├── LinearLocation.h │ │ ├── LocationIndexOfLine.h │ │ ├── LocationIndexOfPoint.h │ │ ├── LocationIndexedLine.h │ │ ├── Makefile │ │ └── Makefile.in │ │ ├── noding.h │ │ ├── noding │ │ ├── BasicSegmentString.h │ │ ├── FastNodingValidator.h │ │ ├── FastSegmentSetIntersectionFinder.h │ │ ├── GeometryNoder.h │ │ ├── IntersectionAdder.h │ │ ├── IntersectionFinderAdder.h │ │ ├── IteratedNoder.h │ │ ├── MCIndexNoder.h │ │ ├── MCIndexNoder.inl │ │ ├── MCIndexSegmentSetMutualIntersector.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── NodableSegmentString.h │ │ ├── NodedSegmentString.h │ │ ├── Noder.h │ │ ├── NodingValidator.h │ │ ├── Octant.h │ │ ├── OrientedCoordinateArray.h │ │ ├── ScaledNoder.h │ │ ├── SegmentIntersectionDetector.h │ │ ├── SegmentIntersector.h │ │ ├── SegmentNode.h │ │ ├── SegmentNodeList.h │ │ ├── SegmentPointComparator.h │ │ ├── SegmentSetMutualIntersector.h │ │ ├── SegmentString.h │ │ ├── SegmentStringUtil.h │ │ ├── SimpleNoder.h │ │ ├── SingleInteriorIntersectionFinder.h │ │ ├── SinglePassNoder.h │ │ └── snapround │ │ │ ├── HotPixel.h │ │ │ ├── HotPixel.inl │ │ │ ├── MCIndexPointSnapper.h │ │ │ ├── MCIndexSnapRounder.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ └── SimpleSnapRounder.h │ │ ├── nodingSnapround.h │ │ ├── opBuffer.h │ │ ├── opDistance.h │ │ ├── opLinemerge.h │ │ ├── opOverlay.h │ │ ├── opPolygonize.h │ │ ├── opPredicate.h │ │ ├── opRelate.h │ │ ├── opValid.h │ │ ├── operation.h │ │ ├── operation │ │ ├── GeometryGraphOperation.h │ │ ├── IsSimpleOp.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── buffer │ │ │ ├── BufferBuilder.h │ │ │ ├── BufferInputLineSimplifier.h │ │ │ ├── BufferOp.h │ │ │ ├── BufferParameters.h │ │ │ ├── BufferSubgraph.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── OffsetCurveBuilder.h │ │ │ ├── OffsetCurveSetBuilder.h │ │ │ ├── OffsetSegmentGenerator.h │ │ │ ├── OffsetSegmentString.h │ │ │ ├── RightmostEdgeFinder.h │ │ │ └── SubgraphDepthLocater.h │ │ ├── distance │ │ │ ├── ConnectedElementLocationFilter.h │ │ │ ├── ConnectedElementPointFilter.h │ │ │ ├── DistanceOp.h │ │ │ ├── GeometryLocation.h │ │ │ ├── Makefile │ │ │ └── Makefile.in │ │ ├── intersection │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── Rectangle.h │ │ │ ├── RectangleIntersection.h │ │ │ └── RectangleIntersectionBuilder.h │ │ ├── linemerge │ │ │ ├── EdgeString.h │ │ │ ├── LineMergeDirectedEdge.h │ │ │ ├── LineMergeEdge.h │ │ │ ├── LineMergeGraph.h │ │ │ ├── LineMerger.h │ │ │ ├── LineSequencer.h │ │ │ ├── Makefile │ │ │ └── Makefile.in │ │ ├── overlay │ │ │ ├── EdgeSetNoder.h │ │ │ ├── ElevationMatrix.h │ │ │ ├── ElevationMatrixCell.h │ │ │ ├── LineBuilder.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── MaximalEdgeRing.h │ │ │ ├── MinimalEdgeRing.h │ │ │ ├── MinimalEdgeRing.inl │ │ │ ├── OverlayNodeFactory.h │ │ │ ├── OverlayOp.h │ │ │ ├── PointBuilder.h │ │ │ ├── PolygonBuilder.h │ │ │ ├── snap │ │ │ │ ├── GeometrySnapper.h │ │ │ │ ├── LineStringSnapper.h │ │ │ │ ├── Makefile │ │ │ │ ├── Makefile.in │ │ │ │ ├── SnapIfNeededOverlayOp.h │ │ │ │ └── SnapOverlayOp.h │ │ │ └── validate │ │ │ │ ├── FuzzyPointLocator.h │ │ │ │ ├── OffsetPointGenerator.h │ │ │ │ └── OverlayResultValidator.h │ │ ├── polygonize │ │ │ ├── EdgeRing.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── PolygonizeDirectedEdge.h │ │ │ ├── PolygonizeEdge.h │ │ │ ├── PolygonizeGraph.h │ │ │ └── Polygonizer.h │ │ ├── predicate │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── RectangleContains.h │ │ │ ├── RectangleIntersects.h │ │ │ └── SegmentIntersectionTester.h │ │ ├── relate │ │ │ ├── EdgeEndBuilder.h │ │ │ ├── EdgeEndBundle.h │ │ │ ├── EdgeEndBundleStar.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── RelateComputer.h │ │ │ ├── RelateNode.h │ │ │ ├── RelateNodeFactory.h │ │ │ ├── RelateNodeGraph.h │ │ │ └── RelateOp.h │ │ ├── sharedpaths │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ └── SharedPathsOp.h │ │ ├── union │ │ │ ├── CascadedPolygonUnion.h │ │ │ ├── CascadedUnion.h │ │ │ ├── GeometryListHolder.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── PointGeometryUnion.h │ │ │ └── UnaryUnionOp.h │ │ └── valid │ │ │ ├── ConnectedInteriorTester.h │ │ │ ├── ConsistentAreaTester.h │ │ │ ├── IsValidOp.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── QuadtreeNestedRingTester.h │ │ │ ├── RepeatedPointTester.h │ │ │ ├── SimpleNestedRingTester.h │ │ │ ├── SweeplineNestedRingTester.h │ │ │ └── TopologyValidationError.h │ │ ├── planargraph.h │ │ ├── planargraph │ │ ├── DirectedEdge.h │ │ ├── DirectedEdgeStar.h │ │ ├── Edge.h │ │ ├── GraphComponent.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── Node.h │ │ ├── NodeMap.h │ │ ├── PlanarGraph.h │ │ ├── Subgraph.h │ │ └── algorithm │ │ │ ├── ConnectedSubgraphFinder.h │ │ │ ├── Makefile │ │ │ └── Makefile.in │ │ ├── platform.h │ │ ├── platform.h.cmake │ │ ├── platform.h.in │ │ ├── platform.h.vc │ │ ├── precision.h │ │ ├── precision │ │ ├── CommonBits.h │ │ ├── CommonBitsOp.h │ │ ├── CommonBitsRemover.h │ │ ├── EnhancedPrecisionOp.h │ │ ├── GeometryPrecisionReducer.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── PrecisionReducerCoordinateOperation.h │ │ └── SimpleGeometryPrecisionReducer.h │ │ ├── profiler.h │ │ ├── simplify │ │ ├── DouglasPeuckerLineSimplifier.h │ │ ├── DouglasPeuckerSimplifier.h │ │ ├── LineSegmentIndex.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── TaggedLineSegment.h │ │ ├── TaggedLineString.h │ │ ├── TaggedLineStringSimplifier.h │ │ ├── TaggedLinesSimplifier.h │ │ └── TopologyPreservingSimplifier.h │ │ ├── spatialIndex.h │ │ ├── timeval.h │ │ ├── triangulate │ │ ├── DelaunayTriangulationBuilder.h │ │ ├── IncrementalDelaunayTriangulator.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── VoronoiDiagramBuilder.h │ │ └── quadedge │ │ │ ├── LastFoundQuadEdgeLocator.h │ │ │ ├── LocateFailureException.h │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── QuadEdge.h │ │ │ ├── QuadEdgeLocator.h │ │ │ ├── QuadEdgeSubdivision.h │ │ │ ├── TrianglePredicate.h │ │ │ ├── TriangleVisitor.h │ │ │ └── Vertex.h │ │ ├── unload.h │ │ ├── util.h │ │ ├── util │ │ ├── Assert.h │ │ ├── AssertionFailedException.h │ │ ├── CoordinateArrayFilter.h │ │ ├── GEOSException.h │ │ ├── GeometricShapeFactory.h │ │ ├── IllegalArgumentException.h │ │ ├── IllegalStateException.h │ │ ├── Interrupt.h │ │ ├── Machine.h │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── TopologyException.h │ │ ├── UniqueCoordinateArrayFilter.h │ │ ├── UnsupportedOperationException.h │ │ └── math.h │ │ ├── version.h │ │ ├── version.h.in │ │ └── version.h.vc │ └── src │ ├── algorithm │ ├── Angle.cpp │ ├── BoundaryNodeRule.cpp │ ├── CGAlgorithms.cpp │ ├── Centroid.cpp │ ├── CentroidArea.cpp │ ├── CentroidLine.cpp │ ├── CentroidPoint.cpp │ ├── ConvexHull.cpp │ ├── HCoordinate.cpp │ ├── InteriorPointArea.cpp │ ├── InteriorPointLine.cpp │ ├── InteriorPointPoint.cpp │ ├── LineIntersector.cpp │ ├── MCPointInRing.cpp │ ├── MinimumDiameter.cpp │ ├── NotRepresentableException.cpp │ ├── PointLocator.cpp │ ├── RayCrossingCounter.cpp │ ├── RobustDeterminant.cpp │ ├── SIRtreePointInRing.cpp │ ├── SimplePointInRing.cpp │ ├── distance │ │ ├── DiscreteHausdorffDistance.cpp │ │ └── DistanceToPoint.cpp │ └── locate │ │ ├── IndexedPointInAreaLocator.cpp │ │ ├── PointOnGeometryLocator.cpp │ │ └── SimplePointInAreaLocator.cpp │ ├── geom │ ├── Coordinate.cpp │ ├── CoordinateArraySequence.cpp │ ├── CoordinateArraySequenceFactory.cpp │ ├── CoordinateSequence.cpp │ ├── CoordinateSequenceFactory.cpp │ ├── Dimension.cpp │ ├── Envelope.cpp │ ├── Geometry.cpp │ ├── GeometryCollection.cpp │ ├── GeometryComponentFilter.cpp │ ├── GeometryFactory.cpp │ ├── GeometryList.cpp │ ├── IntersectionMatrix.cpp │ ├── LineSegment.cpp │ ├── LineString.cpp │ ├── LinearRing.cpp │ ├── Location.cpp │ ├── MultiLineString.cpp │ ├── MultiPoint.cpp │ ├── MultiPolygon.cpp │ ├── Point.cpp │ ├── Polygon.cpp │ ├── PrecisionModel.cpp │ ├── Triangle.cpp │ ├── prep │ │ ├── AbstractPreparedPolygonContains.cpp │ │ ├── BasicPreparedGeometry.cpp │ │ ├── PreparedGeometry.cpp │ │ ├── PreparedGeometryFactory.cpp │ │ ├── PreparedLineString.cpp │ │ ├── PreparedLineStringIntersects.cpp │ │ ├── PreparedPoint.cpp │ │ ├── PreparedPolygon.cpp │ │ ├── PreparedPolygonContains.cpp │ │ ├── PreparedPolygonContainsProperly.cpp │ │ ├── PreparedPolygonCovers.cpp │ │ ├── PreparedPolygonIntersects.cpp │ │ └── PreparedPolygonPredicate.cpp │ └── util │ │ ├── ComponentCoordinateExtracter.cpp │ │ ├── CoordinateOperation.cpp │ │ ├── GeometryCombiner.cpp │ │ ├── GeometryEditor.cpp │ │ ├── GeometryTransformer.cpp │ │ ├── LinearComponentExtracter.cpp │ │ ├── PointExtracter.cpp │ │ ├── PolygonExtracter.cpp │ │ ├── ShortCircuitedGeometryVisitor.cpp │ │ └── SineStarFactory.cpp │ ├── geomgraph │ ├── Depth.cpp │ ├── DirectedEdge.cpp │ ├── DirectedEdgeStar.cpp │ ├── Edge.cpp │ ├── EdgeEnd.cpp │ ├── EdgeEndStar.cpp │ ├── EdgeIntersectionList.cpp │ ├── EdgeList.cpp │ ├── EdgeNodingValidator.cpp │ ├── EdgeRing.cpp │ ├── GeometryGraph.cpp │ ├── GraphComponent.cpp │ ├── Label.cpp │ ├── Node.cpp │ ├── NodeFactory.cpp │ ├── NodeMap.cpp │ ├── PlanarGraph.cpp │ ├── Position.cpp │ ├── Quadrant.cpp │ ├── TopologyLocation.cpp │ └── index │ │ ├── MonotoneChainEdge.cpp │ │ ├── MonotoneChainIndexer.cpp │ │ ├── SegmentIntersector.cpp │ │ ├── SimpleEdgeSetIntersector.cpp │ │ ├── SimpleMCSweepLineIntersector.cpp │ │ ├── SimpleSweepLineIntersector.cpp │ │ ├── SweepLineEvent.cpp │ │ └── SweepLineSegment.cpp │ ├── index │ ├── bintree │ │ ├── Bintree.cpp │ │ ├── Interval.cpp │ │ ├── Key.cpp │ │ ├── Node.cpp │ │ ├── NodeBase.cpp │ │ └── Root.cpp │ ├── chain │ │ ├── MonotoneChain.cpp │ │ ├── MonotoneChainBuilder.cpp │ │ ├── MonotoneChainOverlapAction.cpp │ │ └── MonotoneChainSelectAction.cpp │ ├── intervalrtree │ │ ├── IntervalRTreeBranchNode.cpp │ │ ├── IntervalRTreeLeafNode.cpp │ │ ├── IntervalRTreeNode.cpp │ │ └── SortedPackedIntervalRTree.cpp │ ├── quadtree │ │ ├── DoubleBits.cpp │ │ ├── IntervalSize.cpp │ │ ├── Key.cpp │ │ ├── Node.cpp │ │ ├── NodeBase.cpp │ │ ├── Quadtree.cpp │ │ └── Root.cpp │ ├── strtree │ │ ├── AbstractNode.cpp │ │ ├── AbstractSTRtree.cpp │ │ ├── Interval.cpp │ │ ├── ItemBoundable.cpp │ │ ├── SIRtree.cpp │ │ └── STRtree.cpp │ └── sweepline │ │ ├── SweepLineEvent.cpp │ │ ├── SweepLineIndex.cpp │ │ └── SweepLineInterval.cpp │ ├── inlines.cpp │ ├── io │ ├── ByteOrderDataInStream.cpp │ ├── ByteOrderValues.cpp │ ├── CLocalizer.cpp │ ├── ParseException.cpp │ ├── StringTokenizer.cpp │ ├── Unload.cpp │ ├── WKBReader.cpp │ ├── WKBWriter.cpp │ ├── WKTReader.cpp │ ├── WKTWriter.cpp │ └── Writer.cpp │ ├── linearref │ ├── ExtractLineByLocation.cpp │ ├── LengthIndexOfPoint.cpp │ ├── LengthIndexedLine.cpp │ ├── LengthLocationMap.cpp │ ├── LinearGeometryBuilder.cpp │ ├── LinearIterator.cpp │ ├── LinearLocation.cpp │ ├── LocationIndexOfLine.cpp │ └── LocationIndexOfPoint.cpp │ ├── noding │ ├── BasicSegmentString.cpp │ ├── FastNodingValidator.cpp │ ├── FastSegmentSetIntersectionFinder.cpp │ ├── GeometryNoder.cpp │ ├── IntersectionAdder.cpp │ ├── IntersectionFinderAdder.cpp │ ├── IteratedNoder.cpp │ ├── MCIndexNoder.cpp │ ├── MCIndexSegmentSetMutualIntersector.cpp │ ├── NodedSegmentString.cpp │ ├── NodingValidator.cpp │ ├── Octant.cpp │ ├── OrientedCoordinateArray.cpp │ ├── ScaledNoder.cpp │ ├── SegmentIntersectionDetector.cpp │ ├── SegmentNode.cpp │ ├── SegmentNodeList.cpp │ ├── SegmentString.cpp │ ├── SegmentStringUtil.cpp │ ├── SimpleNoder.cpp │ ├── SingleInteriorIntersectionFinder.cpp │ └── snapround │ │ ├── HotPixel.cpp │ │ ├── MCIndexPointSnapper.cpp │ │ ├── MCIndexSnapRounder.cpp │ │ └── SimpleSnapRounder.cpp │ ├── operation │ ├── GeometryGraphOperation.cpp │ ├── IsSimpleOp.cpp │ ├── buffer │ │ ├── BufferBuilder.cpp │ │ ├── BufferInputLineSimplifier.cpp │ │ ├── BufferOp.cpp │ │ ├── BufferParameters.cpp │ │ ├── BufferSubgraph.cpp │ │ ├── OffsetCurveBuilder.cpp │ │ ├── OffsetCurveSetBuilder.cpp │ │ ├── OffsetSegmentGenerator.cpp │ │ ├── RightmostEdgeFinder.cpp │ │ └── SubgraphDepthLocater.cpp │ ├── distance │ │ ├── ConnectedElementLocationFilter.cpp │ │ ├── ConnectedElementPointFilter.cpp │ │ ├── DistanceOp.cpp │ │ └── GeometryLocation.cpp │ ├── intersection │ │ ├── Rectangle.cpp │ │ ├── RectangleIntersection.cpp │ │ └── RectangleIntersectionBuilder.cpp │ ├── linemerge │ │ ├── EdgeString.cpp │ │ ├── LineMergeDirectedEdge.cpp │ │ ├── LineMergeEdge.cpp │ │ ├── LineMergeGraph.cpp │ │ ├── LineMerger.cpp │ │ └── LineSequencer.cpp │ ├── overlay │ │ ├── EdgeSetNoder.cpp │ │ ├── ElevationMatrix.cpp │ │ ├── ElevationMatrixCell.cpp │ │ ├── LineBuilder.cpp │ │ ├── MaximalEdgeRing.cpp │ │ ├── MinimalEdgeRing.cpp │ │ ├── OverlayNodeFactory.cpp │ │ ├── OverlayOp.cpp │ │ ├── PointBuilder.cpp │ │ ├── PolygonBuilder.cpp │ │ ├── snap │ │ │ ├── GeometrySnapper.cpp │ │ │ ├── LineStringSnapper.cpp │ │ │ ├── SnapIfNeededOverlayOp.cpp │ │ │ └── SnapOverlayOp.cpp │ │ └── validate │ │ │ ├── FuzzyPointLocator.cpp │ │ │ ├── OffsetPointGenerator.cpp │ │ │ └── OverlayResultValidator.cpp │ ├── polygonize │ │ ├── EdgeRing.cpp │ │ ├── PolygonizeDirectedEdge.cpp │ │ ├── PolygonizeEdge.cpp │ │ ├── PolygonizeGraph.cpp │ │ └── Polygonizer.cpp │ ├── predicate │ │ ├── RectangleContains.cpp │ │ ├── RectangleIntersects.cpp │ │ └── SegmentIntersectionTester.cpp │ ├── relate │ │ ├── EdgeEndBuilder.cpp │ │ ├── EdgeEndBundle.cpp │ │ ├── EdgeEndBundleStar.cpp │ │ ├── RelateComputer.cpp │ │ ├── RelateNode.cpp │ │ ├── RelateNodeFactory.cpp │ │ ├── RelateNodeGraph.cpp │ │ └── RelateOp.cpp │ ├── sharedpaths │ │ └── SharedPathsOp.cpp │ ├── union │ │ ├── CascadedPolygonUnion.cpp │ │ ├── CascadedUnion.cpp │ │ ├── PointGeometryUnion.cpp │ │ └── UnaryUnionOp.cpp │ └── valid │ │ ├── ConnectedInteriorTester.cpp │ │ ├── ConsistentAreaTester.cpp │ │ ├── IndexedNestedRingTester.cpp │ │ ├── IndexedNestedRingTester.h │ │ ├── IsValidOp.cpp │ │ ├── QuadtreeNestedRingTester.cpp │ │ ├── RepeatedPointTester.cpp │ │ ├── SimpleNestedRingTester.cpp │ │ ├── SweeplineNestedRingTester.cpp │ │ └── TopologyValidationError.cpp │ ├── planargraph │ ├── DirectedEdge.cpp │ ├── DirectedEdgeStar.cpp │ ├── Edge.cpp │ ├── Node.cpp │ ├── NodeMap.cpp │ ├── PlanarGraph.cpp │ ├── Subgraph.cpp │ └── algorithm │ │ └── ConnectedSubgraphFinder.cpp │ ├── precision │ ├── CommonBits.cpp │ ├── CommonBitsOp.cpp │ ├── CommonBitsRemover.cpp │ ├── EnhancedPrecisionOp.cpp │ ├── GeometryPrecisionReducer.cpp │ ├── PrecisionReducerCoordinateOperation.cpp │ └── SimpleGeometryPrecisionReducer.cpp │ ├── simplify │ ├── DouglasPeuckerLineSimplifier.cpp │ ├── DouglasPeuckerSimplifier.cpp │ ├── LineSegmentIndex.cpp │ ├── TaggedLineSegment.cpp │ ├── TaggedLineString.cpp │ ├── TaggedLineStringSimplifier.cpp │ ├── TaggedLinesSimplifier.cpp │ └── TopologyPreservingSimplifier.cpp │ ├── triangulate │ ├── DelaunayTriangulationBuilder.cpp │ ├── IncrementalDelaunayTriangulator.cpp │ ├── VoronoiDiagramBuilder.cpp │ └── quadedge │ │ ├── LastFoundQuadEdgeLocator.cpp │ │ ├── LocateFailureException.cpp │ │ ├── QuadEdge.cpp │ │ ├── QuadEdgeLocator.cpp │ │ ├── QuadEdgeSubdivision.cpp │ │ ├── TrianglePredicate.cpp │ │ ├── TriangleVisitor.cpp │ │ └── Vertex.cpp │ └── util │ ├── Assert.cpp │ ├── GeometricShapeFactory.cpp │ ├── Interrupt.cpp │ ├── Profiler.cpp │ └── math.cpp ├── README.md ├── SwiftVectorTiles.podspec ├── SwiftVectorTiles.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcshareddata │ └── xcschemes │ └── Tests.xcscheme ├── SwiftVectorTiles.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── SwiftVectorTiles.xcscmblueprint ├── SwiftVectorTiles ├── Attribute.swift ├── Command.swift ├── Info.plist ├── MadCoordinateSequence.swift ├── MadGeometry.swift ├── MadGeometryCollection.swift ├── MadGeometryFactory.swift ├── MadGeometryType.swift ├── MadLineString.swift ├── MadLinearRing.swift ├── MadMultiGeometry.swift ├── MadMultiLineString.swift ├── MadMultiPoint.swift ├── MadMultiPolygon.swift ├── MadPoint.swift ├── MadPolygon.swift ├── SwiftVectorTiles.h ├── VectorTile.swift ├── VectorTileEncoder.swift └── geos │ └── Geos.swift ├── SwiftVectorTilesTests ├── Info.plist ├── MadGeometryTransformTests.swift ├── MadGeometryTypeTests.swift └── SwiftVectorTilesTests.swift ├── proto ├── README.md └── vector_tile.proto └── screenshots ├── shot1.png └── shot2.png /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by http://www.gitignore.io 2 | 3 | ### OSX ### 4 | .DS_Store 5 | .AppleDouble 6 | .LSOverride 7 | 8 | # Icon must end with two \r 9 | Icon 10 | 11 | 12 | # Thumbnails 13 | ._* 14 | 15 | # Files that might appear on external disk 16 | .Spotlight-V100 17 | .Trashes 18 | 19 | # Directories potentially created on remote AFP share 20 | .AppleDB 21 | .AppleDesktop 22 | Network Trash Folder 23 | Temporary Items 24 | .apdisk 25 | 26 | 27 | ### Swift ### 28 | # Xcode 29 | # 30 | build/ 31 | *.pbxuser 32 | !default.pbxuser 33 | *.mode1v3 34 | !default.mode1v3 35 | *.mode2v3 36 | !default.mode2v3 37 | *.perspectivev3 38 | !default.perspectivev3 39 | xcuserdata 40 | *.xccheckout 41 | *.moved-aside 42 | DerivedData 43 | *.hmap 44 | *.ipa 45 | *.xcuserstate 46 | 47 | # CocoaPods 48 | # 49 | # We recommend against adding the Pods directory to your .gitignore. However 50 | # you should judge for yourself, the pros and cons are mentioned at: 51 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 52 | # 53 | # Pods/ 54 | 55 | 56 | ### Xcode ### 57 | build/ 58 | *.pbxuser 59 | !default.pbxuser 60 | *.mode1v3 61 | !default.mode1v3 62 | *.mode2v3 63 | !default.mode2v3 64 | *.perspectivev3 65 | !default.perspectivev3 66 | xcuserdata 67 | *.xccheckout 68 | *.moved-aside 69 | DerivedData 70 | *.xcuserstate 71 | 72 | .idea/ 73 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Note: This license has also been called the "New BSD License" or "Modified BSD License". See also the 2-clause BSD License. 2 | 3 | Copyright 2017 William B Kamp - Madrona Software 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 10 | 11 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '6.0' 3 | 4 | use_frameworks! 5 | 6 | target 'SwiftVectorTiles' do 7 | pod 'geos' 8 | pod 'ProtocolBuffers-Swift' 9 | end 10 | 11 | target 'SwiftVectorTilesTests' do 12 | pod 'geos' 13 | pod 'ProtocolBuffers-Swift' 14 | end 15 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - geos (3.5.0) 3 | - ProtocolBuffers-Swift (3.0.6) 4 | 5 | DEPENDENCIES: 6 | - geos 7 | - ProtocolBuffers-Swift 8 | 9 | SPEC CHECKSUMS: 10 | geos: e96c6ca3f3ce02d20feaa8d90d4af383e11e7198 11 | ProtocolBuffers-Swift: ee072e78456f2332a0b0f759f718b9c59443bbc8 12 | 13 | PODFILE CHECKSUM: 1c41a1d09275c6700b05e4d5d0f1cb0e32023cd5 14 | 15 | COCOAPODS: 1.2.0 16 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - geos (3.5.0) 3 | - ProtocolBuffers-Swift (3.0.6) 4 | 5 | DEPENDENCIES: 6 | - geos 7 | - ProtocolBuffers-Swift 8 | 9 | SPEC CHECKSUMS: 10 | geos: e96c6ca3f3ce02d20feaa8d90d4af383e11e7198 11 | ProtocolBuffers-Swift: ee072e78456f2332a0b0f759f718b9c59443bbc8 12 | 13 | PODFILE CHECKSUM: 1c41a1d09275c6700b05e4d5d0f1cb0e32023cd5 14 | 15 | COCOAPODS: 1.2.0 16 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTiles/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTiles/Pods-SwiftVectorTiles-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SwiftVectorTiles : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SwiftVectorTiles 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTiles/Pods-SwiftVectorTiles-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_SwiftVectorTilesVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_SwiftVectorTilesVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTiles/Pods-SwiftVectorTiles.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LIBRARY = libstdc++ 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift" "$PODS_CONFIGURATION_BUILD_DIR/geos" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = ${PODS_ROOT}/geos/include ${PODS_ROOT}/geos/capi 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 6 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift/ProtocolBuffers.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/geos/geos.framework/Headers" 7 | OTHER_LDFLAGS = $(inherited) -framework "ProtocolBuffers" -framework "geos" 8 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 9 | PODS_BUILD_DIR = $BUILD_DIR 10 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTiles/Pods-SwiftVectorTiles.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_SwiftVectorTiles { 2 | umbrella header "Pods-SwiftVectorTiles-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTiles/Pods-SwiftVectorTiles.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LIBRARY = libstdc++ 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift" "$PODS_CONFIGURATION_BUILD_DIR/geos" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = ${PODS_ROOT}/geos/include ${PODS_ROOT}/geos/capi 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 6 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift/ProtocolBuffers.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/geos/geos.framework/Headers" 7 | OTHER_LDFLAGS = $(inherited) -framework "ProtocolBuffers" -framework "geos" 8 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 9 | PODS_BUILD_DIR = $BUILD_DIR 10 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTilesTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTilesTests/Pods-SwiftVectorTilesTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SwiftVectorTilesTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SwiftVectorTilesTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTilesTests/Pods-SwiftVectorTilesTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_SwiftVectorTilesTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_SwiftVectorTilesTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTilesTests/Pods-SwiftVectorTilesTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_CXX_LIBRARY = libstdc++ 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift" "$PODS_CONFIGURATION_BUILD_DIR/geos" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = ${PODS_ROOT}/geos/include ${PODS_ROOT}/geos/capi 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift/ProtocolBuffers.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/geos/geos.framework/Headers" 8 | OTHER_LDFLAGS = $(inherited) -framework "ProtocolBuffers" -framework "geos" 9 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 10 | PODS_BUILD_DIR = $BUILD_DIR 11 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_ROOT = ${SRCROOT}/Pods 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTilesTests/Pods-SwiftVectorTilesTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_SwiftVectorTilesTests { 2 | umbrella header "Pods-SwiftVectorTilesTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwiftVectorTilesTests/Pods-SwiftVectorTilesTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_CXX_LIBRARY = libstdc++ 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift" "$PODS_CONFIGURATION_BUILD_DIR/geos" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = ${PODS_ROOT}/geos/include ${PODS_ROOT}/geos/capi 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift/ProtocolBuffers.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/geos/geos.framework/Headers" 8 | OTHER_LDFLAGS = $(inherited) -framework "ProtocolBuffers" -framework "geos" 9 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 10 | PODS_BUILD_DIR = $BUILD_DIR 11 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_ROOT = ${SRCROOT}/Pods 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ProtocolBuffers-Swift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.0.6 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ProtocolBuffers-Swift/ProtocolBuffers-Swift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ProtocolBuffers_Swift : NSObject 3 | @end 4 | @implementation PodsDummy_ProtocolBuffers_Swift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ProtocolBuffers-Swift/ProtocolBuffers-Swift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ProtocolBuffers-Swift/ProtocolBuffers-Swift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double ProtocolBuffersVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char ProtocolBuffersVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ProtocolBuffers-Swift/ProtocolBuffers-Swift.modulemap: -------------------------------------------------------------------------------- 1 | framework module ProtocolBuffers { 2 | umbrella header "ProtocolBuffers-Swift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ProtocolBuffers-Swift/ProtocolBuffers-Swift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/ProtocolBuffers-Swift 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "Foundation" 5 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/ProtocolBuffers-Swift 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/geos/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.5.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/geos/geos-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_geos : NSObject 3 | @end 4 | @implementation PodsDummy_geos 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/geos/geos-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/geos/geos-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "geos_c.h" 14 | #import "export.h" 15 | 16 | FOUNDATION_EXPORT double geosVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char geosVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/geos/geos.modulemap: -------------------------------------------------------------------------------- 1 | framework module geos { 2 | umbrella header "geos-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/geos/geos.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LIBRARY = libstdc++ 2 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/geos 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" ${PODS_ROOT}/geos/include ${PODS_ROOT}/geos/capi 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/geos 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/geos/README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://secure.travis-ci.org/libgeos/libgeos.png)] 2 | (http://travis-ci.org/libgeos/libgeos) 3 | 4 | This file is here to play nicely with github. 5 | Actual readme is [here](README). 6 | -------------------------------------------------------------------------------- /Pods/geos/geos_svn_revision.h: -------------------------------------------------------------------------------- 1 | #define GEOS_SVN_REVISION 0 2 | -------------------------------------------------------------------------------- /Pods/geos/include/acconfig.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | 16 | /* Set to 1 if type "long int" works and is 64 bits */ 17 | #undef HAVE_LONG_INT_64 18 | 19 | /* Set to 1 if type "long long int" works and is 64 bits */ 20 | #undef HAVE_LONG_LONG_INT_64 21 | -------------------------------------------------------------------------------- /Pods/geos/include/geos.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005 Refractions Research Inc. 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 | #ifndef GEOS_H 16 | #define GEOS_H 17 | 18 | /* 19 | * \file geos.h 20 | * \brief 21 | * This file is intended as an include wrapper for client application. 22 | * It includes commonly needed GEOS headers. 23 | */ 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | /// Basic namespace for all GEOS functionalities. 32 | namespace geos { 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/algorithm/ConvexHull.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | * Last port: algorithm/ConvexHull.java r407 (JTS-1.12+) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_ALGORITHM_CONVEXHULL_INL 20 | #define GEOS_ALGORITHM_CONVEXHULL_INL 21 | 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | namespace geos { 28 | namespace algorithm { // geos::algorithm 29 | 30 | INLINE 31 | ConvexHull::ConvexHull(const geom::Geometry *newGeometry) 32 | : 33 | geomFactory(newGeometry->getFactory()) 34 | { 35 | extractCoordinates(newGeometry); 36 | } 37 | 38 | INLINE 39 | ConvexHull::~ConvexHull() 40 | { 41 | } 42 | 43 | INLINE void 44 | ConvexHull::extractCoordinates(const geom::Geometry *geom) 45 | { 46 | util::UniqueCoordinateArrayFilter filter(inputPts); 47 | geom->apply_ro(&filter); 48 | } 49 | 50 | } // namespace geos::algorithm 51 | } // namespace geos 52 | 53 | #endif // GEOS_ALGORITHM_CONVEXHULL_INL 54 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/algorithm/NotRepresentableException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_ALGORITHM_NOTREPRESENTABLEEXCEPTION_H 17 | #define GEOS_ALGORITHM_NOTREPRESENTABLEEXCEPTION_H 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | namespace geos { 24 | namespace algorithm { // geos::algorithm 25 | 26 | /** 27 | * \class NotRepresentableException geosAlgorithm.h geos/geosAlgorithm.h 28 | * \brief 29 | * Indicates that a HCoordinate has been computed which is 30 | * not representable on the Cartesian plane. 31 | * 32 | * @version 1.4 33 | * @see HCoordinate 34 | */ 35 | class GEOS_DLL NotRepresentableException: public util::GEOSException { 36 | public: 37 | NotRepresentableException(); 38 | NotRepresentableException(std::string msg); 39 | ~NotRepresentableException() throw() {} 40 | }; 41 | 42 | } // namespace geos::algorithm 43 | } // namespace geos 44 | 45 | #endif 46 | 47 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/algorithm/PointInRing.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_ALGORITHM_POINTINRING_H 17 | #define GEOS_ALGORITHM_POINTINRING_H 18 | 19 | #include 20 | 21 | // Forward declarations 22 | namespace geos { 23 | namespace geom { 24 | class Coordinate; 25 | } 26 | } 27 | 28 | namespace geos { 29 | namespace algorithm { // geos::algorithm 30 | 31 | class GEOS_DLL PointInRing{ 32 | public: 33 | virtual ~PointInRing(){} 34 | virtual bool isInside(const geom::Coordinate& pt)=0; 35 | }; 36 | 37 | } // namespace geos::algorithm 38 | } // namespace geos 39 | 40 | 41 | #endif 42 | 43 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/algorithm/SIRtreePointInRing.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_ALGORITHM_SIRTREEPOINTINRING_H 17 | #define GEOS_ALGORITHM_SIRTREEPOINTINRING_H 18 | 19 | #include 20 | #include // for inheritance 21 | 22 | #include 23 | 24 | // Forward declarations 25 | namespace geos { 26 | namespace geom { 27 | class Coordinate; 28 | class LineSegment; 29 | class LinearRing; 30 | } 31 | namespace index { 32 | namespace strtree { 33 | class SIRtree; 34 | } 35 | } 36 | } 37 | 38 | 39 | namespace geos { 40 | namespace algorithm { // geos::algorithm 41 | 42 | class GEOS_DLL SIRtreePointInRing: public PointInRing { 43 | private: 44 | geom::LinearRing *ring; 45 | index::strtree::SIRtree *sirTree; 46 | int crossings; // number of segment/ray crossings 47 | void buildIndex(); 48 | void testLineSegment(const geom::Coordinate& p, 49 | geom::LineSegment *seg); 50 | public: 51 | SIRtreePointInRing(geom::LinearRing *newRing); 52 | bool isInside(const geom::Coordinate& pt); 53 | }; 54 | 55 | } // namespace geos::algorithm 56 | } // namespace geos 57 | 58 | 59 | #endif // GEOS_ALGORITHM_SIRTREEPOINTINRING_H 60 | 61 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/algorithm/SimplePointInRing.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_ALGORITHM_SIMPLEPOINTINRING_H 17 | #define GEOS_ALGORITHM_SIMPLEPOINTINRING_H 18 | 19 | #include 20 | #include // for inheritance 21 | 22 | // Forward declarations 23 | namespace geos { 24 | namespace geom { 25 | class Coordinate; 26 | class LinearRing; 27 | class CoordinateSequence; 28 | } 29 | } 30 | 31 | namespace geos { 32 | namespace algorithm { // geos::algorithm 33 | 34 | class GEOS_DLL SimplePointInRing: public PointInRing { 35 | public: 36 | SimplePointInRing(geom::LinearRing *ring); 37 | virtual ~SimplePointInRing(); 38 | bool isInside(const geom::Coordinate& pt); 39 | private: 40 | const geom::CoordinateSequence* pts; 41 | }; 42 | 43 | } // namespace geos::algorithm 44 | } // namespace geos 45 | 46 | 47 | #endif // GEOS_ALGORITHM_SIMPLEPOINTINRING_H 48 | 49 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/algorithm/locate/PointOnGeometryLocator.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | 16 | #ifndef GEOS_ALGORITHM_LOCATE_POINTONGEOMETRYLOCATOR_H 17 | #define GEOS_ALGORITHM_LOCATE_POINTONGEOMETRYLOCATOR_H 18 | 19 | namespace geos { 20 | namespace geom { 21 | class Coordinate; 22 | } 23 | } 24 | 25 | namespace geos { 26 | namespace algorithm { // geos::algorithm 27 | namespace locate { // geos::algorithm::locate 28 | 29 | /** \brief 30 | * An interface for classes which determine the {@link Location} of 31 | * points in {@link Polygon} or {@link MultiPolygon} geometries. 32 | * 33 | * @author Martin Davis 34 | */ 35 | class PointOnGeometryLocator 36 | { 37 | private: 38 | protected: 39 | public: 40 | virtual ~PointOnGeometryLocator() 41 | { } 42 | 43 | /** 44 | * Determines the {@link Location} of a point in an areal {@link Geometry}. 45 | * 46 | * @param p the point to test 47 | * @return the location of the point in the geometry 48 | */ 49 | virtual int locate( const geom::Coordinate * /*const*/ p) =0; 50 | }; 51 | 52 | } // geos::algorithm::locate 53 | } // geos::algorithm 54 | } // geos 55 | 56 | #endif // GEOS_ALGORITHM_LOCATE_POINTONGEOMETRYLOCATOR_H 57 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/export.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2009 Ragi Y. Burhum 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 | #ifndef GEOS_EXPORT_H 15 | #define GEOS_EXPORT_H 16 | 17 | #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || \ 18 | defined( __BCPLUSPLUS__) || defined( __MWERKS__) 19 | 20 | # if defined(GEOS_DLL_EXPORT) 21 | # define GEOS_DLL __declspec(dllexport) 22 | # elif defined(GEOS_DLL_IMPORT) 23 | # define GEOS_DLL __declspec(dllimport) 24 | # else 25 | # define GEOS_DLL 26 | # endif 27 | #else 28 | # define GEOS_DLL 29 | #endif 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/GeometryCollection.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | * Last port: geom/GeometryCollection.java rev. 1.41 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_GEOMETRYCOLLECTION_INL 20 | #define GEOS_GEOMETRYCOLLECTION_INL 21 | 22 | #include 23 | 24 | #include 25 | 26 | namespace geos { 27 | namespace geom { // geos::geom 28 | 29 | INLINE GeometryCollection::const_iterator 30 | GeometryCollection::begin() const 31 | { 32 | return geometries->begin(); 33 | } 34 | 35 | INLINE GeometryCollection::const_iterator 36 | GeometryCollection::end() const 37 | { 38 | return geometries->end(); 39 | } 40 | 41 | 42 | } // namespace geos::geom 43 | } // namespace geos 44 | 45 | #endif // GEOS_GEOMETRYCOLLECTION_INL 46 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/GeometryFactory.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | * Last port: geom/GeometryFactory.java rev. 1.48 16 | * 17 | ********************************************************************** 18 | * 19 | * This is just a stub, there are a lot of candidates for inlining 20 | * but it's not worth checking that at the moment 21 | * 22 | **********************************************************************/ 23 | 24 | #ifndef GEOS_GEOM_GEOMETRYFACTORY_INL 25 | #define GEOS_GEOM_GEOMETRYFACTORY_INL 26 | 27 | #include 28 | 29 | namespace geos { 30 | namespace geom { // geos::geom 31 | 32 | INLINE int 33 | GeometryFactory::getSRID() const 34 | { 35 | return SRID; 36 | } 37 | 38 | INLINE const CoordinateSequenceFactory* 39 | GeometryFactory::getCoordinateSequenceFactory() const 40 | { 41 | return coordinateListFactory; 42 | } 43 | 44 | } // namespace geos::geom 45 | } // namespace geos 46 | 47 | #endif // GEOS_GEOM_GEOMETRYFACTORY_INL 48 | 49 | 50 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/Lineal.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 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 | * Last port: geom/Lineal.java r320 (JTS-1.12) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_GEOM_LINEAL_H 20 | #define GEOS_GEOM_LINEAL_H 21 | 22 | #include 23 | #include // for inheritance 24 | 25 | namespace geos { 26 | namespace geom { // geos::geom 27 | 28 | /** 29 | * Identifies {@link Geometry} subclasses which 30 | * are 1-dimensional and with components which are {@link LineString}s. 31 | */ 32 | class GEOS_DLL Lineal : public virtual Geometry 33 | { 34 | protected: 35 | Lineal(): Geometry(0) {} 36 | }; 37 | 38 | } // namespace geos::geom 39 | } // namespace geos 40 | 41 | #endif // ndef GEOS_GEOM_LINEAL_H 42 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/MultiLineString.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 7 | * Copyright (C) 2005-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 | * Last port: geom/MultiLineString.java r320 (JTS-1.12) 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_GEOM_MULTILINESTRING_INL 21 | #define GEOS_GEOM_MULTILINESTRING_INL 22 | 23 | #include 24 | #include 25 | 26 | //#include 27 | 28 | namespace geos { 29 | namespace geom { // geos::geom 30 | 31 | INLINE 32 | MultiLineString::MultiLineString(const MultiLineString &mp) 33 | : 34 | Geometry(mp), 35 | GeometryCollection(mp) 36 | { 37 | } 38 | 39 | INLINE Geometry* 40 | MultiLineString::clone() const 41 | { 42 | return new MultiLineString(*this); 43 | } 44 | 45 | } // namespace geos::geom 46 | } // namespace geos 47 | 48 | #endif // GEOS_GEOM_MULTILINESTRING_INL 49 | 50 | 51 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/MultiPolygon.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | * Last port: geom/MultiPolygon.java rev 1.34 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_GEOM_MULTIPOLYGON_INL 20 | #define GEOS_GEOM_MULTIPOLYGON_INL 21 | 22 | #include 23 | #include 24 | 25 | namespace geos { 26 | namespace geom { // geos::geom 27 | 28 | INLINE 29 | MultiPolygon::MultiPolygon(const MultiPolygon &mp) 30 | : 31 | Geometry(mp), 32 | GeometryCollection(mp) 33 | { 34 | } 35 | 36 | INLINE Geometry* 37 | MultiPolygon::clone() const 38 | { 39 | return new MultiPolygon(*this); 40 | } 41 | 42 | } // namespace geos::geom 43 | } // namespace geos 44 | 45 | #endif // GEOS_GEOM_MULTIPOLYGON_INL 46 | 47 | 48 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/Polygonal.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 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 | * Last port: geom/Polygonal.java r320 (JTS-1.12) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_GEOM_POLYGONAL_H 20 | #define GEOS_GEOM_POLYGONAL_H 21 | 22 | #include 23 | #include // for inheritance 24 | 25 | namespace geos { 26 | namespace geom { // geos::geom 27 | 28 | /** 29 | * Identifies {@link Geometry} subclasses which 30 | * are 2-dimensional and with components which are {@link Polygon}s. 31 | */ 32 | class GEOS_DLL Polygonal : public virtual Geometry 33 | { 34 | protected: 35 | Polygonal(): Geometry(0) {} 36 | }; 37 | 38 | } // namespace geos::geom 39 | } // namespace geos 40 | 41 | #endif // ndef GEOS_GEOM_POLYGONAL_H 42 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/PrecisionModel.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 7 | * Copyright (C) 2005-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 | * Last port: geom/PrecisionModel.java r378 (JTS-1.12) 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_GEOM_PRECISIONMODEL_INL 21 | #define GEOS_GEOM_PRECISIONMODEL_INL 22 | 23 | #include 24 | 25 | #include 26 | 27 | namespace geos { 28 | namespace geom { // geos::geom 29 | 30 | /*public*/ 31 | INLINE 32 | PrecisionModel::~PrecisionModel(void) 33 | { 34 | } 35 | 36 | /*public*/ 37 | INLINE void 38 | PrecisionModel::makePrecise(Coordinate* coord) const 39 | { 40 | assert(coord); 41 | return makePrecise(*coord); 42 | } 43 | 44 | /*public*/ 45 | INLINE PrecisionModel::Type 46 | PrecisionModel::getType() const 47 | { 48 | return modelType; 49 | } 50 | 51 | /*public*/ 52 | INLINE double 53 | PrecisionModel::getScale() const 54 | { 55 | assert(!(scale < 0)); 56 | return scale; 57 | } 58 | 59 | 60 | } // namespace geos::geom 61 | } // namespace geos 62 | 63 | #endif // GEOS_GEOM_PRECISIONMODEL_INL 64 | 65 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/Puntal.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 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 | * Last port: geom/Puntal.java r320 (JTS-1.12) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_GEOM_PUNTAL_H 20 | #define GEOS_GEOM_PUNTAL_H 21 | 22 | #include 23 | #include // for inheritance 24 | 25 | namespace geos { 26 | namespace geom { // geos::geom 27 | 28 | /** 29 | * Identifies {@link Geometry} subclasses which 30 | * are 0-dimensional and with components which are {@link Point}s. 31 | */ 32 | class GEOS_DLL Puntal : public virtual Geometry 33 | { 34 | protected: 35 | Puntal(): Geometry(0) {} 36 | }; 37 | 38 | } // namespace geos::geom 39 | } // namespace geos 40 | 41 | #endif // ndef GEOS_GEOM_PUNTAL_H 42 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/prep/PreparedPoint.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | * 16 | * Last port: geom/prep/PreparedPoint.java rev. 1.2 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_GEOM_PREP_PREPAREDPOINT_H 21 | #define GEOS_GEOM_PREP_PREPAREDPOINT_H 22 | 23 | #include // for inheritance 24 | 25 | namespace geos { 26 | namespace geom { // geos::geom 27 | namespace prep { // geos::geom::prep 28 | 29 | /** 30 | * \brief 31 | * A prepared version of {@link Point} or {@link MultiPoint} geometries. 32 | * 33 | * @author Martin Davis 34 | * 35 | */ 36 | class PreparedPoint: public BasicPreparedGeometry 37 | { 38 | private: 39 | protected: 40 | public: 41 | PreparedPoint(const Geometry * geom) 42 | : BasicPreparedGeometry( geom) 43 | { } 44 | 45 | /** 46 | * Tests whether this point intersects a {@link Geometry}. 47 | * 48 | * The optimization here is that computing topology for the test 49 | * geometry is avoided. This can be significant for large geometries. 50 | */ 51 | bool intersects(const geom::Geometry* g) const; 52 | 53 | }; 54 | 55 | } // namespace geos::geom::prep 56 | } // namespace geos::geom 57 | } // namespace geos 58 | 59 | #endif // GEOS_GEOM_PREP_PREPAREDPOINT_H 60 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geom/util/ShortCircuitedGeometryVisitor.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_GEOM_UTIL_SHORTCIRCUITEDGEOMETRYVISITOR_H 17 | #define GEOS_GEOM_UTIL_SHORTCIRCUITEDGEOMETRYVISITOR_H 18 | 19 | #include 20 | 21 | // Forward declarations 22 | namespace geos { 23 | namespace geom { 24 | class Geometry; 25 | } 26 | } 27 | 28 | 29 | namespace geos { 30 | namespace geom { // geos.geom 31 | namespace util { // geos.geom.util 32 | 33 | /** \brief 34 | * A visitor to Geometry elements which can 35 | * be short-circuited by a given condition 36 | * 37 | * Last port: geom/util/ShortCircuitedGeometryVisitor.java rev. 1.1 (JTS-1.7) 38 | */ 39 | class GEOS_DLL ShortCircuitedGeometryVisitor 40 | { 41 | 42 | private: 43 | 44 | bool done; 45 | 46 | protected: 47 | 48 | virtual void visit(const Geometry &element)=0; 49 | virtual bool isDone()=0; 50 | 51 | public: 52 | 53 | ShortCircuitedGeometryVisitor() 54 | : 55 | done(false) 56 | {} 57 | 58 | void applyTo(const Geometry &geom); 59 | 60 | virtual ~ShortCircuitedGeometryVisitor() {} 61 | 62 | }; 63 | 64 | } // namespace geos.geom.util 65 | } // namespace geos.geom 66 | } // namespace geos 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomPrep.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_GEOMPREP_H 17 | #define GEOS_GEOMPREP_H 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | namespace geos { 26 | namespace geom { // geos.geom 27 | 28 | /** \brief 29 | * Contains classes and interfaces implementing algorithms that optimize the 30 | * performance of repeated calls to specific geometric operations. 31 | */ 32 | namespace prep { // geos.geom.prep 33 | 34 | } // namespace geos.geom.prep 35 | } // namespace geos.geom 36 | } // namespace geos 37 | 38 | #endif //GEOS_GEOMPREP_H 39 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomUtil.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_GEOMUTIL_H 17 | #define GEOS_GEOMUTIL_H 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | namespace geos { 28 | namespace geom { // geos.geom 29 | 30 | /** \brief 31 | * Provides classes that parse and modify Geometry objects. 32 | */ 33 | namespace util { // geos.geom.util 34 | 35 | } // namespace geos.geom.util 36 | } // namespace geos.geom 37 | } // namespace geos 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraph/GeometryGraph.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 7 | * Copyright (C) 2005-2006 Refractions Research Inc. 8 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 9 | * 10 | * This is free software; you can redistribute and/or modify it under 11 | * the terms of the GNU Lesser General Public Licence as published 12 | * by the Free Software Foundation. 13 | * See the COPYING file for more information. 14 | * 15 | ********************************************************************** 16 | * 17 | * Last port: geomgraph/GeometryGraph.java r428 (JTS-1.12+) 18 | * 19 | **********************************************************************/ 20 | 21 | #ifndef GEOS_GEOMGRAPH_GEOMETRYGRAPH_INL 22 | #define GEOS_GEOMGRAPH_GEOMETRYGRAPH_INL 23 | 24 | #include 25 | 26 | namespace geos { 27 | namespace geomgraph { // geos::geomgraph 28 | 29 | INLINE void 30 | GeometryGraph::getBoundaryNodes(std::vector&bdyNodes) 31 | { 32 | nodes->getBoundaryNodes(argIndex, bdyNodes); 33 | } 34 | 35 | INLINE const geom::Geometry* 36 | GeometryGraph::getGeometry() 37 | { 38 | return parentGeom; 39 | } 40 | 41 | INLINE 42 | GeometryGraph::~GeometryGraph() 43 | { 44 | } 45 | 46 | } // namespace geos::geomgraph 47 | } // namespace geos 48 | 49 | #endif // GEOS_GEOMGRAPH_GEOMETRYGRAPH_INL 50 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraph/NodeFactory.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: geomgraph/NodeFactory.java rev. 1.3 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | 21 | #ifndef GEOS_GEOMGRAPH_NODEFACTORY_H 22 | #define GEOS_GEOMGRAPH_NODEFACTORY_H 23 | 24 | #include 25 | #include 26 | 27 | // Forward declarations 28 | namespace geos { 29 | namespace geom { 30 | class Coordinate; 31 | } 32 | namespace geomgraph { 33 | class Node; 34 | } 35 | } 36 | 37 | namespace geos { 38 | namespace geomgraph { // geos.geomgraph 39 | 40 | class GEOS_DLL NodeFactory { 41 | public: 42 | virtual Node* createNode(const geom::Coordinate &coord) const; 43 | static const NodeFactory &instance(); 44 | virtual ~NodeFactory() {} 45 | protected: 46 | NodeFactory() {} 47 | }; 48 | 49 | 50 | } // namespace geos.geomgraph 51 | } // namespace geos 52 | 53 | #endif // ifndef GEOS_GEOMGRAPH_NODEFACTORY_H 54 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraph/Position.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: geomgraph/Position.java rev. 1.4 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | 21 | #ifndef GEOS_GEOMGRAPH_POSITION_H 22 | #define GEOS_GEOMGRAPH_POSITION_H 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | #include 30 | 31 | 32 | namespace geos { 33 | namespace geomgraph { // geos.geomgraph 34 | 35 | class GEOS_DLL Position { 36 | public: 37 | enum { 38 | /* 39 | * An indicator that a Location is on 40 | * a GraphComponent 41 | */ 42 | ON=0, 43 | 44 | /* 45 | * An indicator that a Location is to the 46 | * left of a GraphComponent 47 | */ 48 | LEFT, 49 | 50 | /* 51 | * An indicator that a Location is to the 52 | * right of a GraphComponent 53 | */ 54 | RIGHT 55 | }; 56 | 57 | /** 58 | * Returns LEFT if the position is RIGHT, RIGHT if 59 | * the position is LEFT, or the position otherwise. 60 | */ 61 | static int opposite(int position); 62 | }; 63 | 64 | } // namespace geos.geomgraph 65 | } // namespace geos 66 | 67 | #endif // ifndef GEOS_GEOMGRAPH_POSITION_H 68 | 69 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraph/index/MonotoneChainIndexer.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_GEOMGRAPH_INDEX_MONOTONECHAININDEXER_H 17 | #define GEOS_GEOMGRAPH_INDEX_MONOTONECHAININDEXER_H 18 | 19 | #include 20 | #include 21 | 22 | // Forward declarations 23 | namespace geos { 24 | namespace geom { 25 | class CoordinateSequence; 26 | } 27 | } 28 | 29 | namespace geos { 30 | namespace geomgraph { // geos::geomgraph 31 | namespace index { // geos::geomgraph::index 32 | 33 | 34 | class GEOS_DLL MonotoneChainIndexer{ 35 | 36 | public: 37 | 38 | MonotoneChainIndexer(){} 39 | 40 | void getChainStartIndices(const geom::CoordinateSequence*, std::vector&); 41 | 42 | private: 43 | 44 | int findChainEnd(const geom::CoordinateSequence* pts, int start); 45 | 46 | }; 47 | 48 | } // namespace geos.geomgraph.index 49 | } // namespace geos.geomgraph 50 | } // namespace geos 51 | 52 | #endif // GEOS_GEOMGRAPH_INDEX_MONOTONECHAININDEXER_H 53 | 54 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraph/index/SweepLineEventObj.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_GEOMGRAPH_INDEX_SWEEPLINEEVENTOBJ_H 17 | #define GEOS_GEOMGRAPH_INDEX_SWEEPLINEEVENTOBJ_H 18 | 19 | #include 20 | 21 | namespace geos { 22 | namespace geomgraph { // geos::geomgraph 23 | namespace index { // geos::geomgraph::index 24 | 25 | // This is here so that SweepLineEvent constructor 26 | // can use it as argument type. 27 | // Both SweepLineSegment and MonotoneChain will 28 | // inherit from it. 29 | class GEOS_DLL SweepLineEventOBJ { 30 | public: 31 | virtual ~SweepLineEventOBJ(){} 32 | }; 33 | 34 | 35 | } // namespace geos.geomgraph.index 36 | } // namespace geos.geomgraph 37 | } // namespace geos 38 | 39 | #endif 40 | 41 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraph/index/SweepLineSegment.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_GEOMGRAPH_INDEX_SWEEPLINESEGMENT_H 17 | #define GEOS_GEOMGRAPH_INDEX_SWEEPLINESEGMENT_H 18 | 19 | 20 | #include 21 | #include // for inheritance 22 | 23 | // Forward declarations 24 | namespace geos { 25 | namespace geom { 26 | class CoordinateSequence; 27 | } 28 | namespace geomgraph { 29 | class Edge; 30 | namespace index { 31 | class SegmentIntersector; 32 | } 33 | } 34 | } 35 | 36 | namespace geos { 37 | namespace geomgraph { // geos::geomgraph 38 | namespace index { // geos::geomgraph::index 39 | 40 | class GEOS_DLL SweepLineSegment: public SweepLineEventOBJ { 41 | public: 42 | SweepLineSegment(Edge *newEdge, int newPtIndex); 43 | ~SweepLineSegment(); 44 | double getMinX(); 45 | double getMaxX(); 46 | void computeIntersections(SweepLineSegment *ss, SegmentIntersector *si); 47 | protected: 48 | Edge *edge; 49 | const geom::CoordinateSequence* pts; 50 | int ptIndex; 51 | }; 52 | 53 | 54 | 55 | } // namespace geos.geomgraph.index 56 | } // namespace geos.geomgraph 57 | } // namespace geos 58 | 59 | #endif 60 | 61 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/geomgraphindex.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | #ifndef GEOS_GEOMGRAPH_INDEX_H 17 | #define GEOS_GEOMGRAPH_INDEX_H 18 | 19 | namespace geos { 20 | namespace geomgraph { 21 | namespace index { 22 | } 23 | } 24 | } 25 | 26 | #include 27 | # include 28 | # include 29 | # include 30 | 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | #endif 39 | 40 | 41 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/ItemVisitor.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEX_ITEMVISITOR_H 17 | #define GEOS_INDEX_ITEMVISITOR_H 18 | 19 | #include 20 | 21 | namespace geos { 22 | namespace index { 23 | 24 | /** \brief 25 | * A visitor for items in an index. 26 | * 27 | * Last port: index/ItemVisitor.java rev. 1.2 (JTS-1.7) 28 | */ 29 | class GEOS_DLL ItemVisitor { 30 | public: 31 | virtual void visitItem(void *)=0; 32 | 33 | virtual ~ItemVisitor() {} 34 | }; 35 | 36 | } // namespace geos.index 37 | } // namespace geos 38 | 39 | #endif // GEOS_INDEX_ITEMVISITOR_H 40 | 41 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/bintree/Interval.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_IDX_BINTREE_INTERVAL_H 16 | #define GEOS_IDX_BINTREE_INTERVAL_H 17 | 18 | #include 19 | 20 | namespace geos { 21 | namespace index { // geos::index 22 | namespace bintree { // geos::index::bintree 23 | 24 | /// Represents an (1-dimensional) closed interval on the Real number line. 25 | class GEOS_DLL Interval { 26 | 27 | public: 28 | 29 | double min, max; 30 | 31 | Interval(); 32 | 33 | ~Interval(); 34 | 35 | Interval(double nmin, double nmax); 36 | 37 | /// TODO: drop this, rely on copy ctor 38 | Interval(const Interval *interval); 39 | 40 | void init(double nmin, double nmax); 41 | 42 | double getMin() const; 43 | 44 | double getMax() const; 45 | 46 | double getWidth() const; 47 | 48 | void expandToInclude(Interval *interval); 49 | 50 | bool overlaps(const Interval *interval) const; 51 | 52 | bool overlaps(double nmin, double nmax) const; 53 | 54 | bool contains(const Interval *interval) const; 55 | 56 | bool contains(double nmin, double nmax) const; 57 | 58 | bool contains(double p) const; 59 | }; 60 | 61 | } // namespace geos::index::bintree 62 | } // namespace geos::index 63 | } // namespace geos 64 | 65 | #endif // GEOS_IDX_BINTREE_INTERVAL_H 66 | 67 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/intervalrtree/IntervalRTreeLeafNode.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | 16 | #ifndef GEOS_INDEX_INTERVALRTREE_INTERVALRTREELEAFNODE_H 17 | #define GEOS_INDEX_INTERVALRTREE_INTERVALRTREELEAFNODE_H 18 | 19 | 20 | #include // inherited 21 | 22 | 23 | // forward declarations 24 | namespace geos { 25 | namespace index { 26 | class ItemVisitor; 27 | } 28 | } 29 | 30 | 31 | namespace geos { 32 | namespace index { 33 | namespace intervalrtree { 34 | 35 | class IntervalRTreeLeafNode : public IntervalRTreeNode 36 | { 37 | private: 38 | /// externally owned 39 | void * item; 40 | 41 | protected: 42 | public: 43 | 44 | /// @param item externally owned 45 | IntervalRTreeLeafNode( double min, double max, void * item) 46 | : IntervalRTreeNode( min, max), 47 | item( item) 48 | { } 49 | 50 | ~IntervalRTreeLeafNode() 51 | { 52 | } 53 | 54 | void query( double queryMin, double queryMax, index::ItemVisitor * visitor) const; 55 | 56 | }; 57 | 58 | } // geos::intervalrtree 59 | } // geos::index 60 | } // geos 61 | 62 | #endif // GEOS_INDEX_INTERVALRTREE_INTERVALRTREELEAFNODE_H 63 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/strtree/Boundable.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_INDEX_STRTREE_BOUNDABLE_H 16 | #define GEOS_INDEX_STRTREE_BOUNDABLE_H 17 | 18 | #include 19 | 20 | namespace geos { 21 | namespace index { // geos::index 22 | namespace strtree { // geos::index::strtree 23 | 24 | /// A spatial object in an AbstractSTRtree. 25 | class GEOS_DLL Boundable { 26 | public: 27 | /** 28 | * Returns a representation of space that encloses this Boundable, 29 | * preferably not much bigger than this Boundable's boundary yet 30 | * fast to test for intersection with the bounds of other Boundables. 31 | * 32 | * The class of object returned depends 33 | * on the subclass of AbstractSTRtree. 34 | * 35 | * @return an Envelope (for STRtrees), an Interval (for SIRtrees), 36 | * or other object (for other subclasses of AbstractSTRtree) 37 | * 38 | * @see AbstractSTRtree::IntersectsOp 39 | */ 40 | virtual const void* getBounds() const=0; 41 | virtual ~Boundable() {} 42 | }; 43 | 44 | 45 | } // namespace geos::index::strtree 46 | } // namespace geos::index 47 | } // namespace geos 48 | 49 | #endif // GEOS_INDEX_STRTREE_BOUNDABLE_H 50 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/strtree/Interval.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_INDEX_STRTREE_INTERVAL_H 16 | #define GEOS_INDEX_STRTREE_INTERVAL_H 17 | 18 | #include 19 | 20 | namespace geos { 21 | namespace index { // geos::index 22 | namespace strtree { // geos::index::strtree 23 | 24 | /// A contiguous portion of 1D-space. Used internally by SIRtree. 25 | // 26 | /// @see SIRtree 27 | /// 28 | class GEOS_DLL Interval { 29 | public: 30 | Interval(double newMin, double newMax); 31 | double getCentre(); 32 | Interval* expandToInclude(const Interval *other); 33 | bool intersects(const Interval *other) const; 34 | bool equals(const Interval *o) const; 35 | private: 36 | double imin; 37 | double imax; 38 | }; 39 | 40 | 41 | } // namespace geos::index::strtree 42 | } // namespace geos::index 43 | } // namespace geos 44 | 45 | #endif // GEOS_INDEX_STRTREE_INTERVAL_H 46 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/strtree/ItemBoundable.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_INDEX_STRTREE_ITEMBOUNDABLE_H 15 | #define GEOS_INDEX_STRTREE_ITEMBOUNDABLE_H 16 | 17 | #include 18 | 19 | #include // for inheritance 20 | 21 | namespace geos { 22 | namespace index { // geos::index 23 | namespace strtree { // geos::index::strtree 24 | 25 | /** 26 | * \brief 27 | * Boundable wrapper for a non-Boundable spatial object. 28 | * Used internally by AbstractSTRtree. 29 | * 30 | * \todo TODO: It's unclear who takes ownership of passed newBounds and newItem objects. 31 | */ 32 | class GEOS_DLL ItemBoundable: public Boundable 33 | { 34 | public: 35 | 36 | ItemBoundable(const void* newBounds, void* newItem); 37 | virtual ~ItemBoundable(); 38 | 39 | const void* getBounds() const; 40 | void* getItem() const; 41 | 42 | private: 43 | 44 | const void* bounds; 45 | void* item; 46 | }; 47 | 48 | } // namespace geos::index::strtree 49 | } // namespace geos::index 50 | } // namespace geos 51 | 52 | #endif // GEOS_INDEX_STRTREE_ITEMBOUNDABLE_H 53 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/sweepline/SweepLineInterval.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_INDEX_SWEEPLINE_SWEEPLINEINTERVAL_H 16 | #define GEOS_INDEX_SWEEPLINE_SWEEPLINEINTERVAL_H 17 | 18 | #include 19 | 20 | namespace geos { 21 | namespace index { // geos.index 22 | namespace sweepline { // geos:index:sweepline 23 | 24 | class GEOS_DLL SweepLineInterval { 25 | public: 26 | SweepLineInterval(double newMin, double newMax, void* newItem=0); 27 | double getMin(); 28 | double getMax(); 29 | void* getItem(); 30 | private: 31 | double min, max; 32 | void* item; 33 | }; 34 | 35 | } // namespace geos:index:sweepline 36 | } // namespace geos:index 37 | } // namespace geos 38 | 39 | #endif // GEOS_INDEX_SWEEPLINE_SWEEPLINEINTERVAL_H 40 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/index/sweepline/SweepLineOverlapAction.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_INDEX_SWEEPLINE_SWEEPLINEOVERLAPACTION_H 16 | #define GEOS_INDEX_SWEEPLINE_SWEEPLINEOVERLAPACTION_H 17 | 18 | #include 19 | 20 | // Forward declarations 21 | namespace geos { 22 | namespace index { 23 | namespace sweepline { 24 | class SweepLineInterval; 25 | } 26 | } 27 | } 28 | 29 | namespace geos { 30 | namespace index { // geos.index 31 | namespace sweepline { // geos:index:sweepline 32 | 33 | class GEOS_DLL SweepLineOverlapAction { 34 | public: 35 | virtual void overlap(SweepLineInterval *s0,SweepLineInterval *s1)=0; 36 | 37 | virtual ~SweepLineOverlapAction() {} 38 | }; 39 | 40 | 41 | } // namespace geos:index:sweepline 42 | } // namespace geos:index 43 | } // namespace geos 44 | 45 | #endif // GEOS_INDEX_SWEEPLINE_SWEEPLINEOVERLAPACTION_H 46 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/indexBintree.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEXBINTREE_H 17 | #define GEOS_INDEXBINTREE_H 18 | 19 | namespace geos { 20 | namespace index { // geos.index 21 | 22 | /// Contains classes that implement a Binary Interval Tree index 23 | namespace bintree { // geos.index.bintree 24 | 25 | } // namespace geos.index.bintree 26 | } // namespace geos.index 27 | } // namespace geos 28 | 29 | #include 30 | #include 31 | //#include 32 | //#include 33 | //#include 34 | //#include 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/indexChain.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_INDEXCHAIN_H 16 | #define GEOS_INDEXCHAIN_H 17 | 18 | namespace geos { 19 | namespace index { // geos.index 20 | 21 | /// Contains classes that implement Monotone Chains 22 | namespace chain { // geos.index.chain 23 | 24 | } // namespace geos.index.chain 25 | } // namespace geos.index 26 | } // namespace geos 27 | 28 | #include 29 | //#include 30 | #include 31 | #include 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/indexIntervalRTree.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEXINTERVALRTREE_H 17 | #define GEOS_INDEXINTERVALRTREE_H 18 | 19 | namespace geos { 20 | namespace index { // geos.index 21 | 22 | /** \brief 23 | * Contains classes that implement a static index on a set of 1-dimensional intervals, 24 | * using an R-Tree packed based on the order of the interval midpoints. 25 | */ 26 | namespace intervalrtree { // geos.index.intervalrtree 27 | 28 | } // namespace geos.index.intervalrtree 29 | } // namespace geos.index 30 | } // namespace geos 31 | 32 | #endif //GEOS_INDEXINTERVALRTREE_H 33 | 34 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/indexQuadtree.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEXQUADTREE_H 17 | #define GEOS_INDEXQUADTREE_H 18 | 19 | namespace geos { 20 | namespace index { // geos.index 21 | 22 | /// Contains classes that implement a Quadtree spatial index 23 | namespace quadtree { // geos.index.quadtree 24 | 25 | } // namespace geos.index.quadtree 26 | } // namespace geos.index 27 | } // namespace geos 28 | 29 | //#include 30 | //#include 31 | //#include 32 | //#include 33 | #include 34 | #include 35 | #include 36 | 37 | #endif 38 | 39 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/indexStrtree.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEXSTRTREE_H 17 | #define GEOS_INDEXSTRTREE_H 18 | 19 | namespace geos { 20 | namespace index { // geos.index 21 | 22 | /// Contains 2-D and 1-D versions of the Sort-Tile-Recursive (STR) tree, a query-only R-tree. 23 | namespace strtree { // geos.index.strtree 24 | 25 | } // namespace geos.index.strtree 26 | } // namespace geos.index 27 | } // namespace geos 28 | 29 | #include 30 | #include 31 | #include 32 | #include 33 | //#include 34 | #include 35 | #include 36 | 37 | #endif // GEOS_INDEXSTRTREE_H 38 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/indexSweepline.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEXSWEEPLINE_H 17 | #define GEOS_INDEXSWEEPLINE_H 18 | 19 | namespace geos { 20 | namespace index { // geos.index 21 | 22 | /// \brief 23 | /// Contains classes which implement a sweepline algorithm 24 | /// for scanning geometric data structures. 25 | /// 26 | namespace sweepline { // geos.index.sweepline 27 | 28 | } // namespace geos.index.sweepline 29 | } // namespace geos.index 30 | } // namespace geos 31 | 32 | //#include 33 | //#include 34 | //#include 35 | #include 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/inline.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | #ifndef GEOS_INLINE_H 16 | #define GEOS_INLINE_H 17 | 18 | #ifdef GEOS_INLINE 19 | # define INLINE inline 20 | #else 21 | # define INLINE 22 | #endif 23 | 24 | 25 | #endif // ndef GEOS_INLINE_H 26 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/io/CLocalizer.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2008 Sean Gillies 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 | * Last port: ORIGINAL WORK 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_IO_CLOCALIZER_H 20 | #define GEOS_IO_CLOCALIZER_H 21 | 22 | #include 23 | 24 | #include 25 | 26 | #ifdef _MSC_VER 27 | #pragma warning(push) 28 | #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 29 | #endif 30 | 31 | namespace geos { 32 | namespace io { 33 | 34 | /** 35 | * \class CLocalizer io.h geos.h 36 | */ 37 | class GEOS_DLL CLocalizer 38 | { 39 | public: 40 | 41 | CLocalizer(); 42 | ~CLocalizer(); 43 | 44 | private: 45 | 46 | std::string saved_locale; 47 | }; 48 | 49 | #ifdef _MSC_VER 50 | #pragma warning(pop) 51 | #endif 52 | 53 | } // namespace io 54 | } // namespace geos 55 | 56 | #endif // GEOS_IO_CLOCALIZER_H 57 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/io/ParseException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: io/ParseException.java rev. 1.13 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_IO_PARSEEXCEPTION_H 21 | #define GEOS_IO_PARSEEXCEPTION_H 22 | 23 | #include 24 | 25 | #include 26 | 27 | namespace geos { 28 | namespace io { 29 | 30 | /** 31 | * \class ParseException io.h geos.h 32 | * \brief Notifies a parsing error 33 | */ 34 | class GEOS_DLL ParseException : public util::GEOSException 35 | { 36 | 37 | public: 38 | 39 | ParseException(); 40 | 41 | ParseException(const std::string& msg); 42 | 43 | ParseException(const std::string& msg, const std::string& var); 44 | 45 | ParseException(const std::string& msg, double num); 46 | 47 | ~ParseException() throw() {} 48 | 49 | private: 50 | static std::string stringify(double num); 51 | }; 52 | 53 | } // namespace io 54 | } // namespace geos 55 | 56 | #endif // #ifndef GEOS_IO_PARSEEXCEPTION_H 57 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/io/WKBConstants.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: io/WKBConstants.java rev. 1.1 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_IO_WKBCONSTANTS_H 21 | #define GEOS_IO_WKBCONSTANTS_H 22 | 23 | namespace geos { 24 | namespace io { 25 | 26 | /// Constant values used by the WKB format 27 | namespace WKBConstants { 28 | 29 | /// Big Endian 30 | const int wkbXDR = 0; 31 | 32 | /// Little Endian 33 | const int wkbNDR = 1; 34 | 35 | const int wkbPoint = 1; 36 | const int wkbLineString = 2; 37 | const int wkbPolygon = 3; 38 | const int wkbMultiPoint = 4; 39 | const int wkbMultiLineString = 5; 40 | const int wkbMultiPolygon = 6; 41 | const int wkbGeometryCollection = 7; 42 | } 43 | 44 | } // namespace geos::io 45 | } // namespace geos 46 | 47 | #endif // #ifndef GEOS_IO_WKBCONSTANTS_H 48 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/io/Writer.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: ORIGINAL WORK to be used like java.io.Writer 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_IO_WRITER_H 21 | #define GEOS_IO_WRITER_H 22 | 23 | #include 24 | 25 | #include 26 | 27 | #ifdef _MSC_VER 28 | #pragma warning(push) 29 | #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 30 | #endif 31 | 32 | namespace geos { 33 | namespace io { 34 | 35 | class GEOS_DLL Writer { 36 | public: 37 | Writer(); 38 | void reserve(std::size_t capacity); 39 | ~Writer(); 40 | void write(const std::string& txt); 41 | const std::string& toString(); 42 | private: 43 | std::string str; 44 | }; 45 | 46 | } // namespace geos::io 47 | } // namespace geos 48 | 49 | #ifdef _MSC_VER 50 | #pragma warning(pop) 51 | #endif 52 | 53 | #endif // #ifndef GEOS_IO_WRITER_H 54 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/noding.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Kept for backward compatibility, avoid to include 17 | * directly, include instead. 18 | * 19 | **********************************************************************/ 20 | 21 | #ifndef GEOS_NODING_H 22 | #define GEOS_NODING_H 23 | 24 | //#include 25 | //#include 26 | //#include 27 | //#include 28 | //#include 29 | //#include 30 | //#include 31 | //#include 32 | //#include 33 | //#include 34 | //#include 35 | //#include 36 | //#include 37 | //#include 38 | 39 | namespace geos { 40 | 41 | /// Classes to compute nodings for arrangements of line segments and line segment sequences. 42 | namespace noding { // geos.noding 43 | 44 | } // namespace geos.noding 45 | } // namespace geos 46 | 47 | 48 | #endif 49 | 50 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/noding/MCIndexNoder.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | * Last port: noding/MCIndexNoder.java rev. 1.6 (JTS-1.9) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_NODINGMCINDEXNODER_INL 20 | #define GEOS_NODINGMCINDEXNODER_INL 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | #include 27 | 28 | namespace geos { 29 | namespace noding { // geos::noding 30 | 31 | INLINE index::SpatialIndex& 32 | MCIndexNoder::getIndex() 33 | { 34 | return index; 35 | } 36 | 37 | INLINE std::vector* 38 | MCIndexNoder::getNodedSubstrings() const 39 | { 40 | assert(nodedSegStrings); // must have colled computeNodes before! 41 | return NodedSegmentString::getNodedSubstrings(*nodedSegStrings); 42 | } 43 | 44 | } // namespace geos::noding 45 | } // namespace geos 46 | 47 | #endif // GEOS_NODINGMCINDEXNODER_INL 48 | 49 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/noding/NodableSegmentString.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | 16 | #ifndef GEOS_NODING_NODABLESEGMENTSTRING_H 17 | #define GEOS_NODING_NODABLESEGMENTSTRING_H 18 | 19 | #include 20 | #include // for inheritance 21 | 22 | namespace geos { 23 | namespace geom { 24 | class Coordinate; 25 | } 26 | } 27 | 28 | namespace geos { 29 | namespace noding { // geos::noding 30 | 31 | /** \brief 32 | * An interface for classes which support adding nodes to 33 | * a segment string. 34 | * 35 | * @author Martin Davis 36 | */ 37 | class GEOS_DLL NodableSegmentString : public SegmentString 38 | { 39 | private: 40 | protected: 41 | public: 42 | NodableSegmentString(const void* newContext) 43 | : 44 | SegmentString( newContext ) 45 | { } 46 | 47 | /** 48 | * Adds an intersection node for a given point and segment to this segment string. 49 | * 50 | * @param intPt the location of the intersection 51 | * @param segmentIndex the index of the segment containing the intersection 52 | */ 53 | //virtual void addIntersection( const geom::Coordinate * intPt, int segmentIndex) =0; 54 | }; 55 | 56 | } // namespace geos::noding 57 | } // namespace geos 58 | 59 | #endif // GEOS_NODING_NODABLESEGMENTSTRING_H 60 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/noding/snapround/HotPixel.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | * Last port: noding/snapround/HotPixel.java r320 (JTS-1.12) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_NODING_SNAPROUND_HOTPIXEL_INL 20 | #define GEOS_NODING_SNAPROUND_HOTPIXEL_INL 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | namespace geos { 27 | namespace noding { // geos::noding 28 | namespace snapround { // geos::noding::snapround 29 | 30 | INLINE double 31 | HotPixel::scale(double val) const 32 | { 33 | // Math.round 34 | //return round(val*scaleFactor); 35 | return util::round(val*scaleFactor); 36 | } 37 | 38 | INLINE void 39 | HotPixel::copyScaled(const geom::Coordinate& p, geom::Coordinate& pScaled) const 40 | { 41 | pScaled.x = scale(p.x); 42 | pScaled.y = scale(p.y); 43 | } 44 | 45 | } // namespace geos::noding::snapround 46 | } // namespace geos::noding 47 | } // namespace geos 48 | 49 | #endif // GEOS_NODING_SNAPROUND_HOTPIXEL_INL 50 | 51 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/nodingSnapround.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_NODING_SNAPROUND_H 17 | #define GEOS_NODING_SNAPROUND_H 18 | 19 | namespace geos { 20 | namespace noding { // geos.noding 21 | 22 | /// \brief 23 | /// Contains classes to implement the Snap Rounding algorithm for 24 | /// noding linestrings. 25 | namespace snapround { // geos.noding.snapround 26 | 27 | } // namespace geos.noding.snapround 28 | } // namespace geos.noding 29 | } // namespace geos 30 | 31 | //#include 32 | //#include 33 | //#include 34 | //#include 35 | 36 | #endif 37 | 38 | 39 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/opBuffer.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | #ifndef GEOS_OPBUFFER_H 17 | #define GEOS_OPBUFFER_H 18 | 19 | namespace geos { 20 | namespace operation { // geos.operation 21 | 22 | /// Provides classes for computing buffers of geometries 23 | namespace buffer { 24 | } // namespace geos.operation.buffer 25 | } // namespace geos.operation 26 | } // namespace geos 27 | 28 | #include 29 | 30 | // This is needed for enum values 31 | #include 32 | 33 | //#include 34 | //#include 35 | //#include 36 | //#include 37 | //#include 38 | 39 | #endif // ndef GEOS_OPBUFFER_H 40 | 41 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/opDistance.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_OPDISTANCE_H 17 | #define GEOS_OPDISTANCE_H 18 | 19 | namespace geos { 20 | namespace operation { // geos.operation 21 | 22 | /// Provides classes for computing the distance between geometries 23 | namespace distance { // geos.operation.distance 24 | 25 | } // namespace geos.operation.distance 26 | } // namespace geos.operation 27 | } // namespace geos 28 | 29 | //#include 30 | //#include 31 | #include 32 | //#include 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/opLinemerge.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_OPLINEMERGE_H 16 | #define GEOS_OPLINEMERGE_H 17 | 18 | namespace geos { 19 | namespace operation { // geos::operation 20 | 21 | /// Line merging package 22 | namespace linemerge { // geos::operation::linemerge 23 | 24 | } // namespace geos::operation::linemerge 25 | } // namespace geos::operation 26 | } // namespace geos 27 | 28 | //#include 29 | //#include 30 | //#include 31 | //#include 32 | #include 33 | //#include 34 | 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/opPolygonize.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | 16 | #ifndef GEOS_OPPOLYGONIZE_H 17 | #define GEOS_OPPOLYGONIZE_H 18 | 19 | namespace geos { 20 | namespace operation { // geos.operation 21 | namespace polygonize { // geos.operation.polygonize 22 | 23 | } // namespace geos.operation.polygonize 24 | } // namespace geos.operation 25 | } // namespace geos 26 | 27 | //#include 28 | //#include 29 | //#include 30 | //#include 31 | #include 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/opPredicate.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | #ifndef GEOS_OPPREDICATE_H 16 | #define GEOS_OPPREDICATE_H 17 | 18 | namespace geos { 19 | namespace operation { 20 | namespace predicate { 21 | 22 | } // namespace predicate 23 | } // namespace operation 24 | } // namespace geos 25 | 26 | //#include 27 | //#include 28 | //#include 29 | 30 | #endif // ifndef GEOS_OPPREDICATE_H 31 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/opValid.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_OPVALID_H 17 | #define GEOS_OPVALID_H 18 | 19 | namespace geos { 20 | namespace operation { // geos.operation 21 | 22 | /// Provides classes for testing the validity of geometries. 23 | namespace valid { // geos.operation.valid 24 | 25 | } // namespace geos.operation.valid 26 | } // namespace geos.operation 27 | } // namespace geos 28 | 29 | //#include 30 | //#include 31 | #include 32 | //#include 33 | //#include 34 | //#include 35 | //#include 36 | #include 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/operation.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | * Don't include this file, rather include from 17 | * 18 | **********************************************************************/ 19 | 20 | #ifndef GEOS_OPERATION_H 21 | #define GEOS_OPERATION_H 22 | 23 | namespace geos { 24 | 25 | /// Provides classes for implementing operations on geometries 26 | namespace operation { // geos.operation 27 | 28 | } // namespace geos.operation 29 | } // namespace geos 30 | 31 | #include 32 | #include 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/operation/overlay/MinimalEdgeRing.inl: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | * Last port: operation/overlay/MinimalEdgeRing.java rev. 1.13 (JTS-1.10) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_OP_OVERLAY_MINIMALEDGERING_INL 20 | #define GEOS_OP_OVERLAY_MINIMALEDGERING_INL 21 | 22 | #include 23 | 24 | #if GEOS_DEBUG 25 | #include 26 | #endif 27 | 28 | namespace geos { 29 | namespace operation { // geos::operation 30 | namespace overlay { // geos::operation::overlay 31 | 32 | INLINE void 33 | MinimalEdgeRing::setEdgeRing(geomgraph::DirectedEdge *de, geomgraph::EdgeRing *er) 34 | { 35 | de->setMinEdgeRing(er); 36 | } 37 | 38 | INLINE geomgraph::DirectedEdge* 39 | MinimalEdgeRing::getNext(geomgraph::DirectedEdge *de) 40 | { 41 | return de->getNextMin(); 42 | } 43 | 44 | INLINE 45 | MinimalEdgeRing::~MinimalEdgeRing() 46 | { 47 | #if GEOS_DEBUG 48 | std::cerr << "MinimalEdgeRing[" << this << "] dtor" << std::endl; 49 | #endif 50 | } 51 | 52 | } // namespace geos::operation::overlay 53 | } // namespace geos::operation 54 | } // namespace geos 55 | 56 | #endif // GEOS_OP_OVERLAY_MINIMALEDGERING_INL 57 | 58 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/operation/relate/RelateNodeFactory.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | * Last port: operation/relate/RelateNodeFactory.java rev. 1.11 (JTS-1.10) 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_OP_RELATE_RELATENODEFACTORY_H 20 | #define GEOS_OP_RELATE_RELATENODEFACTORY_H 21 | 22 | #include 23 | 24 | #include // for RelateNodeFactory inheritance 25 | 26 | // Forward declarations 27 | namespace geos { 28 | namespace geom { 29 | class Coordinate; 30 | } 31 | namespace geomgraph { 32 | class Node; 33 | } 34 | } 35 | 36 | 37 | namespace geos { 38 | namespace operation { // geos::operation 39 | namespace relate { // geos::operation::relate 40 | 41 | /** \brief 42 | * Used by the geomgraph::NodeMap in a RelateNodeGraph to create RelateNode objects. 43 | */ 44 | class GEOS_DLL RelateNodeFactory: public geomgraph::NodeFactory { 45 | public: 46 | geomgraph::Node* createNode(const geom::Coordinate &coord) const; 47 | static const geomgraph::NodeFactory &instance(); 48 | private: 49 | RelateNodeFactory() {} 50 | }; 51 | 52 | 53 | } // namespace geos:operation:relate 54 | } // namespace geos:operation 55 | } // namespace geos 56 | 57 | #endif // GEOS_OP_RELATE_RELATENODEFACTORY_H 58 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/planargraph.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005-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 | #ifndef GEOS_PLANARGRAPH_H 17 | #define GEOS_PLANARGRAPH_H 18 | 19 | namespace geos { 20 | 21 | /// Contains classes to implement a planar graph data structure. 22 | namespace planargraph { // geos::planargraph 23 | 24 | /// Planargraph algorithms 25 | namespace algorithm { // geos::planargraph::algorithm 26 | 27 | } // namespace geos::planargraph::algorithm 28 | } // namespace geos::planargraph 29 | } // namespace geos 30 | 31 | //#include 32 | //#include 33 | //#include 34 | //#include 35 | //#include 36 | #include 37 | #include 38 | //#include 39 | //#include 40 | 41 | #endif 42 | 43 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/platform.h.vc: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2004 Vivid Solutions Inc. 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 | * Manually created platform.h for use with x86 Microsoft Visual C++ 15 | */ 16 | 17 | #ifndef GEOS_PLATFORM_H 18 | #define GEOS_PLATFORM_H 19 | 20 | #ifndef _MSC_VER 21 | #error "This platform.h intended for use with MS Visual C++" 22 | #endif 23 | 24 | #ifndef WIN32 25 | #define WIN32 26 | #endif 27 | 28 | #ifndef NOMINMAX 29 | #define NOMINMAX 30 | #endif 31 | 32 | #include 33 | 34 | // We need M_PI, but on MSVC you need to define _USE_MATH_DEFINES before 35 | // including math.h to get it. If we are too late (math.h already included) 36 | // we will define it manually. 37 | #define _USE_MATH_DEFINES 38 | #include 39 | 40 | #ifndef M_PI 41 | #define M_PI 3.14159265358979323846 42 | #endif 43 | 44 | //Defines NaN for intel platforms 45 | #define DoubleNotANumber std::numeric_limits::quiet_NaN() 46 | 47 | #define ISNAN(x) _isnan(x) 48 | 49 | //Don't forget to define infinities 50 | #define DoubleInfinity std::numeric_limits::infinity() 51 | #define DoubleNegInfinity -std::numeric_limits::infinity() 52 | 53 | #define DoubleMax (std::numeric_limits::max)() 54 | 55 | #define FINITE(x) _finite(static_cast(x)) 56 | #define finite(x) _finite(static_cast(x)) 57 | 58 | typedef __int64 int64; 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/precision.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_PRECISION_H 17 | #define GEOS_PRECISION_H 18 | 19 | namespace geos { 20 | 21 | /// Provides classes for manipulating the precision model of Geometries 22 | namespace precision { // geos.precision 23 | 24 | } // namespace geos.precision 25 | } // namespace geos 26 | 27 | //#include 28 | #include 29 | //#include 30 | #include 31 | #include 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/spatialIndex.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #ifndef GEOS_INDEX_H 17 | #define GEOS_INDEX_H 18 | 19 | namespace geos { 20 | 21 | /// Provides classes for various kinds of spatial indexes. 22 | namespace index { 23 | 24 | } // namespace geos.index 25 | } // namespace geos 26 | 27 | #include 28 | #include 29 | 30 | #endif // GEOS_INDEX_H 31 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/triangulate/quadedge/LocateFailureException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/LocateFailureException.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_TRIANGULATE_QUADEDGE_LOCATEFAILUREEXCEPTION_H 20 | #define GEOS_TRIANGULATE_QUADEDGE_LOCATEFAILUREEXCEPTION_H 21 | 22 | #include 23 | 24 | #include 25 | 26 | namespace geos { 27 | namespace triangulate { //geos.triangulate 28 | namespace quadedge { //geos.triangulate.quadedge 29 | 30 | class GEOS_DLL LocateFailureException : public geos::util::GEOSException { 31 | public: 32 | LocateFailureException(std::string const&msg); 33 | }; 34 | 35 | } //namespace geos.triangulate.quadedge 36 | } //namespace geos.triangulate 37 | } //namespace goes 38 | 39 | #endif //GEOS_TRIANGULATE_QUADEDGE_LOCATEFAILUREEXCEPTION_H 40 | 41 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/triangulate/quadedge/QuadEdgeLocator.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/QuadEdgeLocator.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_TRIANGULATE_QUADEDGE_QUADEDGELOCATOR_H 20 | #define GEOS_TRIANGULATE_QUADEDGE_QUADEDGELOCATOR_H 21 | 22 | namespace geos { 23 | namespace triangulate { //geos.triangulate 24 | namespace quadedge { //geos.triangulate.quadedge 25 | 26 | class Vertex; 27 | class QuadEdge; 28 | 29 | /** 30 | * An interface for classes which locate an edge in a {@link QuadEdgeSubdivision} 31 | * which either contains a given {@link Vertex} V 32 | * or is an edge of a triangle which contains V. 33 | * Implementors may utilized different strategies for 34 | * optimizing locating containing edges/triangles. 35 | * 36 | * @author JTS: Martin Davis 37 | * @author Ben Campbell 38 | */ 39 | class QuadEdgeLocator { 40 | public: 41 | virtual ~QuadEdgeLocator() = 0; //not implemented 42 | virtual QuadEdge* locate(const Vertex &v) = 0; //not implemented 43 | }; 44 | 45 | } //namespace geos.triangulate.quadedge 46 | } //namespace geos.triangulate 47 | } //namespace goes 48 | 49 | #endif //GEOS_TRIANGULATE_QUADEDGE_QUADEDGELOCATOR_H 50 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/triangulate/quadedge/TriangleVisitor.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/TriangleVisitor.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #ifndef GEOS_TRIANGULATE_QUADEDGE_TRIANGLEVISITOR_H 20 | #define GEOS_TRIANGULATE_QUADEDGE_TRIANGLEVISITOR_H 21 | 22 | #include 23 | 24 | namespace geos { 25 | namespace triangulate { //geos.triangulate 26 | namespace quadedge { //geos.triangulate.quadedge 27 | 28 | /** 29 | * An interface for algorithms which process the triangles in a {@link QuadEdgeSubdivision}. 30 | * 31 | * @author JTS: Martin Davis 32 | * @author Benjamin Campbell 33 | */ 34 | class GEOS_DLL TriangleVisitor { 35 | public: 36 | /** 37 | * Visits the {@link QuadEdge}s of a triangle. 38 | * 39 | * @param triEdges an array of the 3 quad edges in a triangle (in CCW order) 40 | */ 41 | virtual void visit(QuadEdge* triEdges[3]) = 0; 42 | virtual ~TriangleVisitor() = 0 ; 43 | private: 44 | } ; 45 | 46 | } //namespace geos.triangulate.quadedge 47 | } //namespace geos.triangulate 48 | } //namespace goes 49 | 50 | #endif // GEOS_TRIANGULATE_QUADEDGE_TRIANGLEVISITOR_H 51 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/unload.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | 17 | #ifndef GEOS_UNLOAD_H 18 | #define GEOS_UNLOAD_H 19 | //xie add for realse static memory 2003,10,06 20 | namespace geos { 21 | namespace io { 22 | 23 | class GEOS_DLL Unload 24 | { 25 | private: 26 | Unload(void) {} 27 | ~Unload(void) {} 28 | public: 29 | static void Release(); 30 | }; 31 | 32 | } 33 | } 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | * Utility header to retain a bit of backward compatibility. 17 | * Try to avoid including this header directly. 18 | * 19 | **********************************************************************/ 20 | 21 | #ifndef GEOS_UTIL_H 22 | #define GEOS_UTIL_H 23 | 24 | //#include 25 | #include 26 | #include 27 | #include 28 | //#include 29 | //#include 30 | //#include 31 | #include 32 | //#include 33 | 34 | // 35 | // Private macros definition 36 | // 37 | 38 | namespace geos 39 | { 40 | template 41 | void ignore_unused_variable_warning(T const& ) {} 42 | } 43 | 44 | 45 | #endif // GEOS_UTIL_H 46 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/Assert.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_ASSERT_H 17 | #define GEOS_UTIL_ASSERT_H 18 | 19 | #include 20 | #include 21 | 22 | // Forward declarations 23 | namespace geos { 24 | namespace geom { 25 | class Coordinate; 26 | } 27 | } 28 | 29 | namespace geos { 30 | namespace util { // geos.util 31 | 32 | class GEOS_DLL Assert { 33 | public: 34 | 35 | static void isTrue(bool assertion, const std::string& message); 36 | 37 | static void isTrue(bool assertion) { 38 | isTrue(assertion, std::string()); 39 | } 40 | 41 | 42 | static void equals(const geom::Coordinate& expectedValue, 43 | const geom::Coordinate& actualValue, 44 | const std::string& message); 45 | 46 | static void equals(const geom::Coordinate& expectedValue, 47 | const geom::Coordinate& actualValue) 48 | { 49 | equals(expectedValue, actualValue, std::string()); 50 | } 51 | 52 | 53 | static void shouldNeverReachHere(const std::string& message); 54 | 55 | static void shouldNeverReachHere() { shouldNeverReachHere(std::string()); } 56 | }; 57 | 58 | } // namespace geos.util 59 | } // namespace geos 60 | 61 | 62 | #endif // GEOS_UTIL_ASSERT_H 63 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/AssertionFailedException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_ASSERTIONFAILEDEXCEPTION_H 17 | #define GEOS_UTIL_ASSERTIONFAILEDEXCEPTION_H 18 | 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | namespace geos { 25 | namespace util { // geos.util 26 | 27 | /** \class AssertionFailedException util.h geos.h 28 | * \brief Indicates a bug in GEOS code. 29 | */ 30 | class GEOS_DLL AssertionFailedException: public GEOSException { 31 | 32 | public: 33 | 34 | AssertionFailedException() 35 | : 36 | GEOSException("AssertionFailedException", "") 37 | {} 38 | 39 | AssertionFailedException(const std::string& msg) 40 | : 41 | GEOSException("AssertionFailedException", msg) 42 | {} 43 | 44 | ~AssertionFailedException() throw() {} 45 | }; 46 | 47 | } // namespace geos.util 48 | } // namespace geos 49 | 50 | 51 | #endif // GEOS_UTIL_ASSERTIONFAILEDEXCEPTION_H 52 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/CoordinateArrayFilter.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_COORDINATEARRAYFILTER_H 17 | #define GEOS_UTIL_COORDINATEARRAYFILTER_H 18 | 19 | #include 20 | #include 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | namespace geos { 27 | namespace util { // geos::util 28 | 29 | /** 30 | * A CoordinateFilter that adds read-only pointers 31 | * to every Coordinate in a Geometry to a given 32 | * vector. 33 | * 34 | * Last port: util/CoordinateArrayFilter.java rev. 1.15 35 | */ 36 | class GEOS_DLL CoordinateArrayFilter: public geom::CoordinateFilter { 37 | private: 38 | geom::Coordinate::ConstVect &pts; // target vector reference 39 | public: 40 | /** 41 | * Constructs a CoordinateArrayFilter. 42 | * 43 | * @param target The destination vector. 44 | */ 45 | CoordinateArrayFilter(geom::Coordinate::ConstVect& target) 46 | : 47 | pts(target) 48 | {} 49 | 50 | virtual ~CoordinateArrayFilter() {} 51 | 52 | virtual void filter_ro(const geom::Coordinate *coord) 53 | { 54 | pts.push_back(coord); 55 | } 56 | }; 57 | 58 | 59 | } // namespace geos.util 60 | } // namespace geos 61 | 62 | #endif // GEOS_UTIL_COORDINATEARRAYFILTER_H 63 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/IllegalArgumentException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_ILLEGALARGUMENTEXCEPTION_H 17 | #define GEOS_UTIL_ILLEGALARGUMENTEXCEPTION_H 18 | 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | namespace geos { 25 | namespace util { // geos::util 26 | 27 | /** 28 | * \brief Indicates one or more illegal arguments. 29 | * 30 | * This exception is thrown - for example - when 31 | * trying to apply set-theoretic methods to a 32 | * GeometryCollection object. 33 | */ 34 | class GEOS_DLL IllegalArgumentException: public GEOSException { 35 | public: 36 | IllegalArgumentException() 37 | : 38 | GEOSException("IllegalArgumentException", "") 39 | {} 40 | 41 | IllegalArgumentException(const std::string& msg) 42 | : 43 | GEOSException("IllegalArgumentException", msg) 44 | {} 45 | 46 | ~IllegalArgumentException() throw() {} 47 | }; 48 | 49 | } // namespace geos::util 50 | } // namespace geos 51 | 52 | 53 | #endif // GEOS_UTIL_ILLEGALARGUMENTEXCEPTION_H 54 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/IllegalStateException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 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 | #ifndef GEOS_UTIL_ILLEGALSTATEEXCEPTION_H 16 | #define GEOS_UTIL_ILLEGALSTATEEXCEPTION_H 17 | 18 | #include 19 | #include 20 | 21 | #include 22 | 23 | namespace geos { 24 | namespace util { // geos::util 25 | 26 | /// Indicates an illegal state 27 | class GEOS_DLL IllegalStateException: public GEOSException { 28 | public: 29 | IllegalStateException() 30 | : 31 | GEOSException("IllegalStateException", "") 32 | {} 33 | 34 | IllegalStateException(const std::string& msg) 35 | : 36 | GEOSException("IllegalStateException", msg) 37 | {} 38 | 39 | ~IllegalStateException() throw() {} 40 | }; 41 | 42 | } // namespace geos::util 43 | } // namespace geos 44 | 45 | 46 | #endif // GEOS_UTIL_ILLEGALSTATEEXCEPTION_H 47 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/Machine.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2009 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_MACHINE_H_INCLUDED 15 | #define GEOS_UTIL_MACHINE_H_INCLUDED 16 | 17 | /** 18 | * Check endianness of current machine. 19 | * @return 0 for big_endian | xdr; 1 == little_endian | ndr 20 | */ 21 | inline int getMachineByteOrder() 22 | { 23 | static int endian_check = 1; // don't modify !! 24 | return *((char *)&endian_check); 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/UnsupportedOperationException.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_UNSUPPORTEDOPERATIONEXCEPTION_H 17 | #define GEOS_UTIL_UNSUPPORTEDOPERATIONEXCEPTION_H 18 | 19 | #include 20 | 21 | #include 22 | 23 | #include 24 | 25 | namespace geos { 26 | namespace util { // geos::util 27 | 28 | /** 29 | * \class UnsupportedOperationException util.h geos.h 30 | * 31 | * \brief Indicates that the requested operation is unsupported. 32 | * 33 | * This exception is thrown - for example - when requesting the 34 | * X or Y member of an empty Point 35 | */ 36 | class GEOS_DLL UnsupportedOperationException: public GEOSException { 37 | public: 38 | UnsupportedOperationException() 39 | : 40 | GEOSException("UnsupportedOperationException", "") 41 | {} 42 | 43 | UnsupportedOperationException(const std::string& msg) 44 | : 45 | GEOSException("UnsupportedOperationException", msg) 46 | {} 47 | 48 | ~UnsupportedOperationException() throw() {} 49 | }; 50 | 51 | } // namespace geos::util 52 | } // namespace geos 53 | 54 | 55 | #endif // GEOS_UTIL_UNSUPPORTEDOPERATIONEXCEPTION_H 56 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/util/math.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #ifndef GEOS_UTIL_MATH_H 17 | #define GEOS_UTIL_MATH_H 18 | 19 | namespace geos { namespace util { 20 | 21 | /// Symmetric Rounding Algorithm 22 | double sym_round(double val); 23 | 24 | /// Asymmetric Rounding Algorithm 25 | double java_math_round(double val); 26 | 27 | /// Equivalent to Java Math.rint() 28 | double rint_vc(double val); 29 | 30 | /// Default rounding method for GEOS 31 | /// 32 | /// @note Always use this rounding method, to easy easy switching 33 | /// between different rounding method for the whole codebase. 34 | inline double round(double val) 35 | { 36 | return java_math_round(val); 37 | } 38 | 39 | }} // namespace geos::util 40 | 41 | #endif // GEOS_UTIL_MATH_H 42 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/version.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2007 Refractions Research Inc. 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 | #ifndef GEOS_VERSION_H_INCLUDED 15 | #define GEOS_VERSION_H_INCLUDED 16 | 17 | #ifndef GEOS_VERSION_MAJOR 18 | #define GEOS_VERSION_MAJOR 3 19 | #endif 20 | 21 | #ifndef GEOS_VERSION_MINOR 22 | #define GEOS_VERSION_MINOR 5 23 | #endif 24 | 25 | #ifndef GEOS_VERSION_PATCH 26 | #define GEOS_VERSION_PATCH 0 27 | #endif 28 | 29 | #ifndef GEOS_VERSION 30 | #define GEOS_VERSION "3.5.0" 31 | #endif 32 | 33 | #ifndef GEOS_JTS_PORT 34 | #define GEOS_JTS_PORT "1.13.0" 35 | #endif 36 | 37 | #endif // GEOS_VERSION_H_INCLUDED 38 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/version.h.in: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2007 Refractions Research Inc. 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 | #ifndef GEOS_VERSION_H_INCLUDED 15 | #define GEOS_VERSION_H_INCLUDED 16 | 17 | #ifndef GEOS_VERSION_MAJOR 18 | #define GEOS_VERSION_MAJOR @VERSION_MAJOR@ 19 | #endif 20 | 21 | #ifndef GEOS_VERSION_MINOR 22 | #define GEOS_VERSION_MINOR @VERSION_MINOR@ 23 | #endif 24 | 25 | #ifndef GEOS_VERSION_PATCH 26 | #define GEOS_VERSION_PATCH @VERSION_PATCH@ 27 | #endif 28 | 29 | #ifndef GEOS_VERSION 30 | #define GEOS_VERSION "@VERSION@" 31 | #endif 32 | 33 | #ifndef GEOS_JTS_PORT 34 | #define GEOS_JTS_PORT "@JTS_PORT@" 35 | #endif 36 | 37 | #endif // GEOS_VERSION_H_INCLUDED 38 | -------------------------------------------------------------------------------- /Pods/geos/include/geos/version.h.vc: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2007 Refractions Research Inc. 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 | * This is a version header dedicated for use with Microsoft Visual C++ 16 | * compiler. 17 | * NOTE: Remember to update this file manually when version 18 | * number changes. 19 | * 20 | **********************************************************************/ 21 | #ifndef GEOS_VERSION_H_INCLUDED 22 | #define GEOS_VERSION_H_INCLUDED 23 | 24 | #ifndef _MSC_VER 25 | #error "This version.h intended for use with MS Visual C++" 26 | #endif 27 | 28 | #ifndef GEOS_VERSION_MAJOR 29 | #define GEOS_VERSION_MAJOR 3 30 | #endif 31 | 32 | #ifndef GEOS_VERSION_MINOR 33 | #define GEOS_VERSION_MINOR 5 34 | #endif 35 | 36 | #ifndef GEOS_VERSION_PATCH 37 | #define GEOS_VERSION_PATCH 0 38 | #endif 39 | 40 | #ifndef GEOS_VERSION 41 | #define GEOS_VERSION "3.5.0" 42 | #endif 43 | 44 | #ifndef GEOS_JTS_PORT 45 | #define GEOS_JTS_PORT "1.13.0" 46 | #endif 47 | 48 | #endif // GEOS_VERSION_H_INCLUDED 49 | -------------------------------------------------------------------------------- /Pods/geos/src/algorithm/NotRepresentableException.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | 17 | #include 18 | 19 | namespace geos { 20 | namespace algorithm { // geos.algorithm 21 | 22 | NotRepresentableException::NotRepresentableException() 23 | : 24 | GEOSException( 25 | "NotRepresentableException", 26 | "Projective point not representable on the Cartesian plane.") 27 | 28 | { 29 | } 30 | 31 | NotRepresentableException::NotRepresentableException(std::string msg) 32 | : 33 | GEOSException( 34 | "NotRepresentableException", msg) 35 | { 36 | } 37 | 38 | } // namespace geos.algorithm 39 | } // namespace geos 40 | 41 | -------------------------------------------------------------------------------- /Pods/geos/src/algorithm/SimplePointInRing.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #include 17 | #include 18 | #include 19 | 20 | // Forward declarations 21 | namespace geos { 22 | namespace geom { 23 | class Coordinate; 24 | } 25 | } 26 | 27 | namespace geos { 28 | namespace algorithm { // geos.algorithm 29 | 30 | SimplePointInRing::SimplePointInRing(geom::LinearRing *ring){ 31 | pts=ring->getCoordinatesRO(); 32 | } 33 | 34 | SimplePointInRing::~SimplePointInRing(){ 35 | } 36 | 37 | bool SimplePointInRing::isInside(const geom::Coordinate& pt){ 38 | return CGAlgorithms::isPointInRing(pt,pts); 39 | } 40 | 41 | } // namespace geos.algorithm 42 | } // namespace geos 43 | -------------------------------------------------------------------------------- /Pods/geos/src/algorithm/locate/PointOnGeometryLocator.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | 16 | #include 17 | 18 | namespace geos { 19 | namespace algorithm { // geos::algorithm 20 | namespace locate { // geos::algorithm::locate 21 | 22 | } // geos::algorithm::locate 23 | } // geos::algorithm 24 | } // geos 25 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/Coordinate.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | #include // for ISNAN 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | #ifndef GEOS_INLINE 23 | # include 24 | #endif 25 | 26 | using namespace std; 27 | 28 | namespace geos { 29 | namespace geom { // geos::geom 30 | 31 | Coordinate Coordinate::nullCoord=Coordinate(DoubleNotANumber,DoubleNotANumber,DoubleNotANumber); 32 | 33 | Coordinate& 34 | Coordinate::getNull() 35 | { 36 | return nullCoord; 37 | } 38 | 39 | string 40 | Coordinate::toString() const 41 | { 42 | ostringstream s; 43 | s << std::setprecision(17) << *this; 44 | return s.str(); 45 | } 46 | 47 | std::ostream& operator<< (std::ostream& os, const Coordinate& c) 48 | { 49 | if ( ISNAN(c.z) ) 50 | { 51 | os << c.x << " " << c.y; 52 | } else { 53 | os << c.x << " " << c.y << " " << c.z; 54 | } 55 | return os; 56 | } 57 | 58 | } // namespace geos::geom 59 | } // namespace geos 60 | 61 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/CoordinateArraySequenceFactory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | #include 17 | #include 18 | 19 | #ifndef GEOS_INLINE 20 | # include "geos/geom/CoordinateArraySequenceFactory.inl" 21 | #endif 22 | 23 | namespace geos { 24 | namespace geom { // geos::geom 25 | 26 | static CoordinateArraySequenceFactory defaultCoordinateSequenceFactory; 27 | 28 | const CoordinateSequenceFactory * 29 | CoordinateArraySequenceFactory::instance() 30 | { 31 | return &defaultCoordinateSequenceFactory; 32 | } 33 | 34 | } // namespace geos::geom 35 | } // namespace geos 36 | 37 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/CoordinateSequenceFactory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | * Last port: geom/CoordinateSequenceFactory.java r591 (JTS-1.12) 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | 21 | namespace geos { 22 | namespace geom { // geos::geom 23 | 24 | CoordinateSequenceFactory::~CoordinateSequenceFactory() 25 | {} 26 | 27 | } // namespace geos::geom 28 | } 29 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/GeometryComponentFilter.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #include 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | namespace geos { 23 | namespace geom { // geos::geom 24 | 25 | void GeometryComponentFilter::filter_rw(Geometry *geom) 26 | { 27 | ::geos::ignore_unused_variable_warning(geom); 28 | assert(0); 29 | } 30 | 31 | void GeometryComponentFilter::filter_ro(const Geometry *geom) 32 | { 33 | ::geos::ignore_unused_variable_warning(geom); 34 | assert(0); 35 | } 36 | 37 | 38 | } // namespace geos::geom 39 | } // namespace geos 40 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/Location.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | #include 17 | 18 | #include 19 | 20 | using namespace std; 21 | 22 | namespace geos { 23 | namespace geom { // geos::geom 24 | 25 | /** 26 | * Converts the location value to a location symbol, for example, EXTERIOR => 'e'. 27 | * 28 | *@param locationValue either EXTERIOR, BOUNDARY, INTERIOR or NULL 29 | *@return either 'e', 'b', 'i' or '-' 30 | */ 31 | char Location::toLocationSymbol(int locationValue) { 32 | switch (locationValue) { 33 | case EXTERIOR: 34 | return 'e'; 35 | case BOUNDARY: 36 | return 'b'; 37 | case INTERIOR: 38 | return 'i'; 39 | case UNDEF: //NULL 40 | return '-'; 41 | default: 42 | ostringstream s; 43 | s<<"Unknown location value: "< 21 | 22 | namespace geos { 23 | namespace geom { // geos.geom 24 | namespace prep { // geos.geom.prep 25 | 26 | } // namespace geos.geom.prep 27 | } // namespace geos.geom 28 | } // namespace geos 29 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/prep/PreparedPoint.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | * Last port: geom/prep/PreparedPoint.java rev. 1.2 (JTS-1.10) 16 | * 17 | **********************************************************************/ 18 | 19 | 20 | #include 21 | #include 22 | 23 | namespace geos { 24 | namespace geom { // geos.geom 25 | namespace prep { // geos.geom.prep 26 | 27 | bool 28 | PreparedPoint::intersects(const geom::Geometry* g) const 29 | { 30 | if (! envelopesIntersect( g)) return false; 31 | 32 | const Point *pt_geom = dynamic_cast(g); 33 | if (pt_geom) 34 | return getGeometry().equals(g); 35 | 36 | // This avoids computing topology for the test geometry 37 | return isAnyTargetComponentInTest( g); 38 | } 39 | 40 | } // namespace geos.geom.prep 41 | } // namespace geos.geom 42 | } // namespace geos 43 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/prep/PreparedPolygonContains.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | * Last port: geom/prep/PreparedPolygonContains.java rev 1.5 (JTS-1.10) 16 | * 17 | **********************************************************************/ 18 | 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | namespace geos { 25 | namespace geom { // geos.geom 26 | namespace prep { // geos.geom.prep 27 | 28 | // 29 | // public: 30 | // 31 | PreparedPolygonContains::PreparedPolygonContains(const PreparedPolygon * const prepPoly) 32 | : AbstractPreparedPolygonContains( prepPoly) 33 | { 34 | } 35 | 36 | // 37 | // protected: 38 | // 39 | bool 40 | PreparedPolygonContains::fullTopologicalPredicate( const geom::Geometry * geom) 41 | { 42 | bool isContained = prepPoly->getGeometry().contains( geom); 43 | return isContained; 44 | } 45 | 46 | // 47 | // private: 48 | // 49 | } // namespace geos.geom.prep 50 | } // namespace geos.geom 51 | } // namespace geos 52 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/prep/PreparedPolygonCovers.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | * Last port: geom/prep/PreparedPolygonCovers.java rev 1.2 (JTS-1.10) 16 | * (2007-12-12) 17 | * 18 | **********************************************************************/ 19 | 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | namespace geos { 26 | namespace geom { // geos.geom 27 | namespace prep { // geos.geom.prep 28 | // 29 | // private: 30 | // 31 | 32 | // 33 | // protected: 34 | // 35 | bool 36 | PreparedPolygonCovers::fullTopologicalPredicate( const geom::Geometry * geom) 37 | { 38 | bool result = prepPoly->getGeometry().covers( geom); 39 | return result; 40 | } 41 | 42 | // 43 | // public: 44 | // 45 | 46 | } // namespace geos.geom.prep 47 | } // namespace geos.geom 48 | } // namespace geos 49 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/util/LinearComponentExtracter.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 17 | #include 18 | 19 | #include 20 | #include 21 | 22 | namespace geos { 23 | namespace geom { // geos.geom 24 | namespace util { // geos.geom.util 25 | 26 | LinearComponentExtracter::LinearComponentExtracter(std::vector &newComps) 27 | : 28 | comps(newComps) 29 | {} 30 | 31 | void LinearComponentExtracter::getLines(const Geometry &geom, std::vector &ret) 32 | { 33 | LinearComponentExtracter lce(ret); 34 | geom.apply_ro(&lce); 35 | } 36 | 37 | void LinearComponentExtracter::filter_rw(Geometry *geom) 38 | { 39 | if ( const LineString *ls=dynamic_cast(geom) ) 40 | comps.push_back(ls); 41 | } 42 | 43 | void LinearComponentExtracter::filter_ro(const Geometry *geom) 44 | { 45 | if ( const LineString *ls=dynamic_cast(geom) ) 46 | comps.push_back(ls); 47 | } 48 | 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/util/PointExtracter.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | 23 | namespace geos { 24 | namespace geom { // geos.geom 25 | namespace util { // geos.geom.util 26 | 27 | 28 | void PointExtracter::getPoints(const Geometry &geom, Point::ConstVect &ret) 29 | { 30 | PointExtracter pe(ret); 31 | geom.apply_ro(&pe); 32 | } 33 | 34 | /** 35 | * Constructs a PointExtracterFilter with a list in which 36 | * to store Points found. 37 | */ 38 | PointExtracter::PointExtracter(Point::ConstVect& newComps) 39 | : 40 | comps(newComps) 41 | {} 42 | 43 | void PointExtracter::filter_rw(Geometry *geom) 44 | { 45 | if ( const Point *p=dynamic_cast(geom) ) 46 | comps.push_back(p); 47 | } 48 | 49 | void PointExtracter::filter_ro(const Geometry *geom) 50 | { 51 | if ( const Point *p=dynamic_cast(geom) ) 52 | comps.push_back(p); 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/util/PolygonExtracter.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | 23 | namespace geos { 24 | namespace geom { // geos.geom 25 | namespace util { // geos.geom.util 26 | 27 | void PolygonExtracter::getPolygons(const Geometry &geom, std::vector& ret) 28 | { 29 | PolygonExtracter pe(ret); 30 | geom.apply_ro(&pe); 31 | } 32 | 33 | PolygonExtracter::PolygonExtracter(std::vector& newComps) 34 | : 35 | comps(newComps) 36 | {} 37 | 38 | void PolygonExtracter::filter_rw(Geometry *geom) { 39 | if ( const Polygon *p=dynamic_cast(geom) ) 40 | { 41 | comps.push_back(p); 42 | } 43 | } 44 | 45 | void PolygonExtracter::filter_ro(const Geometry *geom) 46 | { 47 | if ( const Polygon *p=dynamic_cast(geom) ) 48 | { 49 | comps.push_back(p); 50 | } 51 | } 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Pods/geos/src/geom/util/ShortCircuitedGeometryVisitor.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 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 | * Last port: geom/util/ShortCircuitedGeometryVisitor.java rev. 1.1 (JTS-1.7) 16 | * 17 | **********************************************************************/ 18 | 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | using namespace geos::geom; 25 | 26 | namespace geos { 27 | namespace geom { // geos.geom 28 | namespace util { // geos.geom.util 29 | 30 | void 31 | ShortCircuitedGeometryVisitor::applyTo(const Geometry &geom) 32 | { 33 | for (unsigned int i=0, n=geom.getNumGeometries(); i(element)) 37 | { 38 | applyTo(*element); 39 | } 40 | else 41 | { 42 | // calls the abstract virtual 43 | visit(*element); 44 | if (isDone()) done = true; 45 | } 46 | 47 | if ( done ) return; 48 | } 49 | } 50 | 51 | 52 | } // namespace geos.geom.util 53 | } // namespace geos.geom 54 | } // namespace geos 55 | 56 | -------------------------------------------------------------------------------- /Pods/geos/src/geomgraph/NodeFactory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | * Last port: geomgraph/NodeFactory.java rev. 1.3 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | 23 | using namespace geos::geom; 24 | 25 | namespace geos { 26 | namespace geomgraph { // geos.geomgraph 27 | 28 | Node * 29 | NodeFactory::createNode(const Coordinate &coord) const 30 | { 31 | return new Node(coord,NULL); 32 | } 33 | 34 | const NodeFactory & 35 | NodeFactory::instance() 36 | { 37 | static const NodeFactory nf; 38 | return nf; 39 | } 40 | 41 | 42 | } // namespace geos.geomgraph 43 | } // namespace geos 44 | -------------------------------------------------------------------------------- /Pods/geos/src/geomgraph/Position.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | * Last port: geomgraph/Position.java rev. 1.4 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | 22 | #ifndef GEOS_DEBUG 23 | #define GEOS_DEBUG 0 24 | #endif 25 | 26 | #ifdef GEOS_DEBUG 27 | #include 28 | #endif 29 | 30 | namespace geos { 31 | namespace geomgraph { // geos.geomgraph 32 | 33 | /** 34 | * Returns LEFT if the position is RIGHT, RIGHT if the position is LEFT, or the position 35 | * otherwise. 36 | */ 37 | int Position::opposite(int position){ 38 | if (position==LEFT) return RIGHT; 39 | if (position==RIGHT) return LEFT; 40 | #if GEOS_DEBUG 41 | std::cerr<<"Position::opposite: position is neither LEFT ("< 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | //#include 26 | 27 | namespace geos { 28 | namespace index { // geos.index 29 | namespace chain { // geos.index.chain 30 | 31 | void 32 | MonotoneChainOverlapAction::overlap(MonotoneChain& mc1, size_t start1, 33 | MonotoneChain& mc2, size_t start2) 34 | { 35 | mc1.getLineSegment(start1, overlapSeg1); 36 | mc2.getLineSegment(start2, overlapSeg2); 37 | overlap(overlapSeg1, overlapSeg2); 38 | } 39 | 40 | } // namespace geos.index.chain 41 | } // namespace geos.index 42 | } // namespace geos 43 | -------------------------------------------------------------------------------- /Pods/geos/src/index/chain/MonotoneChainSelectAction.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: index/chain/MonotoneChainSelectAction.java rev. 1.6 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | 26 | namespace geos { 27 | namespace index { // geos.index 28 | namespace chain { // geos.index.chain 29 | 30 | void 31 | MonotoneChainSelectAction::select(MonotoneChain& mc, unsigned int start) 32 | { 33 | mc.getLineSegment(start, selectedSegment); 34 | 35 | select(selectedSegment); 36 | } 37 | 38 | } // namespace geos.index.chain 39 | } // namespace geos.index 40 | } // namespace geos 41 | -------------------------------------------------------------------------------- /Pods/geos/src/index/intervalrtree/IntervalRTreeBranchNode.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | #include 17 | 18 | 19 | namespace geos { 20 | namespace index { 21 | namespace intervalrtree { 22 | // 23 | // private: 24 | // 25 | 26 | // 27 | // protected: 28 | // 29 | 30 | // 31 | // public: 32 | // 33 | 34 | 35 | void 36 | IntervalRTreeBranchNode::query( double queryMin, double queryMax, index::ItemVisitor * visitor) const 37 | { 38 | if (! intersects(queryMin, queryMax)) 39 | return; 40 | 41 | if (node1) 42 | node1->query( queryMin, queryMax, visitor); 43 | 44 | if (node2) 45 | node2->query( queryMin, queryMax, visitor); 46 | } 47 | 48 | 49 | } // geos::intervalrtree 50 | } // geos::index 51 | } // geos 52 | -------------------------------------------------------------------------------- /Pods/geos/src/index/intervalrtree/IntervalRTreeLeafNode.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | #include 17 | 18 | 19 | namespace geos { 20 | namespace index { 21 | namespace intervalrtree { 22 | // 23 | // private: 24 | // 25 | 26 | // 27 | // protected: 28 | // 29 | 30 | // 31 | // public: 32 | // 33 | void 34 | IntervalRTreeLeafNode::query( double queryMin, double queryMax, index::ItemVisitor * visitor) const 35 | { 36 | if (! intersects( queryMin, queryMax)) 37 | return; 38 | 39 | visitor->visitItem( item); 40 | } 41 | 42 | } // geos::intervalrtree 43 | } // geos::index 44 | } // geos 45 | -------------------------------------------------------------------------------- /Pods/geos/src/index/intervalrtree/IntervalRTreeNode.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | 17 | 18 | namespace geos { 19 | namespace index { 20 | namespace intervalrtree { 21 | // 22 | // private: 23 | // 24 | 25 | // 26 | // protected: 27 | // 28 | 29 | // 30 | // public: 31 | // 32 | 33 | } // geos::intervalrtree 34 | } // geos::index 35 | } // geos 36 | -------------------------------------------------------------------------------- /Pods/geos/src/index/quadtree/IntervalSize.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: index/quadtree/IntervalSize.java rev 1.7 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | 23 | #include 24 | #include 25 | 26 | using namespace std; 27 | 28 | namespace geos { 29 | namespace index { // geos.index 30 | namespace quadtree { // geos.index.quadtree 31 | 32 | /* public static */ 33 | bool 34 | IntervalSize::isZeroWidth(double mn, double mx) 35 | { 36 | double width = mx - mn; 37 | if (width == 0.0) return true; 38 | 39 | double maxAbs = max(fabs(mn), fabs(mx)); 40 | double scaledInterval = width / maxAbs; 41 | int level = DoubleBits::exponent(scaledInterval); 42 | return level <= MIN_BINARY_EXPONENT; 43 | } 44 | 45 | } // namespace geos.index.quadtree 46 | } // namespace geos.index 47 | } // namespace geos 48 | -------------------------------------------------------------------------------- /Pods/geos/src/index/strtree/Interval.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #include 17 | //#include 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | using namespace std; 24 | 25 | namespace geos { 26 | namespace index { // geos.index 27 | namespace strtree { // geos.index.strtree 28 | 29 | Interval::Interval(double newMin,double newMax) 30 | { 31 | assert(newMin<=newMax); 32 | imin=newMin; 33 | imax=newMax; 34 | } 35 | 36 | double 37 | Interval::getCentre() 38 | { 39 | return (imin+imax)/2; 40 | } 41 | 42 | Interval* 43 | Interval::expandToInclude(const Interval *other) 44 | { 45 | imax=max(imax,other->imax); 46 | imin=min(imin,other->imin); 47 | return this; 48 | } 49 | 50 | bool 51 | Interval::intersects(const Interval *other) const 52 | { 53 | return !(other->imin>imax || other->imaximin && imax==other->imax; 59 | } 60 | 61 | } // namespace geos.index.strtree 62 | } // namespace geos.index 63 | } // namespace geos 64 | 65 | -------------------------------------------------------------------------------- /Pods/geos/src/index/strtree/ItemBoundable.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #include 17 | 18 | namespace geos { 19 | namespace index { // geos.index 20 | namespace strtree { // geos.index.strtree 21 | 22 | ItemBoundable::ItemBoundable(const void* newBounds, void* newItem) : 23 | bounds(newBounds), item(newItem) 24 | { 25 | } 26 | 27 | ItemBoundable::~ItemBoundable() 28 | { 29 | } 30 | 31 | const void* 32 | ItemBoundable::getBounds() const { 33 | return bounds; 34 | } 35 | 36 | void* ItemBoundable::getItem() const { 37 | return item; 38 | } 39 | 40 | } // namespace geos.index.strtree 41 | } // namespace geos.index 42 | } // namespace geos 43 | 44 | -------------------------------------------------------------------------------- /Pods/geos/src/index/sweepline/SweepLineInterval.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | **********************************************************************/ 15 | 16 | #include 17 | 18 | namespace geos { 19 | namespace index { // geos.index 20 | namespace sweepline { // geos.index.sweepline 21 | 22 | SweepLineInterval::SweepLineInterval(double newMin, double newMax, void* newItem) 23 | { 24 | min=newMinnewMin?newMax:newMin; 26 | item=newItem; 27 | } 28 | 29 | double 30 | SweepLineInterval::getMin() 31 | { 32 | return min; 33 | } 34 | 35 | double 36 | SweepLineInterval::getMax() 37 | { 38 | return max; 39 | } 40 | 41 | void* 42 | SweepLineInterval::getItem() 43 | { 44 | return item; 45 | } 46 | 47 | } // namespace geos.index.sweepline 48 | } // namespace geos.index 49 | } // namespace geos 50 | 51 | -------------------------------------------------------------------------------- /Pods/geos/src/io/ByteOrderDataInStream.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 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 | * Last port: io/ByteOrderDataInStream.java rev. 1.1 (JTS-1.10) 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | 21 | #ifndef GEOS_INLINE 22 | #include 23 | #endif 24 | 25 | namespace geos { 26 | namespace io { // geos::io 27 | 28 | } // namespace geos::io 29 | } // namespace geos 30 | 31 | -------------------------------------------------------------------------------- /Pods/geos/src/io/CLocalizer.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2008 Sean Gillies 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 | * Last port: ORIGINAL WORK 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | 21 | #include 22 | #include 23 | 24 | using namespace std; 25 | 26 | namespace geos { 27 | namespace io { 28 | 29 | CLocalizer::CLocalizer() 30 | { 31 | char* p = std::setlocale(LC_NUMERIC, NULL); 32 | if (0 != p) 33 | { 34 | saved_locale = p; 35 | } 36 | std::setlocale(LC_NUMERIC, "C"); 37 | } 38 | 39 | CLocalizer::~CLocalizer() 40 | { 41 | std::setlocale(LC_NUMERIC, saved_locale.c_str()); 42 | } 43 | 44 | } // namespace geos.io 45 | } // namespace geos 46 | 47 | -------------------------------------------------------------------------------- /Pods/geos/src/io/ParseException.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: io/ParseException.java rev. 1.13 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | using namespace std; 25 | 26 | namespace geos { 27 | namespace io { // geos.io 28 | 29 | ParseException::ParseException() 30 | : 31 | GEOSException("ParseException", "") 32 | { 33 | } 34 | 35 | ParseException::ParseException(const string& msg) 36 | : 37 | GEOSException("ParseException", msg) 38 | { 39 | } 40 | 41 | ParseException::ParseException(const string& msg, const string& var) 42 | : 43 | GEOSException("ParseException", msg+": '"+var+"'") 44 | { 45 | } 46 | 47 | ParseException::ParseException(const string& msg, double num) 48 | : 49 | GEOSException("ParseException", msg+": '"+stringify(num)+"'") 50 | { 51 | } 52 | 53 | string 54 | ParseException::stringify(double num) 55 | { 56 | stringstream ss; 57 | ss< 17 | #include 18 | #include 19 | 20 | namespace geos { 21 | namespace io { // geos.io 22 | 23 | /*public static*/ 24 | void Unload::Release() 25 | { 26 | //delete geom::Geometry::INTERNAL_GEOMETRY_FACTORY; 27 | } 28 | 29 | } // namespace geos.io 30 | } //namespace geos 31 | 32 | -------------------------------------------------------------------------------- /Pods/geos/src/io/Writer.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: ORIGINAL WORK to be used like java.io.Writer 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | 23 | using namespace std; 24 | 25 | namespace geos { 26 | namespace io { // geos.io 27 | 28 | Writer::Writer() 29 | { 30 | } 31 | 32 | void 33 | Writer::reserve(std::size_t capacity) 34 | { 35 | str.reserve(capacity); 36 | } 37 | 38 | Writer::~Writer() 39 | { 40 | } 41 | 42 | void 43 | Writer::write(const std::string& txt) 44 | { 45 | str.append(txt); 46 | } 47 | 48 | const std::string& 49 | Writer::toString() 50 | { 51 | return str; 52 | } 53 | 54 | } // namespace geos.io 55 | } // namespace geos 56 | -------------------------------------------------------------------------------- /Pods/geos/src/noding/SegmentString.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2011 Sandro Santilli 7 | * Copyright (C) 2005-2006 Refractions Research Inc. 8 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 9 | * 10 | * This is free software; you can redistribute and/or modify it under 11 | * the terms of the GNU Lesser General Licence as published 12 | * by the Free Software Foundation. 13 | * See the COPYING file for more information. 14 | * 15 | ********************************************************************** 16 | * 17 | * Last port: noding/SegmentString.java r430 (JTS-1.12+) 18 | * 19 | **********************************************************************/ 20 | 21 | #include 22 | //#include 23 | //#include 24 | //#include 25 | //#include 26 | //#include 27 | //#include 28 | //#include 29 | 30 | #ifndef GEOS_DEBUG 31 | #define GEOS_DEBUG 0 32 | #endif 33 | 34 | #include 35 | #include 36 | 37 | using namespace geos::algorithm; 38 | using namespace geos::geom; 39 | 40 | namespace geos { 41 | namespace noding { // geos.noding 42 | 43 | std::ostream& operator<< (std::ostream& os, const SegmentString& ss) 44 | { 45 | return ss.print(os); 46 | } 47 | 48 | std::ostream& 49 | SegmentString::print(std::ostream& os) const 50 | { 51 | os << "SegmentString" << std::endl; 52 | return os; 53 | } 54 | 55 | } // namespace geos.noding 56 | } // namespace geos 57 | 58 | -------------------------------------------------------------------------------- /Pods/geos/src/noding/SegmentStringUtil.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | 16 | #include 17 | 18 | namespace geos { 19 | namespace noding { // geos::noding 20 | 21 | } // geos::noding 22 | } // geos 23 | -------------------------------------------------------------------------------- /Pods/geos/src/operation/linemerge/LineMergeEdge.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: operation/linemerge/LineMergeEdge.java r378 (JTS-1.12) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | 22 | using namespace geos::geom; 23 | 24 | namespace geos { 25 | namespace operation { // geos.operation 26 | namespace linemerge { // geos.operation.linemerge 27 | 28 | /** 29 | * Constructs a LineMergeEdge with vertices given by the specified LineString. 30 | */ 31 | LineMergeEdge::LineMergeEdge(const LineString *newLine): 32 | line(newLine) 33 | { 34 | //line=newLine; 35 | } 36 | 37 | /** 38 | * Returns the LineString specifying the vertices of this edge. 39 | */ 40 | const LineString * 41 | LineMergeEdge::getLine() const { 42 | return line; 43 | } 44 | 45 | } // namespace geos.operation.linemerge 46 | } // namespace geos.operation 47 | } // namespace geos 48 | -------------------------------------------------------------------------------- /Pods/geos/src/operation/overlay/MinimalEdgeRing.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | * Last port: operation/overlay/MinimalEdgeRing.java rev. 1.13 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | 23 | #ifndef GEOS_INLINE 24 | #include 25 | #endif 26 | 27 | #ifndef GEOS_DEBUG 28 | #define GEOS_DEBUG 0 29 | #endif 30 | 31 | #if GEOS_DEBUG 32 | #include 33 | #endif 34 | 35 | namespace geos { 36 | namespace operation { // geos.operation 37 | namespace overlay { // geos.operation.overlay 38 | 39 | MinimalEdgeRing::MinimalEdgeRing(geomgraph::DirectedEdge *start, 40 | const geom::GeometryFactory *geometryFactory) 41 | : 42 | geomgraph::EdgeRing(start, geometryFactory) 43 | { 44 | computePoints(start); 45 | computeRing(); 46 | #if GEOS_DEBUG 47 | std::cerr << "MinimalEdgeRing[" << this << "] ctor" << std::endl; 48 | #endif 49 | } 50 | 51 | } // namespace geos.operation.overlay 52 | } // namespace geos.operation 53 | } // namespace geos 54 | 55 | -------------------------------------------------------------------------------- /Pods/geos/src/operation/overlay/OverlayNodeFactory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | * Last port: operation/overlay/OverlayNodeFactory.java rev. 1.11 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | using namespace geos::geomgraph; 25 | 26 | namespace geos { 27 | namespace operation { // geos.operation 28 | namespace overlay { // geos.operation.overlay 29 | 30 | Node* 31 | OverlayNodeFactory::createNode(const geom::Coordinate &coord) const 32 | { 33 | return new Node(coord, new DirectedEdgeStar()); 34 | } 35 | 36 | const NodeFactory & 37 | OverlayNodeFactory::instance() 38 | { 39 | static OverlayNodeFactory onf; 40 | return onf; 41 | } 42 | 43 | } // namespace geos.operation.overlay 44 | } // namespace geos.operation 45 | } // namespace geos 46 | 47 | -------------------------------------------------------------------------------- /Pods/geos/src/operation/polygonize/PolygonizeEdge.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2005-2006 Refractions Research Inc. 7 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 8 | * 9 | * This is free software; you can redistribute and/or modify it under 10 | * the terms of the GNU Lesser General Public Licence as published 11 | * by the Free Software Foundation. 12 | * See the COPYING file for more information. 13 | * 14 | ********************************************************************** 15 | * 16 | * Last port: operation/polygonize/PolygonizeEdge.java rev. 1.3 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | 21 | #include 22 | 23 | using namespace geos::geom; 24 | 25 | namespace geos { 26 | namespace operation { // geos.operation 27 | namespace polygonize { // geos.operation.polygonize 28 | 29 | PolygonizeEdge::PolygonizeEdge(const LineString *newLine) { 30 | line=newLine; 31 | } 32 | 33 | const LineString * 34 | PolygonizeEdge::getLine() { 35 | return line; 36 | } 37 | 38 | } // namespace geos.operation.polygonize 39 | } // namespace geos.operation 40 | } // namespace geos 41 | -------------------------------------------------------------------------------- /Pods/geos/src/operation/relate/RelateNodeFactory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 7 | * Copyright (C) 2005 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 | * Last port: operation/relate/RelateNodeFactory.java rev. 1.11 (JTS-1.10) 17 | * 18 | **********************************************************************/ 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | using namespace geos::geom; 25 | using namespace geos::geomgraph; 26 | 27 | namespace geos { 28 | namespace operation { // geos.operation 29 | namespace relate { // geos.operation.relate 30 | 31 | Node* 32 | RelateNodeFactory::createNode(const Coordinate &coord) const 33 | { 34 | return new RelateNode(coord, new EdgeEndBundleStar()); 35 | } 36 | 37 | const NodeFactory & 38 | RelateNodeFactory::instance() 39 | { 40 | static const RelateNodeFactory rnf; 41 | return rnf; 42 | } 43 | 44 | 45 | } // namespace geos.operation.relate 46 | } // namespace geos.operation 47 | } // namespace geos 48 | 49 | -------------------------------------------------------------------------------- /Pods/geos/src/planargraph/Subgraph.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2006 Refractions Research Inc. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | * Last port: planargraph/Subgraph.java rev. 1.3 (JTS-1.7) 14 | * 15 | **********************************************************************/ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #include 22 | #include 23 | 24 | using namespace std; 25 | 26 | namespace geos { 27 | namespace planargraph { 28 | 29 | pair 30 | Subgraph::add(Edge *e) 31 | { 32 | pair p = edges.insert(e); 33 | if (!p.second) return p; 34 | 35 | dirEdges.push_back(e->getDirEdge(0)); 36 | dirEdges.push_back(e->getDirEdge(1)); 37 | nodeMap.add(e->getDirEdge(0)->getFromNode()); 38 | nodeMap.add(e->getDirEdge(1)->getFromNode()); 39 | 40 | return p; 41 | } 42 | 43 | } // namespace planargraph 44 | } // namespace geos 45 | 46 | -------------------------------------------------------------------------------- /Pods/geos/src/triangulate/quadedge/LastFoundQuadEdgeLocator.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/LastFoundQuadEdgeLocator.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | #include 21 | 22 | namespace geos { 23 | namespace triangulate { //geos.triangulate 24 | namespace quadedge { //geos.triangulate.quadedge 25 | 26 | LastFoundQuadEdgeLocator::LastFoundQuadEdgeLocator(QuadEdgeSubdivision *subdiv) : 27 | subdiv(subdiv), lastEdge(NULL) 28 | { 29 | } 30 | 31 | void 32 | LastFoundQuadEdgeLocator::init() 33 | { 34 | lastEdge = findEdge(); 35 | } 36 | 37 | QuadEdge* 38 | LastFoundQuadEdgeLocator::findEdge() 39 | { 40 | // assume there is an edge 41 | return *(subdiv->getEdges().begin()); 42 | } 43 | 44 | QuadEdge* 45 | LastFoundQuadEdgeLocator::locate(const Vertex &v) 46 | { 47 | if (!lastEdge || !lastEdge->isLive()) { 48 | init(); 49 | } 50 | 51 | QuadEdge *e = subdiv->locateFromEdge(v, *lastEdge); 52 | lastEdge = e; 53 | return e; 54 | } 55 | 56 | } //namespace geos.triangulate.quadedge 57 | } //namespace geos.triangulate 58 | } //namespace goes 59 | 60 | -------------------------------------------------------------------------------- /Pods/geos/src/triangulate/quadedge/LocateFailureException.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/LocateFailureException.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | 21 | namespace geos { 22 | namespace triangulate { //geos.triangulate 23 | namespace quadedge { //geos.triangulate.quadedge 24 | 25 | LocateFailureException::LocateFailureException(std::string const&msg) 26 | { 27 | util::GEOSException("LocateFailureException", msg); 28 | } 29 | 30 | } //namespace geos.triangulate.quadedge 31 | } //namespace geos.triangulate 32 | } //namespace goes 33 | 34 | -------------------------------------------------------------------------------- /Pods/geos/src/triangulate/quadedge/QuadEdgeLocator.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/QuadEdgeLocator.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | 21 | namespace geos { 22 | namespace triangulate { //geos.triangulate 23 | namespace quadedge { //geos.triangulate.quadedge 24 | 25 | QuadEdgeLocator::~QuadEdgeLocator() {} 26 | 27 | } //namespace geos.triangulate.quadedge 28 | } //namespace geos.triangulate 29 | } //namespace goes 30 | 31 | -------------------------------------------------------------------------------- /Pods/geos/src/triangulate/quadedge/TriangleVisitor.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Excensus LLC. 7 | * 8 | * This is free software; you can redistribute and/or modify it under 9 | * the terms of the GNU Lesser General Licence as published 10 | * by the Free Software Foundation. 11 | * See the COPYING file for more information. 12 | * 13 | ********************************************************************** 14 | * 15 | * Last port: triangulate/quadedge/TriangleVisitor.java r524 16 | * 17 | **********************************************************************/ 18 | 19 | #include 20 | 21 | namespace geos { 22 | namespace triangulate { //geos.triangulate 23 | namespace quadedge { //geos.triangulate.quadedge 24 | 25 | TriangleVisitor::~TriangleVisitor() {} 26 | 27 | } //namespace geos.triangulate.quadedge 28 | } //namespace geos.triangulate 29 | } //namespace goes 30 | 31 | -------------------------------------------------------------------------------- /Pods/geos/src/util/Assert.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2001-2002 Vivid Solutions Inc. 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 | #include 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | using std::string; 22 | using namespace geos::geom; 23 | 24 | namespace geos { 25 | namespace util { // geos.util 26 | 27 | void 28 | Assert::isTrue(bool assertion, const string& message) 29 | { 30 | if (!assertion) { 31 | if (message.empty()) { 32 | throw AssertionFailedException(); 33 | } else { 34 | throw AssertionFailedException(message); 35 | } 36 | } 37 | } 38 | 39 | void 40 | Assert::equals(const Coordinate& expectedValue, 41 | const Coordinate& actualValue, const string& message) 42 | { 43 | if (!(actualValue==expectedValue)) { 44 | throw AssertionFailedException("Expected " + expectedValue.toString() + " but encountered " 45 | + actualValue.toString() + (!message.empty() ? ": " + message : "")); 46 | } 47 | } 48 | 49 | 50 | void Assert::shouldNeverReachHere(const string& message) { 51 | throw AssertionFailedException("Should never reach here" 52 | + (!message.empty() ? ": " + message : "")); 53 | } 54 | 55 | } // namespace geos.util 56 | } // namespace geos 57 | -------------------------------------------------------------------------------- /Pods/geos/src/util/Interrupt.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * 3 | * GEOS - Geometry Engine Open Source 4 | * http://geos.osgeo.org 5 | * 6 | * Copyright (C) 2012 Sandro Santilli 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 | #include 16 | #include // for inheritance 17 | 18 | namespace { 19 | /* Could these be portably stored in thread-specific space ? */ 20 | bool requested = false; 21 | 22 | geos::util::Interrupt::Callback *callback = 0; 23 | } 24 | 25 | namespace geos { 26 | namespace util { // geos::util 27 | 28 | class GEOS_DLL InterruptedException: public GEOSException { 29 | public: 30 | InterruptedException() : 31 | GEOSException("InterruptedException", "Interrupted!") {} 32 | }; 33 | 34 | void Interrupt::request() { requested = true; } 35 | 36 | void Interrupt::cancel() { requested = false; } 37 | 38 | bool Interrupt::check() { return requested; } 39 | 40 | Interrupt::Callback* Interrupt::registerCallback(Interrupt::Callback *cb) { 41 | Callback* prev = callback; 42 | callback = cb; 43 | return prev; 44 | } 45 | 46 | void Interrupt::process() { 47 | if ( callback ) (*callback)(); 48 | if ( requested ) { 49 | requested = false; 50 | interrupt(); 51 | } 52 | } 53 | 54 | 55 | void 56 | Interrupt::interrupt() { 57 | requested = false; 58 | throw InterruptedException(); 59 | } 60 | 61 | 62 | } // namespace geos::util 63 | } // namespace geos 64 | 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SwiftVectorTiles 2 | A Swift encoder for vector tiles according to the [Mapbox vector tile spec](https://github.com/mapbox/vector-tile-spec) 3 | 4 | ### Acknowledgements 5 | * [Java Vector Tiles](https://github.com/ElectronicChartCentre/java-vector-tile) 6 | * [GEOS & JTS](https://trac.osgeo.org/geos/) 7 | * [Mapbox Vector Tile Spec](https://github.com/mapbox/vector-tile-spec) 8 | * [Swift Google Protocol Buffers](http://protobuf.io/#swift) 9 | 10 | ### Status 11 | Beta - expect a few bugs 12 | 13 | ### Cocoapods 14 | ```ruby 15 | use_frameworks! 16 | 17 | target 'YourTarget' do 18 | pod 'SwiftVectorTiles', :git => 'https://github.com/manimaul/SwiftVectorTiles.git' 19 | end 20 | ``` 21 | 22 | ### Example 23 | 24 | ```swift 25 | 26 | // initialize an encoder 27 | let encoder = VectorTileEncoder() 28 | 29 | // create some attributes 30 | var atts = [String: Attribute]() 31 | atts["some_key"] = Attribute.attString("some_value") 32 | 33 | // polygon geometry "well known text" 34 | let wkt = "POLYGON ((0 0, 4096 0, 4096 4096, 0 4096, 0 0))" 35 | 36 | // add the geometry and it's attributes as a "feature" 37 | encoder.addFeature(layerName: "land", attributes: atts, geometry: wkt) 38 | 39 | // encode to Mapbox vector tile 40 | let data :Data = encoder.encode() 41 | 42 | ``` 43 | 44 | ### Screenshots 45 | 46 | | Encoded [Natural Earth Data](http://www.naturalearthdata.com/) geometries| | 47 | | --------------------------------------------- | ---------------------------------------- | 48 | |![](screenshots/shot1.png)|![](screenshots/shot2.png)| 49 | -------------------------------------------------------------------------------- /SwiftVectorTiles.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | s.name = "SwiftVectorTiles" 4 | s.version = "0.1.4" 5 | s.summary = "A Swift Mapbox vector tile encoder" 6 | 7 | s.description = <<-DESC 8 | A Swift encoder for vector tiles according to the Mapbox Vector Tile Spec: https://github.com/mapbox/vector-tile-spec 9 | DESC 10 | 11 | s.homepage = "https://github.com/manimaul/GeosSwiftVectorTiles" 12 | s.license = { :type => "BSD", :file => "LICENSE.md" } 13 | s.author = { "Will Kamp" => "will@madrona.io" } 14 | s.platform = :ios, "8.0" 15 | s.source = { :git => "https://github.com/manimaul/SwiftVectorTiles.git", :tag => s.version.to_s} 16 | s.subspec 'Core' do |cs| 17 | cs.source_files = 'SwiftVectorTiles/**/*.{swift,h}' 18 | cs.dependency "geos" 19 | cs.dependency 'ProtocolBuffers-Swift' 20 | end 21 | 22 | s.default_subspec = 'Core' 23 | 24 | 25 | end 26 | -------------------------------------------------------------------------------- /SwiftVectorTiles.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwiftVectorTiles.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 29 | 30 | 31 | 32 | 33 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /SwiftVectorTiles.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SwiftVectorTiles.xcworkspace/xcshareddata/SwiftVectorTiles.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "F34CD9C0B8B6E17DFFE62B0650112E7828B8B9BA", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "F34CD9C0B8B6E17DFFE62B0650112E7828B8B9BA" : 9223372036854775807, 8 | "736B87B491E34F7FDD97AF429A73C6685463FF24" : 9223372036854775807 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "C4D8EBB3-47CA-4C58-B879-64DDF8C6D526", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "F34CD9C0B8B6E17DFFE62B0650112E7828B8B9BA" : "SwiftVectorTiles\/", 13 | "736B87B491E34F7FDD97AF429A73C6685463FF24" : "gdal-mm\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "SwiftVectorTiles", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "SwiftVectorTiles.xcworkspace", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:manimaul\/gdal-mm.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "736B87B491E34F7FDD97AF429A73C6685463FF24" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/manimaul\/GeosSwiftVectorTiles.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "F34CD9C0B8B6E17DFFE62B0650112E7828B8B9BA" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /SwiftVectorTiles/Attribute.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Attribute.swift 3 | // GeosSwiftVectorTiles 4 | // 5 | // Created by William Kamp on 12/29/16. 6 | // Copyright © 2016 William Kamp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | public enum Attribute : Hashable { 13 | case attInt(Int64) 14 | case attFloat(Float) 15 | case attDouble(Double) 16 | case attString(String) 17 | 18 | public static func == (lhs: Attribute, rhs: Attribute) -> Bool { 19 | return lhs.toInt() == rhs.toInt() 20 | } 21 | 22 | public var hashValue: Int { 23 | return self.toInt() 24 | } 25 | 26 | private func toInt() -> Int { 27 | switch self { 28 | case let .attInt(aInt): 29 | return aInt.hashValue 30 | case let .attFloat(aFloat): 31 | return aFloat.hashValue 32 | case let .attDouble(aDouble): 33 | return aDouble.hashValue 34 | case let .attString(aString): 35 | return aString.hashValue 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SwiftVectorTiles/Command.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Command.swift 3 | // GeosSwiftVectorTiles 4 | // 5 | // Created by William Kamp on 12/29/16. 6 | // Copyright © 2016 William Kamp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | internal enum Command : Int { 12 | case moveTo = 1, lineTo 13 | case closePath = 7 14 | 15 | } 16 | -------------------------------------------------------------------------------- /SwiftVectorTiles/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /SwiftVectorTiles/MadGeometryFactory.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Willard Kamp on 2/1/17. 3 | // Copyright (c) 2017 William Kamp. All rights reserved. 4 | // 5 | 6 | import Foundation 7 | 8 | public class MadGeometryFactory { 9 | 10 | internal static func madGeometry(_ geos: GPtrOwner?) -> MadGeometry? { 11 | if let geos = geos { 12 | switch MadGeometryType.typeFromPtr(geos.ownedPtr) { 13 | case .point: 14 | return MadPoint(geos) 15 | case .lineString: 16 | return MadLineString(geos) 17 | case .linearRing: 18 | return MadLinearRing(geos) 19 | case .polygon: 20 | return MadPolygon(geos) 21 | case .multiPoint: 22 | return MadMultiPoint(geos) 23 | case .multiLineString: 24 | return MadMultiLineString(geos) 25 | case .multiPolygon: 26 | return MadMultiPolygon(geos) 27 | case .geometryCollection: 28 | return MadGeometryCollection(geos) 29 | default: 30 | geos.destroy() 31 | return nil 32 | } 33 | } 34 | return nil 35 | } 36 | 37 | public static func geometryFromWellKnownText(_ wkt: String) -> MadGeometry? { 38 | guard let owner = MadGeometry.geosGeometryFromWellKnownText(wkt) else { 39 | return nil 40 | } 41 | return madGeometry(owner) 42 | } 43 | 44 | public static func geometryFromWellKnownBinary(_ wkb: Data) -> MadGeometry? { 45 | guard let owner = MadGeometry.geosGeometryFromWellKnownBinary(wkb) else { 46 | return nil 47 | } 48 | return madGeometry(owner) 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /SwiftVectorTiles/MadGeometryType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeometryType.swift 3 | // SwiftVectorTiles 4 | // 5 | // Created by William Kamp on 1/22/17. 6 | // Copyright © 2017 William Kamp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public enum MadGeometryType : Int { 12 | case unknown = -1, 13 | point, 14 | lineString, 15 | linearRing, 16 | polygon, 17 | multiPoint, 18 | multiLineString, 19 | multiPolygon, 20 | geometryCollection 21 | 22 | internal func cType() -> Int32 { 23 | return Int32(rawValue) 24 | } 25 | 26 | internal static func typeFromPtr(_ geosPtr: GeosGeometryPtr?) -> MadGeometryType { 27 | if let geosPtr = geosPtr { 28 | let geometryType = GEOSGeomTypeId_r(GeosContext, geosPtr.ptr) 29 | if let type = MadGeometryType(rawValue: Int(geometryType)) { 30 | return type 31 | } 32 | } 33 | return .unknown 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SwiftVectorTiles/MadMultiPoint.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MadMultiPoing.swift 3 | // SwiftVectorTiles 4 | // 5 | // Created by William Kamp on 1/25/17. 6 | // Copyright © 2017 William Kamp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | public class MadMultiPoint : MadMultiGeometry { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /SwiftVectorTiles/MadMultiPolygon.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MadPolygon.swift 3 | // SwiftVectorTiles 4 | // 5 | // Created by William Kamp on 1/23/17. 6 | // Copyright © 2017 William Kamp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class MadMultiPolygon: MadMultiGeometry { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /SwiftVectorTiles/SwiftVectorTiles.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftVectorTiles.h 3 | // SwiftVectorTiles 4 | // 5 | // Created by William Kamp on 1/17/17. 6 | // Copyright © 2017 William Kamp. All rights reserved. 7 | // 8 | 9 | @import geos; 10 | #import 11 | 12 | //! Project version number for SwiftVectorTiles. 13 | FOUNDATION_EXPORT double SwiftVectorTilesVersionNumber; 14 | 15 | //! Project version string for SwiftVectorTiles. 16 | FOUNDATION_EXPORT const unsigned char SwiftVectorTilesVersionString[]; 17 | 18 | // In this header, you should import all the public headers of your framework using statements like #import 19 | -------------------------------------------------------------------------------- /SwiftVectorTilesTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /proto/README.md: -------------------------------------------------------------------------------- 1 | 2 | * brew install protobuf protobuf-swift 3 | * protoc --swift_out=. vector_tile.proto 4 | * mv VectorTile.VectorTile.proto.swift ../SwiftVectorTiles/VectorTile.swift 5 | -------------------------------------------------------------------------------- /screenshots/shot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimaul/SwiftVectorTiles/ccf37754a670810d01bf3e9b55400bb16502b1c1/screenshots/shot1.png -------------------------------------------------------------------------------- /screenshots/shot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manimaul/SwiftVectorTiles/ccf37754a670810d01bf3e9b55400bb16502b1c1/screenshots/shot2.png --------------------------------------------------------------------------------