├── .gitignore ├── .gitmodules ├── .travis.yml ├── BuildTools ├── GeoAPI.Pcl.Reference.targets ├── GeoAPI.Reference.targets ├── GeoAPI.targets ├── GeoAPI.version ├── NuGet.Config └── NuGet.exe ├── DSNetTopologySuite.sln ├── DSNetTopologySuite.sln.DotSettings ├── LocalTestRun.testrunconfig ├── NTS.Converter.DotSpatial.nuspec ├── NTS.IO.GeoJSON.nuspec ├── NTS.IO.SpatiaLite.nuspec ├── NTS.IO.SqlServer.nuspec ├── NTS.IO.nuspec ├── NTS.nuspec ├── NetTopologySuite.Converter ├── NetTopologySuite.Converter.DotSpatial │ ├── DotSpatialEx.cs │ ├── GeometryConverterToDotSpatial.cs │ ├── GeometryConverterToGeoAPI.cs │ ├── NetTopologySuite.Converter.DotSpatial.csproj │ ├── NetTopologySuite.Converter.DotSpatial.snk │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.Converter.SpatialLite │ ├── NetTopologySuite.Converter.SpatialLite.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── SpatialLiteCoordinateListConverter.cs │ ├── SpatialLiteGeometryConverter.cs │ └── packages.config └── NetTopologySuite.Converter.Test │ ├── ConvertAndBackTest.cs │ ├── NetTopologySuite.Converter.Test.csproj │ ├── Properties │ └── AssemblyInfo.cs │ ├── RandomGeometryHelper.cs │ └── packages.config ├── NetTopologySuite.CoordinateSystems.Transfromation └── DotSpatial.Projections.Wrapper │ ├── DotSpatial.Projections.Wrapper.csproj │ ├── DotSpatialMathTransform.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO ├── NetTopologySuite.IO.GDB │ ├── GDBReader.cs │ ├── GDBWriter.cs │ ├── NetTopologySuite.IO.GDB.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.GeoJSON.Pcl │ ├── NetTopologySuite.IO.GeoJSON.Pcl.csproj │ └── packages.config ├── NetTopologySuite.IO.GeoJSON │ ├── Converters │ │ ├── AttributesTableConverter.cs │ │ ├── CoordinateConverters.cs │ │ ├── EnvelopeConverter.cs │ │ ├── FeatureCollectionConverter.cs │ │ ├── FeatureConverter.cs │ │ ├── GeometryArrayConverter.cs │ │ ├── GeometryConverter.cs │ │ └── ICRSObjectConverter.cs │ ├── GeoJsonObjectType.cs │ ├── GeoJsonReader.cs │ ├── GeoJsonSerializer.cs │ ├── GeoJsonWriter.cs │ ├── NetTopologySuite.IO.GeoJSON.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.GeoTools.Silverlight │ ├── Dbase │ │ └── DbaseFileReader.SL.cs │ ├── NetTopologySuite.IO.GeoTools.SilverLight.csproj │ ├── SLShapeFileDataEnumerator.cs │ ├── ShapefileDataReader.SL.cs │ ├── ShapefileReader.SL.cs │ └── StringToGeometryConverter.cs ├── NetTopologySuite.IO.GeoTools │ ├── BigEndianBinaryReader.cs │ ├── BigEndianBinaryWriter.cs │ ├── Dbase │ │ ├── ColumnStructure.cs │ │ ├── DbaseFieldDescriptor.cs │ │ ├── DbaseFileHeader.cs │ │ ├── DbaseFileReader.FullFat.cs │ │ ├── DbaseFileReader.cs │ │ ├── DbaseFileWriter.cs │ │ └── RowStructure.cs │ ├── Handlers │ │ ├── GeometryInstantiationErrorHandling.cs │ │ ├── MBRInfo.cs │ │ ├── MultiLineHandler.cs │ │ ├── MultiPointHandler.cs │ │ ├── NullShapeHandler.cs │ │ ├── PointHandler.cs │ │ ├── PointMBREnumerator.cs │ │ ├── PointMBRIterator.cs │ │ ├── PolygonHandler.cs │ │ ├── ProbeLinearRing.cs │ │ ├── ShapeHandler.cs │ │ ├── ShapeLocationInFileInfo.cs │ │ ├── ShapeMBREnumerator.cs │ │ ├── ShapeMBREnumeratorBase.cs │ │ └── ShapeMBRIterator.cs │ ├── NetTopologySuite.IO.GeoTools.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Shapefile.FullFat.cs │ ├── Shapefile.cs │ ├── ShapefileDataReader.FullFat.cs │ ├── ShapefileDataReader.cs │ ├── ShapefileDataWriter.cs │ ├── ShapefileException.cs │ ├── ShapefileHeader.cs │ ├── ShapefileReader.FullFat.cs │ ├── ShapefileReader.cs │ ├── ShapefileWriter.cs │ └── packages.config ├── NetTopologySuite.IO.MsSqlSpatial │ ├── MsSqlSpatialReader.cs │ ├── MsSqlSpatialWriter.cs │ ├── NetTopologySuite.IO.MsSqlSpatial.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.Oracle │ ├── NetTopologySuite.IO.Oracle.csproj │ ├── OracleGeometryReader.cs │ ├── OracleGeometryWriter.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── README.txt │ ├── Sdo │ │ ├── SdoEType.cs │ │ ├── SdoGTemplate.cs │ │ ├── SdoGeometry.cs │ │ └── SdoPoint.cs │ ├── Spec │ │ └── b28400.pdf │ ├── UdtBase │ │ ├── OracleArrayTypeFactoryBase.cs │ │ └── OracleUdtBase.cs │ └── packages.config ├── NetTopologySuite.IO.PostGis │ ├── NetTopologySuite.IO.PostGis.csproj │ ├── PostGisGeometryType.cs │ ├── PostGisReader.cs │ ├── PostGisWriter.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.PostGis2 │ ├── NetTopologySuite.IO.PostGis2.csproj │ ├── PostGis2GeometryHeader.cs │ ├── PostGis2GeometryType.cs │ ├── PostGis2Reader.cs │ ├── PostGis2Writer.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── NetTopologySuite.IO.ShapeFile.Extended │ ├── DbaseEnumerator.cs │ ├── DbaseReader.cs │ ├── Entities │ │ ├── IShapefileFeature.cs │ │ └── ShapefileFeature.cs │ ├── NetTopologySuite.IO.ShapeFile.Extended.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ShapeDataReader.cs │ ├── ShapeReader.cs │ └── packages.config ├── NetTopologySuite.IO.ShapeFile │ ├── NetTopologySuite.IO.ShapeFile.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ShapeFileConstants.cs │ ├── ShapeGeometryType.cs │ ├── ShapeReader.cs │ ├── ShapeWriter.cs │ └── packages.config ├── NetTopologySuite.IO.SpatiaLite.MonoDroid │ ├── NetTopologySuite.IO.SpatiaLite.MonoDroid.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── NetTopologySuite.IO.SpatiaLite.Pcl │ ├── NetTopologySuite.IO.SpatiaLite.Pcl.csproj │ └── packages.config ├── NetTopologySuite.IO.SpatiaLite │ ├── GaiaGeoEnums.cs │ ├── GaiaGeoIO.cs │ ├── GaiaGeoReader.cs │ ├── GaiaGeoWriter.cs │ ├── NetTopologySuite.IO.SpatiaLite.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.SqlServer2008 │ ├── MsSql2008GeographyReader.cs │ ├── MsSql2008GeographyWriter.cs │ ├── MsSql2008GeometryReader.cs │ ├── MsSql2008GeometryWriter.cs │ ├── NetTopologySuite.IO.SqlServer2008.csproj │ ├── NtsGeographySink.cs │ ├── NtsGeometrySink.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.Streams.CloudStorage.Test │ ├── DbaseReaderTests.cs │ ├── HelperMethods.cs │ ├── NetTopologySuite.IO.Streams.CloudStorage.Test.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ShapeDataReaderTests.cs │ ├── ShapeReaderTests.cs │ ├── TempFileCloudUploader.cs │ ├── app.config │ └── packages.config ├── NetTopologySuite.IO.Streams.CloudStorage │ ├── CloudStreamProvider.cs │ ├── NetTopologySuite.IO.Streams.CloudStorage.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.IO.Tests │ ├── AbstractIOFixture.cs │ ├── GeoJSON │ │ ├── AttributesTableConverterTest.cs │ │ ├── FeatureCollectionTest.cs │ │ ├── FeatureConverterTest.cs │ │ ├── GeoJsonFixture.cs │ │ ├── GeoJsonReaderTest.cs │ │ ├── GeoJsonSerializerTest.cs │ │ ├── GeoJsonTests.cs │ │ ├── GeoJsonWriterTest.cs │ │ ├── GitHubIssues.cs │ │ ├── Issue148.cs │ │ ├── Issue16Fixture.cs │ │ ├── Issue32Fixture.cs │ │ ├── LinkedCRSTest.cs │ │ └── NamedCRSTest.cs │ ├── Issues.cs │ ├── NetTopologySuite.IO.Tests.csproj │ ├── PostgisFixture.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── RandomGeometryHelper.cs │ ├── ShapeFile.Extended │ │ ├── DbaseReaderTests.cs │ │ ├── HelperMethods.cs │ │ ├── ShapeDataReaderTests.cs │ │ ├── ShapeReaderTests.cs │ │ ├── ShapefileDataWriterTests.cs │ │ └── TempFileWriter.cs │ ├── SpatiaLiteFixture.cs │ ├── SqlGeographyFixture.cs │ ├── SqlGeometryFixture.cs │ ├── TopoJSON │ │ ├── TopoJsonReaderFixture.cs │ │ ├── TopoJsonWriterFixture.cs │ │ ├── TopoReaderData.cs │ │ └── TopoWriterData.cs │ └── packages.config ├── NetTopologySuite.IO.TopoJSON │ ├── Builders │ │ ├── ITopoBuilder.cs │ │ └── TopoBuilder.cs │ ├── Converters │ │ ├── ArcsConverter.cs │ │ ├── DataConverter.cs │ │ ├── ObjectsConverter.cs │ │ ├── TopoFeatureConverter.cs │ │ ├── TopoObjectConverter.cs │ │ └── TransformConverter.cs │ ├── Geometries │ │ ├── TopoCollection.cs │ │ ├── TopoCurve.cs │ │ ├── TopoLineString.cs │ │ ├── TopoMultiLineString.cs │ │ ├── TopoMultiPoint.cs │ │ ├── TopoMultiPolygon.cs │ │ ├── TopoObject.cs │ │ ├── TopoPoint.cs │ │ └── TopoPolygon.cs │ ├── Helpers │ │ ├── ITransform.cs │ │ ├── ITransformer.cs │ │ ├── Transform.cs │ │ └── Transformer.cs │ ├── NetTopologySuite.IO.TopoJSON.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── TopoJsonReader.cs │ ├── TopoJsonSerializer.cs │ ├── TopoJsonWriter.cs │ └── packages.config └── NetTopologySuite.IO │ ├── Geometries │ └── CoordinateBuffer.cs │ ├── IO │ └── Streams │ │ ├── FileStreamProvider.cs │ │ ├── IStreamProvider.cs │ │ ├── IStreamProviderRegistry.cs │ │ └── ShapefileStreamProviderRegistry.cs │ ├── NetTopologySuite.IO.csproj │ ├── Properties │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.Lab ├── Hull │ └── ConcaveHull.cs ├── NetTopologySuite.Lab.csproj ├── Operation │ └── Buffer │ │ └── VariableWidthBuffer.cs ├── Properties │ └── AssemblyInfo.cs ├── SnapRound │ ├── GeometrySnapRounder.cs │ ├── SnapRoundFunctions.cs │ └── SnapRoundOverlayFunctions.cs ├── nts.snk └── packages.config ├── NetTopologySuite.Samples.Console ├── Geometries │ ├── CreateOrientationDistanceMesh.cs │ ├── basicexample.cs │ ├── constructionexample.cs │ ├── extendedcoordinate.cs │ ├── extendedcoordinateexample.cs │ ├── extendedcoordinatesequence.cs │ ├── extendedcoordinatesequencefactory.cs │ ├── precisionmodelexample.cs │ └── simplemethodsexample.cs ├── Lab │ ├── Clean │ │ ├── HoleRemover.cs │ │ ├── InvalidHoleRemover.cs │ │ ├── InvalidHoleRemoverTest.cs │ │ ├── SmallHoleRemover.cs │ │ └── SmallHoleRemoverTest.cs │ └── Functions │ │ └── RemoverFunctions.cs ├── LinearReferencing │ └── LinearReferencingExample.cs ├── NetTopologySuite.Samples.Console.csproj ├── Operation │ ├── Distance │ │ └── ClosestPointExample.cs │ ├── Linemerge │ │ └── LineMergeExample.cs │ └── Poligonize │ │ ├── PolygonizeExample.cs │ │ └── SplitPolygonExample.cs ├── Precision │ └── EnhancedPrecisionOpExample.cs ├── Program.cs ├── Properties │ └── AssemblyInfo.cs ├── ReadMe.txt ├── ShapeTests │ ├── GMLTesting.cs │ └── ShapeRead.cs ├── SimpleTests │ ├── Attributes │ │ └── AttributesTest.cs │ ├── BaseSamples.cs │ └── Geometries │ │ ├── LineStringSamples.cs │ │ ├── MultiPointSamples.cs │ │ ├── PointSamples.cs │ │ ├── PolygonSamples.cs │ │ ├── SerializationSamples.cs │ │ └── ValidationSuite.cs ├── Technique │ ├── ExtractLinestringByMeasure.cs │ ├── LineStringSelfIntersections.cs │ └── UnionUsingBuffer.cs ├── Tests │ ├── GeometryServicesTest.cs │ ├── Github │ │ ├── Issue12Fixture.cs │ │ ├── Issue27Fixture.cs │ │ ├── Issue28Fixture.cs │ │ ├── Issue31Fixture.cs │ │ ├── Issue36Tests.cs │ │ ├── Issue47Tests.cs │ │ ├── Issue4Fixture.cs │ │ ├── Issue58Fixture.cs │ │ ├── Issue61Fixture.cs │ │ ├── Issue62Fixture.cs │ │ ├── Issue87Fixture.cs │ │ ├── Issue96Fixture.cs │ │ └── Issues.cs │ ├── IO │ │ ├── GmlTest.cs │ │ ├── PostGisTest.cs │ │ ├── ShapeFileEncodingTest.cs │ │ ├── ShapeFileInvalidHeaderTest.cs │ │ ├── ShapeFileReadTest.cs │ │ ├── ShapefileWriteTest.cs │ │ └── WKTReaderTests.cs │ ├── Operation │ │ └── Linemerge │ │ │ ├── LineSequencerFileTest.cs │ │ │ └── LineSequencerTest.cs │ ├── Performances │ │ ├── NodingValidatorFixture.cs │ │ ├── PreparedGeometryFixture.cs │ │ └── SortedListsFixture.cs │ ├── Readme.txt │ └── Various │ │ ├── AffineTransformBuilderUsage.cs │ │ ├── BufferTest.cs │ │ ├── CascadedPolygonUnionFixture.cs │ │ ├── CoordinateArraysTest.cs │ │ ├── CoversTest.cs │ │ ├── DbfDateTest.cs │ │ ├── FormattingTest.cs │ │ ├── GeomBinOpTest_Issue14_Simplified.cs │ │ ├── GeometriesFixture.cs │ │ ├── GoogleGroupTests.cs │ │ ├── GoogleIssueTrackerTests.cs │ │ ├── GraphBuilder.cs │ │ ├── GraphBuilder2.cs │ │ ├── GraphBuilder2Test.cs │ │ ├── GraphBuilderTest.cs │ │ ├── IntesectIterationTest.cs │ │ ├── IsValidTest.cs │ │ ├── Issue102Test.cs │ │ ├── Issue103Tests.cs │ │ ├── Issue117Tests.cs │ │ ├── Issue123Tests.cs │ │ ├── Issue131Test.cs │ │ ├── Issue152Tests.cs │ │ ├── Issue156Tests.cs │ │ ├── Issue171TestFixture.cs │ │ ├── Issue172TestFixture.cs │ │ ├── Issue173Fixture.cs │ │ ├── Issue174TestFixture.cs │ │ ├── Issue178Fixture.cs │ │ ├── Issue179Fixture.cs │ │ ├── Issue186TestFixture.cs │ │ ├── Issue26Tests.cs │ │ ├── Issue35Tests.cs │ │ ├── Issue36Tests.cs │ │ ├── Issue37Test.cs │ │ ├── Issue56Test.cs │ │ ├── Issue58Tests.cs │ │ ├── Issue68Tests.cs │ │ ├── Issue75Tests.cs │ │ ├── Issue86Test.cs │ │ ├── Issue94Test.cs │ │ ├── MiscUtil │ │ ├── DoubleConverter.cs │ │ ├── licence.txt │ │ └── readme.txt │ │ ├── NormalizeTest.cs │ │ ├── OGCTests.cs │ │ ├── OracleWKBTest.cs │ │ ├── PathFinder.cs │ │ ├── PathFinderTest.cs │ │ ├── PrecisionTest.cs │ │ ├── QuadTreeTest.cs │ │ ├── ReverseTest.cs │ │ ├── RobustLineIntersectorTest.cs │ │ ├── SRSConversionTest.cs │ │ ├── SlowIntersectionTest.cs │ │ ├── StackExchangeFixtures.cs │ │ ├── UnionAggregateTest.cs │ │ ├── WKTTest.cs │ │ ├── cant-read-file1.gml │ │ ├── cant-read-file2.gml │ │ ├── cant-read-file3.gml │ │ ├── cant-read-file4.gml │ │ └── read-ok-file.gml ├── app.config └── packages.config ├── NetTopologySuite.Samples.Shapefiles ├── AllNulls.dbf ├── AllNulls.shp ├── AllNulls.shx ├── BJmultipolygon.dbf ├── BJmultipolygon.sbn ├── BJmultipolygon.sbx ├── BJmultipolygon.shp ├── CA_Cable_region.dbf ├── CA_Cable_region.prj ├── CA_Cable_region.shp ├── CA_Cable_region.shx ├── DEPARTEMENT.AVL ├── DEPARTEMENT.DBF ├── DEPARTEMENT.LYR ├── DEPARTEMENT.PRJ ├── DEPARTEMENT.SHP ├── DEPARTEMENT.SHX ├── EmptyShapeFile.dbf ├── EmptyShapeFile.shp ├── Issue167.shp ├── Sept_polygones.dbf ├── Sept_polygones.sbn ├── Sept_polygones.sbx ├── Sept_polygones.shp ├── Strade.dbf ├── Strade.shp ├── Strade.shx ├── US_DMA_region.dbf ├── US_DMA_region.prj ├── US_DMA_region.shp ├── US_DMA_region.shx ├── UnifiedChecksMaterial.dbf ├── UnifiedChecksMaterial.shp ├── UnifiedChecksMaterialNullAtEnd.shp ├── UnifiedChecksMaterialNullAtStart.shp ├── UnifiedChecksMaterialNullInMiddle.shp ├── Zone_ISTAT.dbf ├── Zone_ISTAT.shp ├── Zone_ISTAT.shx ├── a.dbf ├── a.prj ├── a.sbn ├── a.sbx ├── a.shp ├── a.shp.xml ├── a.shx ├── afvalbakken.dbf ├── afvalbakken.prj ├── afvalbakken.sbn ├── afvalbakken.sbx ├── afvalbakken.shp ├── afvalbakken.shx ├── arc.dbf ├── arc.shp ├── arc.shx ├── b.dbf ├── b.prj ├── b.sbn ├── b.sbx ├── b.shp ├── b.shp.xml ├── b.shx ├── blob │ ├── blob │ ├── queries.txt │ ├── wkb_blob.jpg │ └── wkt.JPG ├── christchurch-canterbury-h.dbf ├── christchurch-canterbury-h.shp ├── christchurch-canterbury-h.shx ├── christchurch-canterbury-h.txt ├── crustal_test.dbf ├── crustal_test.shp ├── crustal_test.shx ├── crustal_test3d.dbf ├── crustal_test3d.shp ├── crustal_test3d.shx ├── crustal_test_bugged.dbf ├── crustal_test_bugged.shp ├── crustal_test_bugged.shx ├── date.dbf ├── date.shp ├── date.shx ├── error_union.dbf ├── error_union.shp ├── error_union.shx ├── graph ├── invalid_line_string.dbf ├── line_ed50_geo.dbf ├── line_ed50_geo.shp ├── line_ed50_utm36.dbf ├── line_ed50_utm36.shp ├── line_wgs84_geo.dbf ├── line_wgs84_geo.shp ├── line_wgs84_utm36.dbf ├── line_wgs84_utm36.shp ├── line_wgs84_utm36.shx ├── null_value_dbf.dbf ├── null_value_dbf.shp ├── point_ed50_geo.dbf ├── point_ed50_geo.shp ├── point_ed50_utm36.dbf ├── point_ed50_utm36.shp ├── point_wgs84_geo.dbf ├── point_wgs84_geo.shp ├── point_wgs84_utm36.dbf ├── point_wgs84_utm36.shp ├── point_wgs84_utm36.shx ├── polygon intersecting line.dbf ├── polygon intersecting line.shp ├── polygon_ed50_geo.dbf ├── polygon_ed50_geo.shp ├── polygon_ed50_utm36.dbf ├── polygon_ed50_utm36.shp ├── polygon_ed50_utm36.shx ├── polygon_wgs84_geo.dbf ├── polygon_wgs84_geo.shp ├── polygon_wgs84_utm36.dbf ├── polygon_wgs84_utm36.shp ├── polygon_wgs84_utm36.shx ├── shape_PointZM.shp ├── shape_pointM.shp ├── shape_pointZM_MissingM values.shp ├── temp.gml ├── test_arcview.dbf ├── test_arcview.shp ├── test_arcview.shx ├── test_buffer.dbf ├── test_buffer.shp ├── test_buffer.shx ├── tnp_arc.dbf ├── tnp_arc.shp ├── tnp_arc.shx ├── tnp_multipoint.dbf ├── tnp_multipoint.shp ├── tnp_multipoint.shx ├── tnp_pol.dbf ├── tnp_pol.shp ├── tnp_pol.shx ├── tnp_pts.dbf ├── tnp_pts.shp ├── tnp_pts.shx ├── with_M.dbf ├── with_M.prj └── with_M.shp ├── NetTopologySuite.TestRunner.Console ├── App.ico ├── Arguments.cs ├── ConsoleTest.cs ├── NetTopologySuite.TestRunner.Console.csproj ├── Properties │ └── AssemblyInfo.cs ├── TestInfo.cs ├── TestInfoCollection.cs ├── TestOptionsParser.cs ├── TestRunner.cs └── packages.config ├── NetTopologySuite.TestRunner.Tests ├── Default.xml ├── Other.xml ├── external │ ├── GEOSBuffer.xml │ ├── TestBufferExternal.xml │ ├── TestBufferExternal2.xml │ ├── TestBufferJagged.xml │ ├── TestOverlay.xml │ ├── TestValid.xml │ └── geos-bug356-buffer.xml ├── failure │ ├── TestBigNastyBuffer.xml │ ├── TestBufferFailure.xml │ ├── TestBufferInsideNonEmpty.xml │ ├── TestOverlay.xml │ ├── TestOverlayFailure.xml │ ├── bug368jts.xml │ └── geos-bug368-union.xml ├── general │ ├── TestBoundary.xml │ ├── TestBuffer.xml │ ├── TestBufferMitredJoin.xml │ ├── TestCentroid.xml │ ├── TestConvexHull-big.xml │ ├── TestConvexHull.xml │ ├── TestDensify.xml │ ├── TestDistance.xml │ ├── TestEqualsExact.xml │ ├── TestFunctionAA.xml │ ├── TestFunctionAAPrec.xml │ ├── TestFunctionLA.xml │ ├── TestFunctionLAPrec.xml │ ├── TestFunctionLL.xml │ ├── TestFunctionLLPrec.xml │ ├── TestFunctionPA.xml │ ├── TestFunctionPL.xml │ ├── TestFunctionPLPrec.xml │ ├── TestFunctionPP.xml │ ├── TestInteriorPoint.xml │ ├── TestMinimumClearance.xml │ ├── TestOverlayEmpty.xml │ ├── TestPreparedPointPredicate.xml │ ├── TestPreparedPolygonPredicate.xml │ ├── TestPreparedPredicatesWithGeometryCollection.xml │ ├── TestRectanglePredicate.xml │ ├── TestRelateAA.xml │ ├── TestRelateAC.xml │ ├── TestRelateLA.xml │ ├── TestRelateLC.xml │ ├── TestRelateLL.xml │ ├── TestRelatePA.xml │ ├── TestRelatePL.xml │ ├── TestRelatePP.xml │ ├── TestSimple.xml │ ├── TestUnaryUnion.xml │ ├── TestUnaryUnionFloating.xml │ ├── TestValid.xml │ ├── TestValid2-big.xml │ ├── TestValid2.xml │ └── TestWithinDistance.xml ├── robust │ ├── ExternalRobustness.xml │ ├── MagnifyTopology.xml │ ├── TestRobustBuffer.xml │ ├── TestRobustOverlayError.xml │ ├── TestRobustOverlayFixed.xml │ ├── TestRobustOverlayFloat.xml │ └── TestRobustRelate.xml ├── stmlf │ ├── stmlf-cases-20061018_int.xml │ └── stmlf-cases-20061020_int.xml ├── validate │ ├── TestRelateAA-big.xml │ ├── TestRelateAA.xml │ ├── TestRelateAC.xml │ ├── TestRelateLA.xml │ ├── TestRelateLC.xml │ ├── TestRelateLL.xml │ ├── TestRelatePA.xml │ ├── TestRelatePL.xml │ └── TestRelatePP.xml └── vivid │ ├── TestBoundary.xml │ ├── TestCentroid.xml │ ├── TestConvexHull-big.xml │ ├── TestConvexHull.xml │ ├── TestFunctionAA.xml │ ├── TestFunctionAAPrec.xml │ ├── TestFunctionLA.xml │ ├── TestFunctionLAPrec.xml │ ├── TestFunctionLL.xml │ ├── TestFunctionLLPrec.xml │ ├── TestFunctionPA.xml │ ├── TestFunctionPL.xml │ ├── TestFunctionPLPrec.xml │ ├── TestFunctionPP.xml │ ├── TestInteriorPoint.xml │ ├── TestRectanglePredicate.xml │ ├── TestRelateAA.xml │ ├── TestRelateAC.xml │ ├── TestRelateLA.xml │ ├── TestRelateLC.xml │ ├── TestRelateLL.xml │ ├── TestRelatePA.xml │ ├── TestRelatePL.xml │ ├── TestRelatePP.xml │ ├── TestSimple.xml │ ├── TestValid.xml │ ├── TestValid2-big.xml │ ├── TestValid2.xml │ └── TestWithinDistance.xml ├── NetTopologySuite.TestRunner ├── Functions │ ├── AffineTransformationFunctions.cs │ ├── BaseGeometryFunction.cs │ ├── BoundaryFunctions.cs │ ├── BufferByUnionFunctions.cs │ ├── BufferFunctions.cs │ ├── CGAlgorithmFunctions.cs │ ├── ConstructionFunctions.cs │ ├── ConversionFunctions.cs │ ├── CreateRandomGeometries.cs │ ├── CreateShapeFunctions.cs │ ├── DissolveFunctions.cs │ ├── DistanceFunctions.cs │ ├── GeometryFunctionRegistry.cs │ ├── GeometryFunctions.cs │ ├── IGeometryFunction.cs │ ├── LineHandlingFunctions.cs │ ├── LinearReferencingFunctions.cs │ ├── NTSFunctions.cs │ ├── NodingFunctions.cs │ ├── OverlayFunctions.cs │ ├── PolygonizeFunctions.cs │ ├── PrecisionFunctions.cs │ ├── SelectionFunctions.cs │ ├── SimplificationFunctions.cs │ ├── SortingFunctions.cs │ ├── SpatialIndexFunctions.cs │ ├── StaticMethodGeometryFunction.cs │ ├── TestCaseGeometryFunctions.cs │ └── ValidationFunctions.cs ├── NetTopologySuite.TestRunner.csproj ├── Operations │ ├── ArgumentConverter.cs │ ├── BufferValidatedGeometryOperation.cs │ ├── GeometryFunctionOperation.cs │ ├── GeometryMethodOperation.cs │ ├── IGeometryMatcher.cs │ ├── IGeometryOperation.cs │ ├── LoggingGeometryOperation.cs │ ├── NTSTestReflectionException.cs │ ├── NormalizedGeometryMatcher.cs │ ├── OverlayValidatedGeometryOperation.cs │ ├── PreparedGeometryOperation.cs │ ├── PreparedGeometryTeeOperation.cs │ └── TeeGeometryOperation.cs ├── Properties │ └── AssemblyInfo.cs ├── Result │ ├── BufferResultMatcher.cs │ ├── EqualityResultMatcher.cs │ ├── IResultMatcher.cs │ ├── NullResultMatcher.cs │ └── Result.cs ├── Utility │ ├── ClassUtility.cs │ ├── DoubleKeyMap.cs │ ├── GeometryDataUtil.cs │ ├── IOUtility.cs │ ├── MultiFormatReader.cs │ └── StringUtility.cs ├── XmlTest.cs ├── XmlTestCollection.cs ├── XmlTestController.cs ├── XmlTestDocument.cs ├── XmlTestExceptionManager.cs ├── XmlTestFactory.cs ├── XmlTestInfo.cs ├── XmlTestTimer.cs └── packages.config ├── NetTopologySuite.Tests.NUnit ├── Algorithm │ ├── AbstractPointInRingTest.cs │ ├── AngleTest.cs │ ├── CGAlgorithmsTest.cs │ ├── ComputeOrientationTest.cs │ ├── ConvexHullTest.cs │ ├── Distance │ │ └── DiscreteHausdorffDistanceTest.cs │ ├── IndexedPointInAreaStressTest.cs │ ├── InteriorPointTest.cs │ ├── IsCCWTest.cs │ ├── LocatePointInRingTest.cs │ ├── MCPointInRingTest.cs │ ├── MinimumBoundingCircleTest.cs │ ├── MinimumDiameterTest.cs │ ├── NonRobustLineIntersectorTest.cs │ ├── OrientationIndexFailureTest.cs │ ├── OrientationIndexTest.cs │ ├── PerturbedGridPolygonBuilder.cs │ ├── PointInAreaStressTester.cs │ ├── PointInRingTest.cs │ ├── PointLocatorTest.cs │ ├── RayCrossingCounterTest.cs │ ├── RectangleIntersectsTest.cs │ ├── RobustLineIntersectionTest.cs │ ├── RobustLineIntersectorTest.cs │ └── ShewchuksDeterminant.cs ├── CoordinateSystems │ └── Transformations │ │ └── GeometryTransformTest.cs ├── Dissolve │ └── LineDissolverTest.cs ├── EdgeGraph │ └── EdgeGraphTest.cs ├── Geometries │ ├── AreaLengthTest.cs │ ├── BidirectionalComparatorTest.cs │ ├── CoordinateArraysTest.cs │ ├── CoordinateSequencesTest.cs │ ├── CoordinateTest.cs │ ├── EnvelopeTest.cs │ ├── GeometryCollectionEnumeratorTest.cs │ ├── GeometryCollectionImplTest.cs │ ├── GeometryFactoryTest.cs │ ├── GeometryImplTest.cs │ ├── GeometryTestFactory.cs │ ├── Implementation │ │ ├── BasicCoordinateSequenceTest.cs │ │ ├── CoordinateArraySequenceTest.cs │ │ ├── CoordinateSequenceReversedTest.cs │ │ ├── CoordinateSequenceTestBase.cs │ │ └── PackedCoordinateSequenceTest.cs │ ├── IntersectionMatrixTest.cs │ ├── IntervalTest.cs │ ├── IsRectangleTest.cs │ ├── LineSegmentTest.cs │ ├── LineStringImplTest.cs │ ├── MultiPointImplTest.cs │ ├── NormalizeTest.cs │ ├── PointImplTest.cs │ ├── PrecisionModelTest.cs │ ├── PredicateShortCircuitTest.cs │ ├── Prepared │ │ ├── PreparedPolygonIntersectsStressTest.cs │ │ ├── PreparedPolygonStressTest.cs │ │ └── StressTestHarness.cs │ ├── RectanglePredicateSyntheticTest.cs │ ├── RectanglePredicateTest.cs │ ├── SegmentDensifier.cs │ ├── TriangleTest.cs │ └── Utility │ │ ├── AffineTransformationBuilderTest.cs │ │ └── AffineTransformationTest.cs ├── GeometryServiceProviderTest.cs ├── GeometryTestCase.cs ├── GeometryUtils.cs ├── Hull │ └── ConcaveHullTest.cs ├── IO │ ├── CoordinateBufferTest.cs │ ├── GML2 │ │ └── GMLReaderTest.cs │ ├── KML │ │ └── KMLWriterTest.cs │ ├── SerializabilityTest.cs │ ├── WKBReaderTest.cs │ ├── WKBTest.cs │ ├── WKTReaderExpTest.cs │ ├── WKTReaderParseErrorTest.cs │ ├── WKTReaderTest.cs │ └── WKTWriterTest.cs ├── Index │ ├── DoubleBitsTest.cs │ ├── IntervalTest.cs │ ├── KdTree │ │ └── KdTreeTest.cs │ ├── QuadtreeTest.cs │ ├── SIRtreeTest.cs │ ├── STRtreeDemo.cs │ ├── STRtreeTest.cs │ ├── SpatialIndexTest.cs │ └── SpatialIndexTester.cs ├── LinearReferencing │ ├── AbstractIndexedLineTest.cs │ ├── LengthIndexedLineTest.cs │ ├── LinearLocationTest.cs │ └── LocationIndexedLineTest.cs ├── Mathematics │ ├── DDBasicTest.cs │ └── DDComputeTest.cs ├── MiscellaneousTest.cs ├── MiscellaneousTest2.cs ├── NetTopologySuite.Tests.NUnit.csproj ├── Noding │ ├── SegmentPointComparatorFullTest.cs │ ├── SegmentPointComparatorTest.cs │ └── Snapround │ │ └── SnapRoundingTest.cs ├── Operation │ ├── BoundaryTest.cs │ ├── Buffer │ │ ├── BufferResultValidatorTest.cs │ │ ├── BufferTest.cs │ │ ├── BufferValidator.cs │ │ ├── DepthSegmentTest.cs │ │ └── Test.cs │ ├── Distance │ │ └── DistanceTest.cs │ ├── Distance3D │ │ ├── Distance3DOpTest.cs │ │ └── WithinDistance3DTest.cs │ ├── LineMerge │ │ ├── LineMergerTest.cs │ │ └── LineSequencerTest.cs │ ├── Overlay │ │ └── FixedPrecisionSnappingTest.cs │ ├── Polygonize │ │ └── PolygonizeTest.cs │ ├── Predicate │ │ └── RectangleIntersectsPerformance.cs │ ├── Relate │ │ ├── ContainsTest.cs │ │ ├── RelateBoundaryNodeRuleTest.cs │ │ └── RelateTest.cs │ ├── SimpleTest.cs │ ├── Union │ │ ├── CascadedPolygonUnionFileTest.cs │ │ ├── CascadedPolygonUnionTest.cs │ │ ├── CascadedPolygonUnionTester.cs │ │ └── UnaryUnionTest.cs │ └── Valid │ │ ├── IsValidTest.cs │ │ ├── ValidClosedRingTest.cs │ │ └── ValidSelfTouchingRingFormingHoleTest.cs ├── Performance │ ├── Algorithm │ │ ├── DistanceLineLineStressTest.cs │ │ ├── MinimumBoundingCircleStressTest.cs │ │ └── SimpleRayCrossingStressTest.cs │ ├── AreaPrecisionPerformanceTest.cs │ ├── Dissolve │ │ └── LineDissolveStressTest.cs │ ├── ExamplePerformanceTest.cs │ ├── Geometries │ │ └── Prepared │ │ │ ├── PreparedGeometryThreadSafeTest.cs │ │ │ ├── PreparedLineIntersectsPerformanceTest.cs │ │ │ ├── PreparedPolygonIntersectsPerformanceTest.cs │ │ │ └── TestDataBuilder.cs │ ├── Mathematics │ │ ├── DDExpressionPerformance.cs │ │ ├── InCirclePerformance.cs │ │ └── TriPredicate.cs │ ├── Operation │ │ ├── Buffer │ │ │ ├── DepthSegmentStressTest.cs │ │ │ ├── FileBufferResultValidatorTest.cs │ │ │ └── PolygonBufferStressTest.cs │ │ ├── Distance │ │ │ └── TestPerfDistanceLinePoints.cs │ │ ├── Overlay │ │ │ └── OverlayNodingStressTest.cs │ │ ├── Relate │ │ │ └── RelateMonotoneLinesPerfTest.cs │ │ └── Union │ │ │ └── UnionPerfTester.cs │ ├── PerformanceTestCase.cs │ ├── PerformanceTestRunner.cs │ ├── ThreadTestCase.cs │ └── ThreadTestRunner.cs ├── Precision │ ├── CommonBitsOpTest.cs │ ├── GeometryPrecisionReducerTest.cs │ └── SimpleGeometryPrecisionReducerTest.cs ├── Properties │ └── AssemblyInfo.cs ├── Simplify │ ├── DouglasPeuckerSimplifierTest.cs │ ├── GeometryOperationValidator.cs │ ├── SameStructureTester.cs │ ├── TopologyPreservingSimplifierTest.cs │ └── VWSimplifierTest.cs ├── TestData │ ├── EmbeddedResourceManager.cs │ ├── africa.wkt │ ├── bc-250k.wkt │ ├── bc_20K.wkt │ ├── europe.wkt │ ├── linestrings.xml │ ├── multilinestrings.xml │ ├── multipoints.xml │ ├── multipolygons.xml │ ├── papua.wkt │ ├── plane.wkt │ ├── points.xml │ ├── polygon.wkb │ ├── polygons.xml │ ├── uk-arrows.wkt │ ├── uk.wkt │ └── world.wkt ├── Triangulate │ ├── BasicFunctionalityTest.cs │ ├── ConformingDelaunayTest.cs │ ├── DelaunayPerformanceTest.cs │ ├── DelaunayTest.cs │ └── VoronoiTest.cs ├── Utilities │ ├── AlternativePriorityQueueTest.cs │ ├── IOUtil.cs │ ├── PriorityQueueTest.cs │ └── SerializationUtility.cs ├── nts.snk └── packages.config ├── NetTopologySuite.Tests.Vivid.XUnit ├── NetTopologySuite.Tests.Vivid.XUnit.csproj ├── Properties │ └── AssemblyInfo.cs ├── XUnitExternalTests.cs ├── XUnitFailureTests.cs ├── XUnitGeneralTests.cs ├── XUnitRobustTests.cs ├── XUnitRunner.cs ├── XUnitStMLFTests.cs ├── XUnitValidateTests.cs ├── XUnitVividTests.cs └── packages.config ├── NetTopologySuite.VersionComparisonTests ├── AuthoringTests.txt ├── BufferTest.cs ├── NetTopologySuite.VersionComparisonTests.csproj ├── Properties │ └── AssemblyInfo.cs ├── Read Me.txt └── StrTreeTests.cs ├── NetTopologySuite.Windows.Forms ├── FontGlyphReader.cs ├── GeometryCollectionGraphicsPath.cs ├── GraphicsPathCollectionPathIterator.cs ├── GraphicsPathReader.cs ├── GraphicsPathWriter.cs ├── IPointTransformation.cs ├── IdentityPointTransformation.cs ├── NetTopologySuite.Windows.Forms.csproj ├── PointGraphicsPathFactory.cs ├── PolygonGraphicsPath.cs ├── Properties │ └── AssemblyInfo.cs ├── Test │ ├── BasicTest.cs │ ├── BasicTestMedia.cs │ ├── Test.NetTopologySuite.Windows.Forms.csproj │ └── packages.config └── packages.config ├── NetTopologySuite.Windows.Media ├── FontGlyphReader.cs ├── GeometryCollectionGraphicsPath.cs ├── IPointTransformation.cs ├── IdentityPointTransformation.cs ├── NetTopologySuite.Windows.Media.csproj ├── PointToPathGeometryFactory.cs ├── PointToStreamGeometryFactory.cs ├── PolygonWpfPathGeometry.cs ├── PolygonWpfStreamGeometry.cs ├── Properties │ └── AssemblyInfo.cs ├── WpfGeometryReader.cs ├── WpfPathGeometryWriter.cs ├── WpfStreamGeometryWriter.cs └── packages.config ├── NetTopologySuite.sln ├── NetTopologySuite.sln.DotSettings ├── NetTopologySuite.vsmdi ├── NetTopologySuite ├── Algorithm │ ├── Algorithm.xml │ ├── Angle.cs │ ├── BoundaryNodeRule.cs │ ├── CGAlgorithms.cs │ ├── CGAlgorithms3D.cs │ ├── CGAlgorithmsDD.cs │ ├── CentralEndpointIntersector.cs │ ├── Centroid.cs │ ├── CentroidArea.cs │ ├── CentroidLine.cs │ ├── CentroidPoint.cs │ ├── ConvexHull.cs │ ├── Distance │ │ ├── DiscreteHausdorffDistance.cs │ │ ├── Distance.xml │ │ ├── DistanceToPoint.cs │ │ └── PointPairDistance.cs │ ├── HCoordinate.cs │ ├── IPointInAreaLocator.cs │ ├── IPointInRing.cs │ ├── IndexedPointInAreaLocator.cs │ ├── InteriorPointArea.cs │ ├── InteriorPointLine.cs │ ├── InteriorPointPoint.cs │ ├── LineIntersector.cs │ ├── Locate │ │ ├── IPointOnGeometryLocator.cs │ │ ├── IndexedPointInAreaLocator.cs │ │ ├── Locate.xml │ │ └── SimplePointInAreaLocator.cs │ ├── MCPointInRing.cs │ ├── Match │ │ ├── AreaSimilarityMeasure.cs │ │ ├── HausdorffSimilarityMeasure.cs │ │ ├── ISimilarityMeasure.cs │ │ ├── Match.xml │ │ └── SimilarityMeasureCombiner.cs │ ├── MinimumBoundingCircle.cs │ ├── MinimumDiameter.cs │ ├── NonRobustCGAlgorithms.cs │ ├── NonRobustLineIntersector.cs │ ├── NotRepresentableException.cs │ ├── PointLocator.cs │ ├── RayCrossingCounter.cs │ ├── RectangleLineIntersector.cs │ ├── RobustDeterminant.cs │ ├── RobustLineIntersector.cs │ ├── SIRtreePointInRing.cs │ ├── SimplePointInAreaLocator.cs │ └── SimplePointInRing.cs ├── CoordinateSystems │ ├── CRSBase.cs │ ├── CRSType.cs │ ├── ICRSObject.cs │ ├── LinkedCRS.cs │ ├── NamedCRS.cs │ └── Transformations │ │ └── GeometryTransform.cs ├── Densify │ ├── Densifier.cs │ └── DensifySummary.xml ├── Dissolve │ ├── DissolveEdgeGraph.cs │ ├── DissolveHalfEdge.cs │ └── LineDissolver.cs ├── EdgeGraph │ ├── EdgeGraph.cs │ ├── EdgeGraphBuilder.cs │ ├── HalfEdge.cs │ └── MarkHalfEdge.cs ├── Features │ ├── AttributesTable.cs │ ├── Feature.cs │ ├── FeatureCollection.cs │ ├── FeatureExtensions.cs │ ├── IAttributesTable.cs │ └── IFeature.cs ├── Geometries │ ├── CoordinateArrays.cs │ ├── CoordinateList.cs │ ├── CoordinateSequenceComparator.cs │ ├── CoordinateSequences.cs │ ├── DefaultCoordinateSequence.cs │ ├── DefaultCoordinateSequenceFactory.cs │ ├── Geometries.xml │ ├── Geometry.cs │ ├── GeometryCollection.cs │ ├── GeometryCollectionEnumerator.cs │ ├── GeometryComponentFilter.cs │ ├── GeometryFactory.cs │ ├── Implementation │ │ ├── CoordinateArraySequence.cs │ │ ├── CoordinateArraySequenceFactory.cs │ │ ├── DotSpatialAffineCoordinateSequence.cs │ │ ├── DotSpatialAffineCoordinateSequenceFactory.cs │ │ ├── PackedCoordinateSequence.cs │ │ └── PackedCoordinateSequenceFactory.cs │ ├── LineSegment.cs │ ├── LineString.cs │ ├── LinearRing.cs │ ├── MultiLineString.cs │ ├── MultiPoint.cs │ ├── MultiPolygon.cs │ ├── OctogonalEnvelope.cs │ ├── OgcCompliantGeometryFactory.cs │ ├── Point.cs │ ├── Polygon.cs │ ├── PrecisionModel.cs │ ├── Prepared │ │ ├── AbstractPreparedPolygonContains.cs │ │ ├── BasicPreparedGeometry.cs │ │ ├── LineIntersectionAdder.cs │ │ ├── LineNode.cs │ │ ├── LineTopology.cs │ │ ├── PreparedGeometryFactory.cs │ │ ├── PreparedLineString.cs │ │ ├── PreparedLineStringIntersects.cs │ │ ├── PreparedPoint.cs │ │ ├── PreparedPolygon.cs │ │ ├── PreparedPolygonContains.cs │ │ ├── PreparedPolygonContainsProperly.cs │ │ ├── PreparedPolygonCovers.cs │ │ ├── PreparedPolygonIntersects.cs │ │ ├── PreparedPolygonLineIntersection.cs │ │ └── PreparedPolygonPredicate.cs │ ├── TopologyException.cs │ ├── Triangle.cs │ └── Utilities │ │ ├── AffineTransformation.cs │ │ ├── AffineTransformationBuilder.cs │ │ ├── AffineTransformationFactory.cs │ │ ├── ComponentGeometryExtractor.cs │ │ ├── GeometryCollectionMapper.cs │ │ ├── GeometryCombiner.cs │ │ ├── GeometryEditor.cs │ │ ├── GeometryExtracter.cs │ │ ├── GeometryMapper.cs │ │ ├── GeometryTransformer.cs │ │ ├── LineStringExtracter.cs │ │ ├── LinearComponentExtracter.cs │ │ ├── Matrix.cs │ │ ├── NoninvertibleTransformationException.cs │ │ ├── PointExtracter.cs │ │ ├── PolygonExtracter.cs │ │ ├── ShortCircuitedGeometryVisitor.cs │ │ └── SineStarFactory.cs ├── GeometriesGraph │ ├── Depth.cs │ ├── DirectedEdge.cs │ ├── DirectedEdgeStar.cs │ ├── Edge.cs │ ├── EdgeEnd.cs │ ├── EdgeEndStar.cs │ ├── EdgeIntersection.cs │ ├── EdgeIntersectionList.cs │ ├── EdgeList.cs │ ├── EdgeNodingValidator.cs │ ├── EdgeRing.cs │ ├── GeometryGraph.cs │ ├── GraphComponent.cs │ ├── Index │ │ ├── EdgeSetIntersector.cs │ │ ├── MonotoneChain.cs │ │ ├── MonotoneChainEdge.cs │ │ ├── MonotoneChainIndexer.cs │ │ ├── SegmentIntersector.cs │ │ ├── SimpleEdgeSetIntersector.cs │ │ ├── SimpleMCSweepLineIntersector.cs │ │ ├── SimpleSweepLineIntersector.cs │ │ ├── SweepLineEvent.cs │ │ └── SweepLineSegment.cs │ ├── Label.cs │ ├── Node.cs │ ├── NodeFactory.cs │ ├── NodeMap.cs │ ├── PlanarGraph.cs │ ├── Position.cs │ ├── QuadrantOp.cs │ └── TopologyLocation.cs ├── IO │ ├── BEBinaryReader.cs │ ├── BEBinaryWriter.cs │ ├── GML2 │ │ ├── GMLElements.cs │ │ ├── GMLReader.cs │ │ └── GMLWriter.cs │ ├── KML │ │ └── KMLWriter.cs │ ├── ParseException.cs │ ├── WKBGeometryTypes.cs │ ├── WKBHexFileReader.cs │ ├── WKBReader.cs │ ├── WKBWriter.cs │ ├── WKTFileReader.cs │ ├── WKTReader.cs │ └── WKTWriter.cs ├── Index │ ├── ArrayListVisitor.cs │ ├── Bintree │ │ ├── Bintree.cs │ │ ├── Interval.cs │ │ ├── Key.cs │ │ ├── Node.cs │ │ ├── NodeBase.cs │ │ └── Root.cs │ ├── Chain │ │ ├── MonotoneChain.cs │ │ ├── MonotoneChainBuilder.cs │ │ ├── MonotoneChainOverlapAction.cs │ │ └── MonotoneChainSelectAction.cs │ ├── IIndexVisitor.cs │ ├── IItemVisitor.cs │ ├── ISpatialIndex.cs │ ├── IntervalRTree │ │ ├── IntervalRTreeBranchNode.cs │ │ ├── IntervalRTreeLeafNode.cs │ │ ├── IntervalRTreeNode.cs │ │ └── SortedPackedIntervalRTree.cs │ ├── KdTree │ │ ├── IKdNodeVisitor.cs │ │ ├── KdNode.cs │ │ └── KdTree.cs │ ├── Quadtree │ │ ├── DoubleBits.cs │ │ ├── IntervalSize.cs │ │ ├── Key.cs │ │ ├── Node.cs │ │ ├── NodeBase.cs │ │ ├── Quadtree.cs │ │ └── Root.cs │ ├── Strtree │ │ ├── AbstractNode.cs │ │ ├── AbstractSTRtree.cs │ │ ├── BoundablePair.cs │ │ ├── GeometryItemDistance.cs │ │ ├── IBoundable.cs │ │ ├── IItemDistance.cs │ │ ├── Interval.cs │ │ ├── ItemBoundable.cs │ │ ├── SIRtree.cs │ │ └── STRtree.cs │ └── Sweepline │ │ ├── ISweepLineOverlapAction.cs │ │ ├── SweepLineEvent.cs │ │ ├── SweepLineIndex.cs │ │ └── SweepLineInterval.cs ├── License.txt ├── LinearReferencing │ ├── ExtractLineByLocation.cs │ ├── LengthIndexOfPoint.cs │ ├── LengthIndexedLine.cs │ ├── LengthLocationMap.cs │ ├── LinearGeometryBuilder.cs │ ├── LinearIterator.cs │ ├── LinearLocation.cs │ ├── LocationIndexOfLine.cs │ ├── LocationIndexOfPoint.cs │ └── LocationIndexedLine.cs ├── Mathematics │ ├── DD.cs │ ├── MathUtil.cs │ ├── Matrix.cs │ ├── Plane3D.cs │ ├── Vector2D.cs │ ├── Vector3D.cs │ └── VectorMath.cs ├── NetTopologySuite.csproj ├── Noding │ ├── BasicSegmentString.cs │ ├── FastNodingValidator.cs │ ├── FastSegmentSetIntersectionFinder.cs │ ├── INodableSegmentString.cs │ ├── INoder.cs │ ├── ISegmentIntersector.cs │ ├── ISegmentString.cs │ ├── InteriorIntersectionFinder.cs │ ├── InteriorIntersectionFinderAdder.cs │ ├── IntersectionAdder.cs │ ├── IntersectionFinderAdder.cs │ ├── IteratedNoder.cs │ ├── MCIndexNoder.cs │ ├── MCIndexSegmentSetMutualIntersector.cs │ ├── NodingValidator.cs │ ├── Octant.cs │ ├── OrientedCoordinateArray.cs │ ├── ScaledNoder.cs │ ├── SegmentIntersectionDetector.cs │ ├── SegmentNode.cs │ ├── SegmentNodeList.cs │ ├── SegmentPointComparator.cs │ ├── SegmentSetMutualIntersector.cs │ ├── SegmentString.cs │ ├── SegmentStringDissolver.cs │ ├── SegmentStringUtil.cs │ ├── SimpleNoder.cs │ ├── SimpleSegmentSetMutualIntersector.cs │ ├── SinglePassNoder.cs │ └── Snapround │ │ ├── GeometryNoder.cs │ │ ├── HotPixel.cs │ │ ├── MCIndexPointSnapper.cs │ │ ├── MCIndexSnapRounder.cs │ │ └── SimpleSnapRounder.cs ├── NtsGeometryServices.cs ├── Operation │ ├── BoundaryOp.cs │ ├── Buffer │ │ ├── BufferBuilder.cs │ │ ├── BufferInputLineSimplifier.cs │ │ ├── BufferOp.cs │ │ ├── BufferParameters.cs │ │ ├── BufferSubgraph.cs │ │ ├── OffsetCurveBuilder.cs │ │ ├── OffsetCurveSetBuilder.cs │ │ ├── OffsetCurveVertexList.cs │ │ ├── OffsetSegmentGenerator.cs │ │ ├── OffsetSegmentString.cs │ │ ├── OldOffsetCurveBuilder.cs │ │ ├── RightmostEdgeFinder.cs │ │ ├── SubgraphDepthLocater.cs │ │ └── Validate │ │ │ ├── BufferCurveMaximumDistanceFinder.cs │ │ │ ├── BufferDistanceValidator.cs │ │ │ ├── BufferResultValidator.cs │ │ │ ├── DistanceToPointFinder.cs │ │ │ └── PointPairDistance.cs │ ├── Distance │ │ ├── ConnectedElementLocationFilter.cs │ │ ├── ConnectedElementPointFilter.cs │ │ ├── DistanceOp.cs │ │ ├── FacetSequence.cs │ │ ├── FacetSequenceTreeBuilder.cs │ │ ├── GeometryLocation.cs │ │ └── IndexedFacedDistance.cs │ ├── Distance3D │ │ ├── AxisPlaneCoordinateSequence.cs │ │ ├── Distance3DOp.cs │ │ └── PlanarPolygon3D.cs │ ├── GeometryGraphOperation.cs │ ├── IsSimpleOp.cs │ ├── Linemerge │ │ ├── EdgeString.cs │ │ ├── LineMergeDirectedEdge.cs │ │ ├── LineMergeEdge.cs │ │ ├── LineMergeGraph.cs │ │ ├── LineMerger.cs │ │ └── LineSequencer.cs │ ├── Overlay │ │ ├── EdgeSetNoder.cs │ │ ├── LineBuilder.cs │ │ ├── MaximalEdgeRing.cs │ │ ├── MinimalEdgeRing.cs │ │ ├── OverlayNodeFactory.cs │ │ ├── OverlayOp.cs │ │ ├── PointBuilder.cs │ │ ├── PolygonBuilder.cs │ │ ├── Snap │ │ │ ├── GeometrySnapper.cs │ │ │ ├── LineStringSnapper.cs │ │ │ ├── SnapIfNeededOverlayOp.cs │ │ │ └── SnapOverlayOp.cs │ │ └── Validate │ │ │ ├── FuzzyPointLocator.cs │ │ │ ├── OffsetPointGenerator.cs │ │ │ └── OverlayResultValidator.cs │ ├── Polygonize │ │ ├── EdgeRing.cs │ │ ├── PolygonizeDirectedEdge.cs │ │ ├── PolygonizeEdge.cs │ │ ├── PolygonizeGraph.cs │ │ └── Polygonizer.cs │ ├── Predicate │ │ ├── RectangleContains.cs │ │ ├── RectangleIntersects.cs │ │ └── SegmentIntersectionTester.cs │ ├── Relate │ │ ├── EdgeEndBuilder.cs │ │ ├── EdgeEndBundle.cs │ │ ├── EdgeEndBundleStar.cs │ │ ├── RelateComputer.cs │ │ ├── RelateNode.cs │ │ ├── RelateNodeFactory.cs │ │ ├── RelateNodeGraph.cs │ │ └── RelateOp.cs │ ├── Union │ │ ├── CascadedPolygonUnion.cs │ │ ├── PointGeometryUnion.cs │ │ ├── UnaryUnionOp.cs │ │ └── UnionInteracting.cs │ └── Valid │ │ ├── ConnectedInteriorTester.cs │ │ ├── ConsistentAreaTester.cs │ │ ├── IndexedNestedRingTester.cs │ │ ├── IsValidOp.cs │ │ ├── QuadtreeNestedRingTester.cs │ │ ├── RepeatedPointTester.cs │ │ ├── SimpleNestedRingTester.cs │ │ ├── SweeplineNestedRingTester.cs │ │ └── TopologyValidationError.cs ├── Planargraph │ ├── Algorithm │ │ └── ConnectedSubgraphFinder.cs │ ├── DirectedEdge.cs │ ├── DirectedEdgeStar.cs │ ├── Edge.cs │ ├── GraphComponent.cs │ ├── Node.cs │ ├── NodeMap.cs │ ├── PlanarGraph.cs │ └── Subgraph.cs ├── Precision │ ├── CommonBits.cs │ ├── CommonBitsOp.cs │ ├── CommonBitsRemover.cs │ ├── CoordinatePrecisionReducerFilter.cs │ ├── DocFiles │ │ └── minClearance.png │ ├── EnhancedPrecisionOp.cs │ ├── GeometryPrecisionReducer.cs │ ├── MinimumClearance.cs │ ├── PrecisionReducerCoordinateOperation.cs │ ├── PrecisionSummary.xml │ ├── SimpleGeometryPrecisionReducer.cs │ └── SimpleMinimumClearance.cs ├── Properties │ └── AssemblyInfo.cs ├── Shape │ ├── Fractal │ │ ├── KochSnowflakeBuilder.cs │ │ └── SierpinskiCarpetBuilder.cs │ ├── GeometricShapeBuilder.cs │ └── Random │ │ ├── RandomPointsBuilder.cs │ │ └── RandomPointsInGridBuilder.cs ├── Simplify │ ├── DouglasPeuckerLineSimplifier.cs │ ├── DouglasPeuckerSimplifier.cs │ ├── LineSegmentIndex.cs │ ├── OldVWLineSimplifier.cs │ ├── SimplifySummary.xml │ ├── TaggedLineSegment.cs │ ├── TaggedLineString.cs │ ├── TaggedLineStringSimplifier.cs │ ├── TaggedLinesSimplifier.cs │ ├── TopologyPreservingSimplifier.cs │ ├── VWLineSimplifier.cs │ └── VWSimplifier.cs ├── Triangulate │ ├── ConformingDelaunayTriangulationBuilder.cs │ ├── ConformingDelaunayTriangulator.cs │ ├── ConstraintEnforcementException.cs │ ├── ConstraintVertex.cs │ ├── ConstraintVertexFactory.cs │ ├── DelaunayTriangulationBuilder.cs │ ├── IConstraintSplitPointFinder.cs │ ├── IncrementalDelaunayTriangulator.cs │ ├── MidpointSplitPointFinder.cs │ ├── NonEncroachingSplitPointFinder.cs │ ├── QuadEdge │ │ ├── EdgeConnectedTriangleTraversal.cs │ │ ├── IQuadEdgeLocator.cs │ │ ├── ITraversalVisitor.cs │ │ ├── ITriangleVisitor.cs │ │ ├── LastFoundQuadEdgeLocator.cs │ │ ├── LocateFailureException.cs │ │ ├── QuadEdge.cs │ │ ├── QuadEdgeSubdivision.cs │ │ ├── QuadEdgeSummary.xml │ │ ├── QuadEdgeTriangle.cs │ │ ├── QuadEdgeUtil.cs │ │ ├── TrianglePredicate.cs │ │ └── Vertex.cs │ ├── Segment.cs │ ├── SplitSegment.cs │ ├── TriangulateSummary.xml │ ├── VertexTaggedGeometryDataMapper.cs │ └── VoronoiDiagramBuilder.cs ├── Utilities │ ├── AlternativePriorityQueue.cs │ ├── Assert.cs │ ├── AssertionFailedException.cs │ ├── BitConverter.cs │ ├── BitTweaks.cs │ ├── Caster.cs │ ├── CollectionUtil.cs │ ├── CoordinateArrayFilter.cs │ ├── CoordinateCompare.cs │ ├── CoordinateCountFilter.cs │ ├── Degrees.cs │ ├── EnumUtility.cs │ ├── FrameworkReplacements │ │ ├── Collections │ │ │ ├── Generic │ │ │ │ ├── BitHelper.cs │ │ │ │ ├── EnumerableHelpers.cs │ │ │ │ ├── HashSet.cs │ │ │ │ ├── IReadOnlyCollection.cs │ │ │ │ ├── IReadOnlyDictionary.cs │ │ │ │ ├── ISet.cs │ │ │ │ ├── SortedDictionary.cs │ │ │ │ └── SortedSet.cs │ │ │ └── HashHelpers.cs │ │ └── ReadMe.txt │ ├── FunctionsUtility.cs │ ├── GeoToolsStreamTokenizer.cs │ ├── GeometricShapeFactory.cs │ ├── Global.cs │ ├── Guard.cs │ ├── HexConverter.cs │ ├── Memory.cs │ ├── PlatformUtilityEx.cs │ ├── PriorityQueue.cs │ ├── PriorityQueueNode.cs │ ├── RToolsUtil │ │ ├── CharBuffer.cs │ │ ├── StreamTokenizer.cs │ │ ├── Token.cs │ │ └── VerbosityLevel.cs │ ├── Radians.cs │ ├── ReverseOrder.cs │ ├── StreamTokenizer.cs │ ├── StringEx.cs │ └── UniqueCoordinateArrayFilter.cs ├── nts.snk └── packages.config ├── PortableClassLibrary ├── GeoAPI.Bootstrapper.NetTopologySuite │ ├── GeoAPI.BootStrapper.NetTopologySuite.csproj │ ├── NetTopologySuiteBootstrapper.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── packages.config ├── NetTopologySuite.Pcl │ ├── Extension │ │ ├── ICoordinateEx.cs │ │ └── IEnvelopeEx.cs │ ├── NetTopologySuite.Pcl.csproj │ └── packages.config └── NetTopologySuite.Tests.NUnit.Pcl │ ├── NetTopologySuite.Tests.NUnit.Pcl.csproj │ ├── PclSetup.cs │ └── packages.config ├── README.md ├── Sandcastle ├── DocFiles │ └── minClearance.png └── NetTopologySuite.shfbproj ├── SharedAssemblyVersion.cs ├── TeamCity.proj └── TeamCity.targets /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/.gitmodules -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: csharp 2 | solution: NetTopologySuite.sln 3 | install: 4 | - nuget restore NetTopologySuite.sln 5 | - nuget install NUnit.Runners -Version 2.6.4 -OutputDirectory testrunner 6 | script: 7 | - xbuild /p:Configuration=ReleaseLinux NetTopologySuite.sln 8 | - mono ./testrunner/NUnit.Runners.2.6.4/tools/nunit-console.exe ./Release/v4.0/AnyCPU/NetTopologySuite.Tests.NUnit.dll 9 | -------------------------------------------------------------------------------- /BuildTools/GeoAPI.Pcl.Reference.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | portable-net403+sl5+netcore45+wpa81+wp8+MonoAndroid10+XamariniOS10+MonoTouch10 5 | 6 | 7 | 8 | $(SolutionDir)packages\GeoAPI.1.7.4\lib\$(fwVersion)\GeoAPI.dll 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BuildTools/GeoAPI.Reference.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net40-client 5 | 6 | 7 | 8 | $(SolutionDir)packages\DotSpatial.GeoAPI.1.7.4.3\lib\$(fwVersion)\DotSpatial.GeoAPI.dll 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BuildTools/GeoAPI.version: -------------------------------------------------------------------------------- 1 | 1.7.4.3 2 | -------------------------------------------------------------------------------- /BuildTools/NuGet.Config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /BuildTools/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/BuildTools/NuGet.exe -------------------------------------------------------------------------------- /DSNetTopologySuite.sln.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True 3 | C:\Progetti\GitHub\NetTopologySuite\NetTopologySuite.sln.DotSettings 4 | 5 | True 6 | 1 -------------------------------------------------------------------------------- /LocalTestRun.testrunconfig: -------------------------------------------------------------------------------- 1 |  2 | 3 | This is a default test run configuration for a local test run. 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.Converter/NetTopologySuite.Converter.DotSpatial/NetTopologySuite.Converter.DotSpatial.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Converter/NetTopologySuite.Converter.DotSpatial/NetTopologySuite.Converter.DotSpatial.snk -------------------------------------------------------------------------------- /NetTopologySuite.Converter/NetTopologySuite.Converter.DotSpatial/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /NetTopologySuite.Converter/NetTopologySuite.Converter.SpatialLite/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /NetTopologySuite.Converter/NetTopologySuite.Converter.Test/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /NetTopologySuite.CoordinateSystems.Transfromation/DotSpatial.Projections.Wrapper/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GDB/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoJSON.Pcl/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoJSON/GeoJsonReader.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using Newtonsoft.Json; 3 | 4 | namespace NetTopologySuite.IO 5 | { 6 | /// 7 | /// Represents a GeoJSON Reader allowing for deserialization of various GeoJSON elements 8 | /// or any object containing GeoJSON elements. 9 | /// 10 | public class GeoJsonReader 11 | { 12 | /// 13 | /// Reads the specified json. 14 | /// 15 | /// The type of the object. 16 | /// The json. 17 | /// 18 | public TObject Read(string json) 19 | where TObject : class 20 | { 21 | JsonSerializer g = new GeoJsonSerializer(); 22 | using (StringReader sr = new StringReader(json)) 23 | { 24 | return g.Deserialize(new JsonTextReader(sr)); 25 | } 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoJSON/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools.Silverlight/SLShapeFileDataEnumerator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using NetTopologySuite.Data; 3 | 4 | namespace NetTopologySuite.IO.GeoTools 5 | { 6 | 7 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools.Silverlight/StringToGeometryConverter.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Data; 3 | using NetTopologySuite.Geometries; 4 | 5 | namespace NetTopologySuite.IO.GeoTools 6 | { 7 | public class StringToGeometryConverter : CustomConverterBase 8 | { 9 | private readonly WKTReader _reader; 10 | 11 | public StringToGeometryConverter() : this(new GeometryFactory()) 12 | { 13 | } 14 | 15 | public StringToGeometryConverter(IGeometryFactory geometryFactory) 16 | { 17 | _reader = new WKTReader(geometryFactory); 18 | } 19 | 20 | public override IGeometry Convert(string source) 21 | { 22 | return _reader.Read(source); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/MBRInfo.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.IO.Handlers 4 | { 5 | public class MBRInfo 6 | { 7 | public MBRInfo(Envelope shapeMBR, long offsetFromStartOfFile, int shapeIndex) 8 | { 9 | ShapeFileDetails = new ShapeLocationInFileInfo(offsetFromStartOfFile, shapeIndex); 10 | ShapeMBR = shapeMBR; 11 | } 12 | 13 | public ShapeLocationInFileInfo ShapeFileDetails { get; private set; } 14 | public Envelope ShapeMBR { get; private set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/NullShapeHandler.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.IO; 3 | using GeoAPI.Geometries; 4 | 5 | namespace NetTopologySuite.IO.Handlers 6 | { 7 | public class NullShapeHandler : ShapeHandler 8 | { 9 | public NullShapeHandler() 10 | : base(ShapeGeometryType.NullShape) 11 | { 12 | } 13 | 14 | public override IGeometry Read(BigEndianBinaryReader file, 15 | int totalRecordLength, IGeometryFactory factory) 16 | { 17 | return null; 18 | } 19 | 20 | public override void Write(IGeometry geometry, BinaryWriter writer, IGeometryFactory factory) 21 | { } 22 | 23 | public override int ComputeRequiredLengthInWords(IGeometry geometry) 24 | { 25 | return -1; 26 | } 27 | 28 | public override IEnumerable ReadMBRs(BigEndianBinaryReader reader) 29 | { 30 | reader.Close(); 31 | return new MBRInfo[0]; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/PointMBREnumerator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | 4 | namespace NetTopologySuite.IO.Handlers 5 | { 6 | internal class PointMBREnumerator : IEnumerable 7 | { 8 | private readonly BigEndianBinaryReader m_Reader; 9 | 10 | public PointMBREnumerator(BigEndianBinaryReader reader) 11 | { 12 | m_Reader = reader; 13 | } 14 | 15 | public IEnumerator GetEnumerator() 16 | { 17 | return new PointMBRIterator(m_Reader); 18 | } 19 | 20 | IEnumerator IEnumerable.GetEnumerator() 21 | { 22 | return ((IEnumerable)this).GetEnumerator(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/PointMBRIterator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using GeoAPI.Geometries; 6 | 7 | namespace NetTopologySuite.IO.Handlers 8 | { 9 | internal class PointMBRIterator : ShapeMBREnumeratorBase 10 | { 11 | public PointMBRIterator(BigEndianBinaryReader reader) 12 | : base(reader) 13 | { } 14 | 15 | protected override Envelope ReadCurrentEnvelope(out int numOfBytesRead) 16 | { 17 | double x = Reader.ReadDouble(); 18 | double y = Reader.ReadDouble(); 19 | 20 | numOfBytesRead = 16; 21 | 22 | return new Envelope(new Coordinate(x, y)); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/ShapeHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/ShapeHandler.cs -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/ShapeLocationInFileInfo.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Handlers 2 | { 3 | public class ShapeLocationInFileInfo 4 | { 5 | public ShapeLocationInFileInfo(long offsetFromStartOfFile, int shapeIndex) 6 | { 7 | OffsetFromStartOfFile = offsetFromStartOfFile; 8 | ShapeIndex = shapeIndex; 9 | } 10 | 11 | public long OffsetFromStartOfFile { get; private set; } 12 | 13 | /// 14 | /// Zero based shape index in file. 15 | /// 16 | public int ShapeIndex { get; private set; } 17 | } 18 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/ShapeMBREnumerator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | 4 | namespace NetTopologySuite.IO.Handlers 5 | { 6 | internal class ShapeMBREnumerator : IEnumerable 7 | { 8 | private readonly BigEndianBinaryReader m_Reader; 9 | 10 | public ShapeMBREnumerator(BigEndianBinaryReader reader) 11 | { 12 | m_Reader = reader; 13 | } 14 | 15 | public IEnumerator GetEnumerator() 16 | { 17 | return new ShapeMBRIterator(m_Reader); 18 | } 19 | 20 | IEnumerator IEnumerable.GetEnumerator() 21 | { 22 | return ((IEnumerable)this).GetEnumerator(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/Handlers/ShapeMBRIterator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using GeoAPI.Geometries; 6 | 7 | namespace NetTopologySuite.IO.Handlers 8 | { 9 | internal class ShapeMBRIterator : ShapeMBREnumeratorBase 10 | { 11 | public ShapeMBRIterator(BigEndianBinaryReader reader) 12 | : base(reader) 13 | { } 14 | 15 | protected override Envelope ReadCurrentEnvelope(out int numOfBytesRead) 16 | { 17 | Double xMin = Reader.ReadDouble(); 18 | Double yMin = Reader.ReadDouble(); 19 | Double xMax = Reader.ReadDouble(); 20 | Double yMax = Reader.ReadDouble(); 21 | 22 | numOfBytesRead = 8 * 4; 23 | 24 | return new Envelope(new Coordinate(xMin, yMin), new Coordinate(xMax, yMax)); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.GeoTools/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.MsSqlSpatial/MsSqlSpatialReader.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using GeoAPI.Geometries; 3 | using GeoAPI.IO; 4 | 5 | namespace NetTopologySuite.IO 6 | { 7 | public class MsSqlSpatialReader : WKBReader 8 | { 9 | public override IGeometry Read(Stream stream) 10 | { 11 | BinaryReader reader = null; 12 | var byteOrder = (ByteOrder)stream.ReadByte(); 13 | try 14 | { 15 | if (byteOrder == ByteOrder.BigEndian) 16 | reader = new BEBinaryReader(stream); 17 | else reader = new BinaryReader(stream); 18 | IGeometry geometry = Read(reader); 19 | int srid = -1; 20 | try 21 | { 22 | srid = reader.ReadInt32(); 23 | } 24 | catch { } 25 | if (srid == 0) 26 | srid = -1; 27 | geometry.SRID = srid; 28 | return geometry; 29 | } 30 | finally 31 | { 32 | if (reader != null) 33 | reader.Close(); 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.MsSqlSpatial/MsSqlSpatialWriter.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using GeoAPI.Geometries; 3 | using GeoAPI.IO; 4 | 5 | namespace NetTopologySuite.IO 6 | { 7 | public class MsSqlSpatialWriter : WKBWriter 8 | { 9 | protected override int SetByteStream(IGeometry geometry) 10 | { 11 | return base.SetByteStream(geometry) + 4; // sizeof(int) 12 | } 13 | 14 | public override byte[] Write(IGeometry geometry) 15 | { 16 | byte[] bytes = new byte[SetByteStream(geometry)]; 17 | Write(geometry, new MemoryStream(bytes)); 18 | return bytes; 19 | } 20 | 21 | public override void Write(IGeometry geometry, Stream stream) 22 | { 23 | BinaryWriter writer = null; 24 | try 25 | { 26 | if (EncodingType == ByteOrder.LittleEndian) 27 | writer = new BinaryWriter(stream); 28 | else writer = new BEBinaryWriter(stream); 29 | Write(geometry, writer); 30 | writer.Write(geometry.SRID); 31 | } 32 | finally 33 | { 34 | if (writer != null) 35 | writer.Close(); 36 | } 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.MsSqlSpatial/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Oracle/README.txt: -------------------------------------------------------------------------------- 1 | Beware: this code is in a working status, and doesn't compile yet, so solution doesn't build the project by default) 2 | 3 | To get a valid NetTopologySuite.IO.Oracle project, you need a reference to Oracle.DataAccess.dll 4 | You can download the oracle reference (i.e. ODAC) from: 5 | http://www.oracle.com/technetwork/database/windows/downloads 6 | 7 | At the time of writing, you can grab 'ODAC 11.2 Release 3 (11.2.0.2.1)' from 8 | http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html 9 | 10 | You can install the package and then reference 'Oracle.DataAccess.dll' from the GAC, 11 | or take the "Xcopy Deployment" package, unzip in a folder and take 'Oracle.DataAccess.dll' inside 'odp.net20\odp.net\bin\2.x' folder -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Oracle/Sdo/SdoEType.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Sdo 2 | { 3 | internal enum SdoEType 4 | { 5 | Unknown = -1, 6 | Coordinate = 1, 7 | Line = 2, 8 | Polygon = 3, 9 | PolygonExterior = 1003, 10 | PolygonInterior = 2003 11 | } 12 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Oracle/Sdo/SdoGTemplate.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Sdo 2 | { 3 | internal enum SdoGTemplate 4 | { 5 | Coordinate = 01, 6 | Line = 02, 7 | Polygon = 03, 8 | Collection = 04, 9 | MultiPoint = 05, 10 | MultiLine = 06, 11 | MultiPolygon = 07, 12 | Unknown = -1 13 | } 14 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Oracle/Spec/b28400.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.IO/NetTopologySuite.IO.Oracle/Spec/b28400.pdf -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Oracle/UdtBase/OracleArrayTypeFactoryBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Oracle.DataAccess.Types; 3 | 4 | namespace NetTopologySuite.IO.UdtBase 5 | { 6 | public abstract class OracleArrayTypeFactoryBase : IOracleArrayTypeFactory 7 | { 8 | public Array CreateArray(int numElems) 9 | { 10 | return new T[numElems]; 11 | } 12 | 13 | public Array CreateStatusArray(int numElems) 14 | { 15 | return null; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Oracle/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.PostGis/PostGisGeometryType.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO 2 | { 3 | /// 4 | /// PostGIS Geometry types as defined in the OGC WKB Spec 5 | /// 6 | internal enum PostGisGeometryType 7 | { 8 | 9 | /// 10 | /// The OGIS geometry type number for points. 11 | /// 12 | Point = 1, 13 | 14 | /// 15 | /// The OGIS geometry type number for lines. 16 | /// 17 | LineString = 2, 18 | 19 | /// 20 | /// The OGIS geometry type number for polygons. 21 | /// 22 | Polygon = 3, 23 | 24 | /// 25 | /// The OGIS geometry type number for aggregate points. 26 | /// 27 | MultiPoint = 4, 28 | 29 | /// 30 | /// The OGIS geometry type number for aggregate lines. 31 | /// 32 | MultiLineString = 5, 33 | 34 | /// 35 | /// The OGIS geometry type number for aggregate polygons. 36 | /// 37 | MultiPolygon = 6, 38 | 39 | /// 40 | /// The OGIS geometry type number for feature collections. 41 | /// 42 | GeometryCollection = 7, 43 | 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.PostGis/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.ShapeFile.Extended/Entities/IShapefileFeature.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.Features; 2 | 3 | namespace NetTopologySuite.IO.ShapeFile.Extended.Entities 4 | { 5 | public interface IShapefileFeature : IFeature 6 | { 7 | long FeatureId { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.ShapeFile.Extended/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.ShapeFile/ShapeFileConstants.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO 2 | { 3 | /// 4 | /// Shapefile specific constants 5 | /// 6 | internal class ShapeFileConstants 7 | { 8 | /// 9 | /// Every value less that this is considered as not set. 10 | /// 11 | internal const double NoDataBorder = -10e38d; 12 | 13 | /// 14 | /// A value that represents an unset value 15 | /// 16 | internal const double NoDataValue = -10e38d - 1; 17 | } 18 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.ShapeFile/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.SpatiaLite.MonoDroid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.IO/NetTopologySuite.IO.SpatiaLite.MonoDroid/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.SpatiaLite.Pcl/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.SpatiaLite/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.SqlServer2008/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Streams.CloudStorage.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Streams.CloudStorage.Test/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Streams.CloudStorage/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Tests/GeoJSON/NamedCRSTest.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using NetTopologySuite.CoordinateSystems; 3 | 4 | namespace NetTopologySuite.IO.Tests.GeoJSON 5 | { 6 | /// 7 | /// This is a test class for NamedCRSTest and is intended 8 | /// to contain all NamedCRSTest Unit Tests 9 | /// 10 | [TestFixture] 11 | public class NamedCRSTest 12 | { 13 | /// 14 | /// A test for NamedCRS Constructor 15 | /// 16 | [Test] 17 | public void NamedCRSConstructorTest() 18 | { 19 | const string name = "testName"; 20 | NamedCRS target = new NamedCRS(name); 21 | Assert.AreEqual(name, target.Properties["name"]); 22 | Assert.AreEqual(CRSTypes.Name, target.Type); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Tests/ShapeFile.Extended/TempFileWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace NetTopologySuite.IO.Tests.ShapeFile.Extended 5 | { 6 | public class TempFileWriter : IDisposable 7 | { 8 | public TempFileWriter(string fileName, byte[] data) 9 | { 10 | Path = System.IO.Path.GetFullPath(fileName); 11 | File.WriteAllBytes(Path, data); 12 | } 13 | 14 | public TempFileWriter(string fileName, string data) 15 | { 16 | Path = System.IO.Path.GetFullPath(fileName); 17 | File.WriteAllText(Path, data); 18 | } 19 | 20 | ~TempFileWriter() 21 | { 22 | InternalDispose(); 23 | } 24 | 25 | public void Dispose() 26 | { 27 | InternalDispose(); 28 | GC.SuppressFinalize(this); 29 | } 30 | 31 | private void InternalDispose() 32 | { 33 | try 34 | { 35 | File.Delete(Path); 36 | } 37 | catch { } 38 | } 39 | 40 | public string Path { get; private set; } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Tests/TopoJSON/TopoWriterData.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.TopoJSON.Fixtures 2 | { 3 | internal static class TopoWriterData 4 | { 5 | internal const string SimplePoint = @"{""type"":""Topology"",""objects"":{""data"":{""type"":""Point"",""coordinates"":[23.4,56.7],""properties"":{""prop0"":""value0"",""prop1"":""value1""}}}}"; 6 | 7 | internal const string SimpleLineString = @"{""type"":""Topology"",""objects"":{""data"":{""type"":""LineString"",""arcs"":[0],""properties"":{""prop0"":""value0"",""prop1"":""value1""}}},""arcs"":[[[10.1,10.0],[20.2,20.0],[30.3,30.0]]]}"; 8 | 9 | internal const string SimplePolygon = @"{""type"":""Topology"",""objects"":{""data"":{""type"":""Polygon"",""arcs"":[[0]],""properties"":{""prop0"":""value0"",""prop1"":""value1""}}},""arcs"":[[[10.1,10.0],[20.2,20.0],[30.3,30.0],[10.1,10.0]]]}"; 10 | internal const string PolygonWithHole = @"{""type"":""Topology"",""objects"":{""data"":{""type"":""Polygon"",""arcs"":[[0,1]],""properties"":{""prop0"":""value0"",""prop1"":""value1""}}},""arcs"":[[[10.1,10.0],[20.2,20.0],[30.3,30.0],[10.1,10.0]],[[15.0,15.0],[17.0,15.0],[15.0,17.0],[15.0,15.0]]]}"; 11 | } 12 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.Tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Builders/ITopoBuilder.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.IO.Geometries; 2 | 3 | namespace NetTopologySuite.IO.Builders 4 | { 5 | internal interface ITopoBuilder 6 | { 7 | TopoObject Build(); 8 | } 9 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoCollection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | internal class TopoCollection : TopoObject 6 | { 7 | private readonly TopoObject[] _geometries; 8 | 9 | public TopoCollection(string type, TopoObject[] geometries) 10 | : base(type) 11 | { 12 | if (geometries == null) 13 | throw new ArgumentNullException("geometries"); 14 | _geometries = geometries; 15 | } 16 | 17 | public TopoObject[] Geometries 18 | { 19 | get { return _geometries; } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoCurve.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | internal abstract class TopoCurve : TopoObject 6 | { 7 | private readonly int[][] _arcs; 8 | 9 | public TopoCurve(string type, int[][][] arcs) 10 | : base(type) 11 | { 12 | if (arcs == null) 13 | throw new ArgumentNullException("arcs"); 14 | if (arcs.Length == 0) 15 | throw new ArgumentException("arcs empty"); 16 | if (arcs.Length > 1) 17 | throw new ArgumentException("arcs too long"); 18 | _arcs = arcs[0]; 19 | } 20 | 21 | public int[][] Arcs 22 | { 23 | get { return _arcs; } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoLineString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | internal class TopoLineString : TopoObject 6 | { 7 | private readonly int[] _arcs; 8 | 9 | public TopoLineString(string type, int[][][] arcs) 10 | : base(type) 11 | { 12 | if (arcs == null) 13 | throw new ArgumentNullException("arcs"); 14 | if (arcs.Length == 0) 15 | throw new ArgumentException("arcs empty"); 16 | if (arcs.Length > 1) 17 | throw new ArgumentException("arcs too long"); 18 | int[][] arc = arcs[0]; 19 | if (arc.Length == 0) 20 | throw new ArgumentException("arc empty"); 21 | if (arc.Length > 1) 22 | throw new ArgumentException("arc too long"); 23 | _arcs = arc[0]; 24 | } 25 | 26 | public int[] Arcs 27 | { 28 | get { return _arcs; } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoMultiLineString.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Geometries 2 | { 3 | internal class TopoMultiLineString: TopoCurve 4 | { 5 | public TopoMultiLineString(string type, int[][][] arcs) 6 | : base(type, arcs) { } 7 | } 8 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoMultiPoint.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | internal class TopoMultiPoint : TopoObject 6 | { 7 | private readonly double[][] _coordinates; 8 | 9 | public TopoMultiPoint(string type, double[][] coordinates) 10 | : base(type) 11 | { 12 | if (coordinates == null) 13 | throw new ArgumentNullException("coordinates"); 14 | _coordinates = coordinates; 15 | } 16 | 17 | public double[][] Coordinates 18 | { 19 | get { return _coordinates; } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoMultiPolygon.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | internal class TopoMultiPolygon : TopoObject 6 | { 7 | private readonly int[][][] _arcs; 8 | 9 | public TopoMultiPolygon(string type, int[][][] arcs) 10 | : base(type) 11 | { 12 | if (arcs == null) 13 | throw new ArgumentNullException("arcs"); 14 | _arcs = arcs; 15 | } 16 | 17 | public int[][][] Arcs 18 | { 19 | get { return _arcs; } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoObject.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.Features; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | public abstract class TopoObject 6 | { 7 | private readonly string _type; 8 | 9 | protected TopoObject(string type) 10 | { 11 | _type = type; 12 | } 13 | 14 | public string Type 15 | { 16 | get { return _type; } 17 | } 18 | 19 | public long Id { get; set; } 20 | 21 | public IAttributesTable Properties { get; set; } 22 | 23 | public override string ToString() 24 | { 25 | return string.Format("Type: {0}", Type); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoPoint.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.IO.Geometries 4 | { 5 | internal class TopoPoint : TopoObject 6 | { 7 | private readonly double[] _coordinates; 8 | 9 | public TopoPoint(string type, double[][] coordinates) 10 | : base(type) 11 | { 12 | if (coordinates == null) 13 | throw new ArgumentNullException("coordinates"); 14 | if (coordinates.Length == 0) 15 | throw new ArgumentException("coordinates empty"); 16 | if (coordinates.Length > 1) 17 | throw new ArgumentException("coordinates too long"); 18 | _coordinates = coordinates[0]; 19 | } 20 | 21 | public double[] Coordinates 22 | { 23 | get { return _coordinates; } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Geometries/TopoPolygon.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Geometries 2 | { 3 | internal class TopoPolygon : TopoCurve 4 | { 5 | public TopoPolygon(string type, int[][][] arcs) 6 | : base(type, arcs) { } 7 | } 8 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Helpers/ITransform.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Helpers 2 | { 3 | public interface ITransform 4 | { 5 | bool Quantized { get; } 6 | double[] Scale { get; } 7 | double[] Translate { get; } 8 | } 9 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/Helpers/ITransformer.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.Features; 2 | using NetTopologySuite.IO.Geometries; 3 | 4 | namespace NetTopologySuite.IO.Helpers 5 | { 6 | public interface ITransformer 7 | { 8 | FeatureCollection Create(TopoObject data); 9 | } 10 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/TopoJsonWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | using GeoAPI.Geometries; 5 | using NetTopologySuite.Features; 6 | using NetTopologySuite.Geometries; 7 | using Newtonsoft.Json; 8 | 9 | namespace NetTopologySuite.IO 10 | { 11 | /// 12 | /// Represents a TopoJSON Writer, uesd to serialize TopoJSON elements. 13 | /// 14 | public class TopoJsonWriter 15 | { 16 | /// 17 | /// Writes the specified feature. 18 | /// 19 | /// The feature. 20 | /// 21 | public string Write(IFeature feature) 22 | { 23 | if (feature == null) 24 | throw new ArgumentNullException("feature"); 25 | 26 | IGeometryFactory factory = GeometryFactory.Default; 27 | JsonSerializer g = new TopoJsonSerializer(factory); 28 | StringBuilder sb = new StringBuilder(); 29 | using (StringWriter sw = new StringWriter(sb)) 30 | g.Serialize(sw, feature); 31 | return sb.ToString(); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO.TopoJSON/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO/IO/Streams/IStreamProvider.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace NetTopologySuite.IO.Streams 4 | { 5 | /// 6 | /// Interface for stream provider 7 | /// 8 | public interface IStreamProvider 9 | { 10 | /// 11 | /// Gets a value indicating that the underlying stream is read-only 12 | /// 13 | bool UnderlyingStreamIsReadonly { get; } 14 | 15 | /// 16 | /// Function to open the underlying stream for reading purposes 17 | /// 18 | /// An opened stream 19 | Stream OpenRead(); 20 | 21 | /// 22 | /// Function to open the underlying stream for writing purposes 23 | /// 24 | /// 25 | /// If is not true this method shall fail 26 | /// An opened stream 27 | Stream OpenWrite(bool truncate); 28 | 29 | /// 30 | /// Gets a value indicating the kind of stream 31 | /// 32 | string Kind { get; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO/IO/Streams/IStreamProviderRegistry.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.Streams 2 | { 3 | /// 4 | /// Interface for a registry of stream providers 5 | /// 6 | public interface IStreamProviderRegistry 7 | { 8 | /// 9 | /// Indexer for a stream provider 10 | /// 11 | /// The stream type 12 | /// A stream provider 13 | IStreamProvider this[string streamType] { get; } 14 | } 15 | 16 | /// 17 | /// An enumeration of stream types 18 | /// 19 | public static class StreamTypes 20 | { 21 | /// 22 | /// A shape stream 23 | /// 24 | public const string Shape = "SHAPESTREAM"; 25 | /// 26 | /// A data stream (dbf) 27 | /// 28 | public const string Data = "DATASTREAM"; 29 | /// 30 | /// An index stream 31 | /// 32 | public const string Index = "INDEXSTREAM"; 33 | } 34 | } -------------------------------------------------------------------------------- /NetTopologySuite.IO/NetTopologySuite.IO/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.Lab/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("NetTopologySuite.Lab")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("NetTopologySuite - Team")] 11 | [assembly: AssemblyProduct("NetTopologySuite.Lab")] 12 | [assembly: AssemblyCopyright("Copyright © NetTopologySuite - Team 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("d446fba3-b6ea-4feb-9615-d5fd5aeb3d23")] 23 | 24 | -------------------------------------------------------------------------------- /NetTopologySuite.Lab/nts.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Lab/nts.snk -------------------------------------------------------------------------------- /NetTopologySuite.Lab/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Geometries/basicexample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Geometries; 4 | using NetTopologySuite.IO; 5 | 6 | namespace NetTopologySuite.Samples.Geometries 7 | { 8 | /// 9 | /// Shows basic ways of creating and operating on geometries 10 | /// 11 | public class BasicExample 12 | { 13 | [STAThread] 14 | public static void main(string[] args) 15 | { 16 | // read a point from a WKT string (using the default point factory) 17 | IGeometry g1 = new WKTReader().Read("LINESTRING (0 0, 10 10, 20 20)"); 18 | Console.WriteLine("Geometry 1: " + g1); 19 | 20 | // create a point by specifying the coordinates directly 21 | var coordinates = new [] { new Coordinate(0, 0), 22 | new Coordinate(10, 10), new Coordinate(20, 20) }; 23 | // use the default factory, which gives full double-precision 24 | IGeometry g2 = new GeometryFactory().CreateLineString(coordinates); 25 | Console.WriteLine("Geometry 2: " + g2); 26 | 27 | // compute the intersection of the two geometries 28 | IGeometry g3 = g1.Intersection(g2); 29 | Console.WriteLine("G1 intersection G2: " + g3); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Lab/Functions/RemoverFunctions.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Samples.Lab.Clean; 3 | 4 | namespace Open.Topology.TestRunner.Functions 5 | { 6 | // NOTE: should be moved to 'NetTopologySuite.TestRunner' project, 'Functions' folder... 7 | public static class RemoverFunctions 8 | { 9 | public static IGeometry RemoveSmallHoles(IGeometry geom, double areaTolerance) 10 | { 11 | return SmallHoleRemover.Clean(geom, areaTolerance); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using NetTopologySuite.Samples.SimpleTests.ShapeTests; 3 | using NUnit.Framework; 4 | 5 | namespace NetTopologySuite.Samples.SimpleTests 6 | { 7 | [TestFixture] 8 | public class Program 9 | { 10 | [STAThread] 11 | public static void Main(string[] args) 12 | { 13 | new Program().Start(); 14 | } 15 | 16 | private static BaseSamples _sample; 17 | 18 | public void Start() 19 | { 20 | SamplesTest(true); 21 | } 22 | 23 | [Test] 24 | public void SamplesTest() 25 | { 26 | SamplesTest(false); 27 | } 28 | 29 | public void SamplesTest(bool readLine) 30 | { 31 | try 32 | { 33 | _sample = new GMLTesting(); 34 | _sample.Start(); 35 | Console.WriteLine(); 36 | } 37 | finally 38 | { 39 | if (readLine) Console.ReadLine(); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Console/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/ReadMe.txt: -------------------------------------------------------------------------------- 1 | We have two group of tests: 2 | 3 | Some simple tests are used by me (Diego Guidi) for C# porting and are started by root/program.cs Main entry point. 4 | Other tests are in *Example.cs classes and are created for JTS team. 5 | Search for methods named "main" in those classes and rename as Main the tests to start. 6 | 7 | If the console samples don't start, assure that in the project properties, Debug tab, 8 | Start Program is activated! -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/SimpleTests/BaseSamples.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Geometries; 4 | using NetTopologySuite.IO; 5 | 6 | namespace NetTopologySuite.Samples.SimpleTests 7 | { 8 | public class BaseSamples 9 | { 10 | protected IGeometryFactory Factory { get; private set; } 11 | 12 | protected WKTReader Reader { get; private set; } 13 | 14 | protected BaseSamples() : this(new GeometryFactory(), new WKTReader()) { } 15 | 16 | protected BaseSamples(IGeometryFactory factory) : this(factory, new WKTReader(factory)) { } 17 | 18 | protected BaseSamples(IGeometryFactory factory, WKTReader reader) 19 | { 20 | Factory = factory; 21 | Reader = reader; 22 | } 23 | 24 | protected void Write(object o) 25 | { 26 | Console.WriteLine(o.ToString()); 27 | } 28 | 29 | protected void Write(string s) 30 | { 31 | Console.WriteLine(s); 32 | } 33 | 34 | public virtual void Start() { } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Github/Issue58Fixture.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.Features; 2 | using NetTopologySuite.IO; 3 | using NUnit.Framework; 4 | 5 | namespace NetTopologySuite.Samples.Tests.Github 6 | { 7 | [TestFixture] 8 | public class Issue58Fixture 9 | { 10 | [Test] 11 | public void geojson_should_serialize_nested_objects() 12 | { 13 | const string json = @" 14 | { 15 | ""type"": ""FeatureCollection"", 16 | ""features"": [ 17 | { 18 | ""type"": ""Feature"", 19 | ""geometry"": { 20 | ""type"": ""Point"", 21 | ""coordinates"": [ 22 | 1.0, 23 | 2.0 24 | ] 25 | }, 26 | ""properties"": { 27 | ""foo"": { 28 | ""bar"": ""xyz"" 29 | } 30 | } 31 | } 32 | ] 33 | } 34 | "; 35 | GeoJsonReader reader = new GeoJsonReader(); 36 | FeatureCollection coll = reader.Read(json); 37 | Assert.IsNotNull(coll); 38 | 39 | GeoJsonWriter writer = new GeoJsonWriter(); 40 | string s = writer.Write(coll); 41 | Assert.IsNotNull(s); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/IO/ShapeFileReadTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Console/Tests/IO/ShapeFileReadTest.cs -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Readme.txt: -------------------------------------------------------------------------------- 1 | Run this tests with TestDriven.NET plugin for VS2005! 2 | Simply install the plugin @ http://www.testdriven.net/, 3 | then click with the mouse right-button and ... launch test! 4 | Could be more easier than this? :) 5 | [=> yes, you can assign it a keyboard shortcut :-P] 6 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/GeometriesFixture.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NUnit.Framework; 3 | using NetTopologySuite.Geometries; 4 | using NetTopologySuite.Geometries.Implementation; 5 | 6 | namespace NetTopologySuite.Samples.Tests.Various 7 | { 8 | [TestFixture] 9 | public class GeometriesFixture 10 | { 11 | [Test] 12 | public void get_interior_point_of_empty_point() 13 | { 14 | ICoordinateSequence sequence = CoordinateArraySequenceFactory.Instance.Create(0, Ordinates.XY); 15 | IGeometryFactory factory = GeometryFactory.Default; 16 | IGeometry empty = factory.CreatePoint(sequence); 17 | Assert.That(empty, Is.Not.Null); 18 | Assert.That(empty.IsValid, Is.True); 19 | Assert.That(empty.IsEmpty, Is.True); 20 | 21 | IPoint interior = empty.InteriorPoint; 22 | Assert.That(interior, Is.Not.Null); 23 | Assert.That(interior.IsValid, Is.True); 24 | Assert.That(interior.IsEmpty, Is.True); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/Issue117Tests.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using GeoAPI.Geometries; 3 | using NUnit.Framework; 4 | using NetTopologySuite.IO; 5 | using NetTopologySuite.IO.GML2; 6 | 7 | namespace NetTopologySuite.Tests.Various 8 | { 9 | public class Issue117Tests 10 | { 11 | [Test, Category("Issue117")] 12 | public void Issue117() 13 | { 14 | var geometryNts = new WKTReader().Read("POLYGON((0 0,100 0,100 100, 0 100, 0 0 )))"); 15 | 16 | //the features must be missing. What should I do there to add the features.Thanks 17 | var ntsGeometry = GetGeometryUsingNTS(geometryNts); 18 | using (var sw = new StreamWriter(File.Create("polygon.gml"))) 19 | { 20 | sw.Write(ntsGeometry); 21 | sw.Close(); 22 | } 23 | } 24 | 25 | private static string GetGeometryUsingNTS(IGeometry geometry) 26 | { 27 | var gmlWriter = new GMLWriter(); 28 | var ms = new MemoryStream(); 29 | 30 | gmlWriter.Write(geometry, ms); 31 | return System.Text.Encoding.Default.GetString(ms.ToArray()); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/Issue131Test.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace NetTopologySuite.Tests.Various 4 | { 5 | [TestFixture] 6 | public class Issue131Test 7 | { 8 | [Test, Category("Issue131")] 9 | public void TestNaNComparison() 10 | { 11 | const double d1 = double.NaN, d2 = double.NaN, d3 = 1; 12 | Assert.False(d1 == d2); 13 | Assert.False(d1 < d2); 14 | Assert.False(d1 > d2); 15 | Assert.False(d1 == d3); 16 | Assert.False(d1 < d3); 17 | Assert.False(d1 > d3); 18 | Assert.True(d1.CompareTo(d2) == 0); 19 | Assert.True(d1.CompareTo(d3) == -1); 20 | Assert.True(d3.CompareTo(d1) == 1); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/Issue179Fixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NUnit.Framework; 4 | 5 | namespace NetTopologySuite.Tests.Various 6 | { 7 | [TestFixture] 8 | public class Issue179Fixture 9 | { 10 | [Test] 11 | public void clone_of_null_envelope_should_return_null_envelope() 12 | { 13 | IEnvelope envelope = new Envelope(); 14 | Assert.That(envelope.IsNull, Is.True); 15 | 16 | IEnvelope clone = (IEnvelope) envelope.Clone(); 17 | Assert.That(clone, Is.Not.Null); 18 | Assert.That(clone.IsNull, Is.True); 19 | Assert.That(clone, Is.EqualTo(clone)); 20 | Assert.That(Object.ReferenceEquals(envelope, clone), Is.False); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/Issue68Tests.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.Geometries; 2 | using NUnit.Framework; 3 | 4 | namespace NetTopologySuite.Tests.Various 5 | { 6 | [TestFixture] 7 | public class Issue68Tests 8 | { 9 | [Test, Category("Issue68")] 10 | public void EqualsNullThrowsBugFix() 11 | { 12 | var polygon = new Polygon(null); 13 | var result = polygon.Equals(null); 14 | Assert.IsNotNull(result); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/Issue75Tests.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NUnit.Framework; 3 | 4 | namespace NetTopologySuite.Tests.Various 5 | { 6 | using Geometries; 7 | 8 | [TestFixture] 9 | internal class Issue75Tests 10 | { 11 | [Test, Category("Issue75")] 12 | public void EqualsThrowsInvalidCastExceptionBugFix() 13 | { 14 | Point point = new Point(1.0, 1.0); 15 | Coordinate coordinate = new Coordinate(-1.0, -1.0); 16 | bool condition = point.Equals(coordinate); 17 | Assert.IsFalse(condition); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/MiscUtil/readme.txt: -------------------------------------------------------------------------------- 1 | Jon Skeet's Miscellaneous Utility Library 2 | ----------------------------------------- 3 | 4 | You can always find the most recent version of this library at 5 | http://www.pobox.com/~skeet/csharp/miscutil 6 | 7 | Documentation and history is also available at the above website. 8 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/cant-read-file1.gml: -------------------------------------------------------------------------------- 1 | 2 | 679705.816209284 6164707.56747492680498.092702914 6164781.225833741679705.816209284 6164781.22583374 679804.626202821 6164781.22583374 679818.998565517 6164781.22583374 679977.094555176 6164765.05692571 680124.411272812 6164757.87074436 680187.290359608 6164754.27765369 680251.965991741 6164747.09147234 680366.944893311 6164734.51565498 680498.092702914 6164707.56747492 -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/cant-read-file2.gml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 680219.628175674 6164750.68456301680219.628175674 6164750.684563011680219.628175674 6164750.68456301 -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/Tests/Various/read-ok-file.gml: -------------------------------------------------------------------------------- 1 | 2 | 679705.816209284,6164707.56747492 680498.092702914,6164781.225833741679705.816209284,6164781.22583374 679804.626202821,6164781.22583374 679818.998565517,6164781.22583374 679977.094555176,6164765.05692571 680124.411272812,6164757.87074436 680187.290359608,6164754.27765369 680251.965991741,6164747.09147234 680366.944893311,6164734.51565498 680498.092702914,6164707.56747492 -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Console/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/AllNulls.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/AllNulls.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/AllNulls.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/AllNulls.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/AllNulls.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/AllNulls.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/BJmultipolygon.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/BJmultipolygon.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/BJmultipolygon.sbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/BJmultipolygon.sbn -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/BJmultipolygon.sbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/BJmultipolygon.sbx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/BJmultipolygon.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/BJmultipolygon.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/CA_Cable_region.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/CA_Cable_region.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/CA_Cable_region.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/CA_Cable_region.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/CA_Cable_region.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.DBF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.DBF -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.LYR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.LYR -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.PRJ: -------------------------------------------------------------------------------- 1 | PROJCS["RGF93_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",44.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.SHP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.SHP -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.SHX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/DEPARTEMENT.SHX -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/EmptyShapeFile.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/EmptyShapeFile.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/EmptyShapeFile.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Issue167.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Issue167.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Sept_polygones.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Sept_polygones.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Sept_polygones.sbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Sept_polygones.sbn -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Sept_polygones.sbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Sept_polygones.sbx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Sept_polygones.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Sept_polygones.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Strade.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Strade.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Strade.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Strade.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Strade.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Strade.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/US_DMA_region.dbf: -------------------------------------------------------------------------------- 1 | kaaNAMEC@KEYINFOC San Francisco-Oakland-San Jose, CA 807  -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/US_DMA_region.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/US_DMA_region.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/US_DMA_region.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/US_DMA_region.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/US_DMA_region.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterial.dbf: -------------------------------------------------------------------------------- 1 | _AQShapeNameCP Rectangle Triangle -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterial.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterial.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterialNullAtEnd.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterialNullAtEnd.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterialNullAtStart.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterialNullAtStart.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterialNullInMiddle.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/UnifiedChecksMaterialNullInMiddle.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Zone_ISTAT.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Zone_ISTAT.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Zone_ISTAT.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Zone_ISTAT.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/Zone_ISTAT.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/Zone_ISTAT.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/a.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/a.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/a.prj: -------------------------------------------------------------------------------- 1 | PROJCS["WGS_1984_UTM_Zone_49N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/a.sbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/a.sbn -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/a.sbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/a.sbx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/a.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/a.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/a.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/a.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/afvalbakken.prj: -------------------------------------------------------------------------------- 1 | PROJCS["Rijksdriehoekstelsel_New",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",155000.0],PARAMETER["False_Northing",463000.0],PARAMETER["Central_Meridian",5.38763888888889],PARAMETER["Scale_Factor",0.9999079],PARAMETER["Latitude_Of_Origin",52.15616055555555],UNIT["Meter",1.0]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/afvalbakken.sbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/afvalbakken.sbn -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/afvalbakken.sbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/afvalbakken.sbx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/afvalbakken.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/afvalbakken.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/afvalbakken.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/afvalbakken.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/arc.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/arc.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/arc.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/arc.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/arc.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/arc.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/b.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/b.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/b.prj: -------------------------------------------------------------------------------- 1 | PROJCS["WGS_1984_UTM_Zone_49N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/b.sbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/b.sbn -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/b.sbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/b.sbx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/b.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/b.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/b.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/b.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/blob/blob: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/blob/blob -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/blob/wkb_blob.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/blob/wkb_blob.jpg -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/blob/wkt.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/blob/wkt.JPG -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/christchurch-canterbury-h.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/christchurch-canterbury-h.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/christchurch-canterbury-h.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/christchurch-canterbury-h.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/christchurch-canterbury-h.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/christchurch-canterbury-h.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test3d.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test3d.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test3d.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test3d.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test_bugged.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test_bugged.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test_bugged.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test_bugged.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/crustal_test_bugged.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/crustal_test_bugged.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/date.dbf: -------------------------------------------------------------------------------- 1 | jaWIDNTHEDATED 020060310 -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/date.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/date.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/date.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/date.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/error_union.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/error_union.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/error_union.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/error_union.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/error_union.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/error_union.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/graph: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/graph -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/invalid_line_string.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/invalid_line_string.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_ed50_geo.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_ed50_geo.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_ed50_geo.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_ed50_geo.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_ed50_utm36.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_ed50_utm36.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_ed50_utm36.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_ed50_utm36.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_wgs84_geo.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_wgs84_geo.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_wgs84_geo.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_wgs84_geo.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_wgs84_utm36.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | ********** ********** -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_wgs84_utm36.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_wgs84_utm36.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/line_wgs84_utm36.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/line_wgs84_utm36.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/null_value_dbf.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | ********** -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/null_value_dbf.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/null_value_dbf.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_ed50_geo.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_ed50_geo.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_ed50_geo.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_ed50_geo.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_ed50_utm36.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_ed50_utm36.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_ed50_utm36.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_ed50_utm36.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_wgs84_geo.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_wgs84_geo.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_wgs84_geo.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_wgs84_geo.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_wgs84_utm36.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | ********** ********** ********** -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_wgs84_utm36.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_wgs84_utm36.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/point_wgs84_utm36.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/point_wgs84_utm36.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon intersecting line.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | ********** ********** -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon intersecting line.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon intersecting line.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_ed50_geo.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_ed50_geo.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_ed50_geo.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_ed50_geo.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_ed50_utm36.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | ********** ********** -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_ed50_utm36.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_ed50_utm36.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_ed50_utm36.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_ed50_utm36.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_wgs84_geo.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_wgs84_geo.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_wgs84_geo.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_wgs84_geo.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_wgs84_utm36.dbf: -------------------------------------------------------------------------------- 1 | _A idN 2 | ********** ********** -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_wgs84_utm36.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_wgs84_utm36.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/polygon_wgs84_utm36.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/polygon_wgs84_utm36.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/shape_PointZM.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/shape_PointZM.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/shape_pointM.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/shape_pointM.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/shape_pointZM_MissingM values.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/shape_pointZM_MissingM values.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/temp.gml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -1.79769313486232e+308 4 | -1.79769313486232e+308 5 | 6 | -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/test_arcview.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/test_arcview.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/test_arcview.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/test_arcview.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/test_arcview.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/test_arcview.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/test_buffer.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/test_buffer.dbf -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/test_buffer.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/test_buffer.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/test_buffer.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/test_buffer.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_arc.dbf: -------------------------------------------------------------------------------- 1 | h 2 | a=DGC_CODICEN 3 | DGC_DESCRIC2 1 2 3 4  -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_arc.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_arc.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_arc.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_arc.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_multipoint.dbf: -------------------------------------------------------------------------------- 1 | iA OBJECTIDN 1 2 -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_multipoint.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_multipoint.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_multipoint.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_multipoint.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_pol.dbf: -------------------------------------------------------------------------------- 1 | h 2 | a=DGC_CODICEN 3 | DGC_DESCRIC2 0 0 0 0 0  -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_pol.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_pol.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_pol.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_pol.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_pts.dbf: -------------------------------------------------------------------------------- 1 | h 2 | a=DGC_CODICEN 3 | DGC_DESCRIC2 1 2 3  -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_pts.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_pts.shp -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/tnp_pts.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/tnp_pts.shx -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/with_M.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] -------------------------------------------------------------------------------- /NetTopologySuite.Samples.Shapefiles/with_M.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Samples.Shapefiles/with_M.shp -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Console/App.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.TestRunner.Console/App.ico -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Console/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/Default.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | ..\..\..\NetTopologySuite.TestRunner.Tests\general 6 | ..\..\..\NetTopologySuite.TestRunner.Tests\validate 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/Other.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | ..\..\..\NetTopologySuite.TestRunner.Tests\robust 6 | ..\..\..\NetTopologySuite.TestRunner.Tests\failure 7 | ..\..\..\NetTopologySuite.TestRunner.Tests\external 8 | ..\..\..\NetTopologySuite.TestRunner.Tests\stmlf 9 | 10 | 11 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/external/TestValid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Robustness issue when validating polygon with nearly parallel edges separated by small distance 6 | (self-intersection). 7 | Fixed by extended-precision determinant. 8 | http://trac.osgeo.org/geos/ticket/588 9 | 10 | 11 | POLYGON (( 12 | -86.3958130146539250 114.3482370100377900, 13 | 55.7321237336437390 -44.8146215164960250, 14 | 87.9271046586986810 -10.5302909001479530, 15 | 87.9271046586986810 -10.5302909001479570, 16 | 138.3490775437400700 43.1639042523018260, 17 | 64.7285128575111490 156.9678884302379600, 18 | -86.3958130146539250 114.3482370100377900)) 19 | 20 | 21 | 22 | true 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/failure/TestBufferInsideNonEmpty.xml: -------------------------------------------------------------------------------- 1 | 2 | Test case from Anders Johansson - JTS list - Nov 29 2011 3 | Inside buffer of a simple rectangular geometry fails - should be empty, but is non-empty. 4 | 5 | 6 | com.vividsolutions.jtstest.testrunner.BufferResultMatcher 7 | 8 | 9 | Buffer 10 | 11 | POLYGON ((0.28 0.38, 0.41 0.21, 0.13 0, 0 0.16, 0.28 0.38)) 12 | 13 | 14 | 15 | 16 | POLYGON EMPTY 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestConvexHull-big.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Big convex hull 6 | 7 | MULTIPOINT((-1000000000000000000000000 -1000000000000000000000000), (1000000000000000000000000 -1000000000000000000000000), (1000000000000000000000000 1000000000000000000000000), (-1000000000000000000000000 1000000000000000000000000), (0 0)) 8 | 9 | 10 | 11 | POLYGON( 12 | (-1000000000000000000000000 -1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, -1000000000000000000000000 -1000000000000000000000000)) 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestFunctionLLPrec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LL - narrow V 6 | 7 | LINESTRING(0 10, 620 10, 0 11) 8 | 9 | 10 | LINESTRING(400 60, 400 10) 11 | 12 | 13 | 14 | POINT(400 10) 15 | 16 | 17 | 18 | 19 | MULTILINESTRING( 20 | (0 10, 400 10), 21 | (400 10, 620 10, 400 10), 22 | (400 10, 0 11), 23 | (400 60, 400 10)) 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestFunctionPLPrec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PP - Point just off line. Causes non-robust algorithms to fail. 6 | 7 | LINESTRING(-123456789 -40, 381039468754763 123456789) 8 | 9 | 10 | POINT(0 0) 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestPreparedPointPredicate.xml: -------------------------------------------------------------------------------- 1 | 2 | Test cases for PreparedPoint predicates 3 | 4 | com.vividsolutions.jtstest.geomop.PreparedGeometryOperation 5 | 6 | 7 | P/A - point in interior of poly 8 | POINT (100 100) 9 | 10 | POLYGON ((50 130, 150 130, 100 50, 50 130)) 11 | 12 | true 13 | 14 | 15 | 16 | P/A - point on boundary of poly 17 | POINT (100 50) 18 | 19 | POLYGON ((50 130, 150 130, 100 50, 50 130)) 20 | 21 | true 22 | 23 | 24 | 25 | P/A - point outside poly 26 | POINT (200 200) 27 | 28 | POLYGON ((50 130, 150 130, 100 50, 50 130)) 29 | 30 | false 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestRelateAC.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AC A-shells overlapping B-shell at A-vertex 6 | 7 | POLYGON( 8 | (100 60, 140 100, 100 140, 60 100, 100 60)) 9 | 10 | 11 | MULTIPOLYGON( 12 | ( 13 | (80 40, 120 40, 120 80, 80 80, 80 40)), 14 | ( 15 | (120 80, 160 80, 160 120, 120 120, 120 80)), 16 | ( 17 | (80 120, 120 120, 120 160, 80 160, 80 120)), 18 | ( 19 | (40 80, 80 80, 80 120, 40 120, 40 80))) 20 | 21 | 22 | true 23 | 24 | true 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestRelateLC.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LC - topographically equal with no boundary 6 | 7 | LINESTRING(0 0, 0 50, 50 50, 50 0, 0 0) 8 | 9 | 10 | MULTILINESTRING( 11 | (0 0, 0 50), 12 | (0 50, 50 50), 13 | (50 50, 50 0), 14 | (50 0, 0 0)) 15 | 16 | 17 | 18 | true 19 | 20 | 21 | 22 | 23 | 24 | LC - equal with boundary intersection 25 | 26 | LINESTRING(0 0, 60 0, 60 60, 60 0, 120 0) 27 | 28 | 29 | MULTILINESTRING( 30 | (0 0, 60 0), 31 | (60 0, 120 0), 32 | (60 0, 60 60)) 33 | 34 | 35 | 36 | true 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestUnaryUnionFloating.xml: -------------------------------------------------------------------------------- 1 | 2 | Tests for Geometry.union() method (unary union) with floating precision 3 | 4 | 5 | mP - showing that non-polygonal components are discarded correctly 6 | 7 | GEOMETRYCOLLECTION ( 8 | POLYGON ((-3 -2, 700 900, -6 900, -3 -2)), 9 | POLYGON((700 900, -1.6859349853697 899.55, 0.3 -0.4, 700 900)), 10 | POLYGON ((700 860, 700 899.5, -1.68593498537 899.55, 700 860)) 11 | ) 12 | 13 | 14 | 15 | POLYGON ((0.2942036115049298 2.226702215615205, -3 -2, -6 900, 700 900, 699.6114719806972 899.5000276853219, 700 899.5, 700 860, 670.2204017222961 861.6785046602191, 0.3 -0.4, 0.2942036115049298 2.226702215615205)) 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/general/TestValid2-big.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test 92 5 | 6 | POLYGON ((100 100, 1000000000000000 110, 1000000000000000 100, 100 100)) 7 | 8 | true 9 | 10 | 11 | Test 558 12 | 13 | MULTIPOINT ((-1000000000000000000000000 -1000000000000000000000000), (1000000000000000000000000 -1000000000000000000000000), (1000000000000000000000000 1000000000000000000000000), (-1000000000000000000000000 1000000000000000000000000), (0 0)) 14 | 15 | true 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/robust/TestRobustOverlayFixed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AA 6 | 7 | POLYGON ((545 317, 617 379, 581 321, 545 317)) 8 | 9 | 10 | POLYGON ((484 290, 558 359, 543 309, 484 290)) 11 | 12 | 13 | 14 | POINT (545 317) 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/robust/TestRobustRelate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PP - Point is not on line. Non-robust algorithms fail by erroneously reporting intersects=true. 6 | 7 | LINESTRING(-123456789 -40, 381039468754763 123456789) 8 | 9 | 10 | POINT(0 0) 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/validate/TestRelateAA-big.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A/A-6-18: a polygon overlapping a very skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-EP}, dim(0){A.A.Bdy.CP = B.A.Bdy.CP}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}] 6 | 7 | POLYGON( 8 | (100 100, 100 200, 200 200, 200 100, 100 100)) 9 | 10 | 11 | POLYGON( 12 | (100 100, 1000000000000000 110, 1000000000000000 100, 100 100)) 13 | 14 | 15 | true 16 | 17 | 18 | 19 | 20 | A/A-6-24: a polygon overlapping a very skinny polygon [dim(2){A.A.Int = B.A.Int}, dim(1){A.A.Bdy.V-EP = B.A.Bdy.NV-NV}, dim(0){A.A.Bdy.NV = B.A.Bdy.NV}] 21 | 22 | POLYGON( 23 | (120 100, 120 200, 200 200, 200 100, 120 100)) 24 | 25 | 26 | POLYGON( 27 | (100 100, 1000000000000000 110, 1000000000000000 100, 100 100)) 28 | 29 | 30 | true 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/vivid/TestConvexHull-big.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Big convex hull 6 | 7 | MULTIPOINT(-1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 0 0) 8 | 9 | 10 | 11 | POLYGON( 12 | (-1000000000000000000000000 -1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, -1000000000000000000000000 -1000000000000000000000000)) 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/vivid/TestFunctionLLPrec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LL - narrow V 6 | 7 | LINESTRING(0 10, 620 10, 0 11) 8 | 9 | 10 | LINESTRING(400 60, 400 10) 11 | 12 | 13 | 14 | POINT(400 10) 15 | 16 | 17 | 18 | 19 | MULTILINESTRING( 20 | (0 10, 400 10), 21 | (400 10, 620 10, 400 10), 22 | (400 10, 0 11), 23 | (400 60, 400 10)) 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/vivid/TestFunctionPLPrec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PP - Point just off line. Causes non-robust algorithms to fail. 6 | 7 | LINESTRING(-123456789 -40, 381039468754763 123456789) 8 | 9 | 10 | POINT(0 0) 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/vivid/TestRelateAC.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AC A-shells overlapping B-shell at A-vertex 6 | 7 | POLYGON( 8 | (100 60, 140 100, 100 140, 60 100, 100 60)) 9 | 10 | 11 | MULTIPOLYGON( 12 | ( 13 | (80 40, 120 40, 120 80, 80 80, 80 40)), 14 | ( 15 | (120 80, 160 80, 160 120, 120 120, 120 80)), 16 | ( 17 | (80 120, 120 120, 120 160, 80 160, 80 120)), 18 | ( 19 | (40 80, 80 80, 80 120, 40 120, 40 80))) 20 | 21 | 22 | 23 | true 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner.Tests/vivid/TestValid2-big.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Test 92 5 | 6 | POLYGON ((100 100, 1000000000000000 110, 1000000000000000 100, 100 100)) 7 | 8 | true 9 | 10 | 11 | Test 558 12 | 13 | MULTIPOINT (-1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 0 0) 14 | 15 | true 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Functions/BoundaryFunctions.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Algorithm; 3 | using NetTopologySuite.Operation; 4 | 5 | namespace Open.Topology.TestRunner.Functions 6 | { 7 | public class BoundaryFunctions 8 | { 9 | public static IGeometry boundary(IGeometry g) { return g.Boundary; } 10 | 11 | public static IGeometry boundaryMod2(IGeometry g) 12 | { 13 | return BoundaryOp.GetBoundary(g, BoundaryNodeRules.Mod2BoundaryRule); 14 | } 15 | public static IGeometry boundaryEndpoint(IGeometry g) 16 | { 17 | return BoundaryOp.GetBoundary(g, BoundaryNodeRules.EndpointBoundaryRule); 18 | } 19 | public static IGeometry boundaryMonoValentEnd(IGeometry g) 20 | { 21 | return BoundaryOp.GetBoundary(g, BoundaryNodeRules.MonoValentEndpointBoundaryRule); 22 | } 23 | public static IGeometry boundaryMultiValentEnd(IGeometry g) 24 | { 25 | return BoundaryOp.GetBoundary(g, BoundaryNodeRules.MultivalentEndpointBoundaryRule); 26 | } 27 | 28 | } 29 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Functions/DissolveFunctions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Dissolve; 4 | 5 | namespace Open.Topology.TestRunner.Functions 6 | { 7 | public static class DissolveFunctions 8 | { 9 | public static IGeometry Dissolve(IGeometry geom) 10 | { 11 | return LineDissolver.Dissolve(geom); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Functions/PrecisionFunctions.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Geometries; 3 | using NetTopologySuite.Precision; 4 | 5 | namespace Open.Topology.TestRunner.Functions 6 | { 7 | public static class PrecisionFunctions 8 | { 9 | /* 10 | public static IGeometry OLDReducePrecisionPointwise(IGeometry geom, double scaleFactor) 11 | { 12 | PrecisionModel pm = new PrecisionModel(scaleFactor); 13 | IGeometry reducedGeom = SimpleGeometryPrecisionReducer.Reduce(geom, pm); 14 | return reducedGeom; 15 | } 16 | */ 17 | 18 | public static IGeometry ReducePrecisionPointwise(IGeometry geom, double scaleFactor) 19 | { 20 | PrecisionModel pm = new PrecisionModel(scaleFactor); 21 | IGeometry reducedGeom = GeometryPrecisionReducer.Reduce(geom, pm); 22 | return reducedGeom; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Functions/SimplificationFunctions.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Simplify; 3 | 4 | namespace Open.Topology.TestRunner.Functions 5 | { 6 | public static class SimplificationFunctions 7 | { 8 | public static IGeometry SimplifyDp(IGeometry g, double distance) 9 | { 10 | return DouglasPeuckerSimplifier.Simplify(g, distance); 11 | } 12 | 13 | public static IGeometry SimplifyTp(IGeometry g, double distance) 14 | { 15 | return TopologyPreservingSimplifier.Simplify(g, distance); 16 | } 17 | 18 | public static IGeometry SimplifyVW(IGeometry g, double distance) 19 | { 20 | return VWSimplifier.Simplify(g, distance); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Operations/IGeometryMatcher.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace Open.Topology.TestRunner.Operations 4 | { 5 | /// 6 | /// An interface for classes which can determine whether 7 | /// two geometries match, within a given tolerance. 8 | /// 9 | /// mbdavis 10 | public interface IGeometryMatcher 11 | { 12 | double Tolerance { get; set; } 13 | bool Match(IGeometry a, IGeometry b); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Operations/NormalizedGeometryMatcher.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace Open.Topology.TestRunner.Operations 4 | { 5 | public class NormalizedGeometryMatcher : IGeometryMatcher 6 | { 7 | private double _tolerance; 8 | 9 | /* 10 | public NormalizedGeometryMatcher() 11 | { 12 | 13 | } 14 | */ 15 | 16 | public double Tolerance 17 | { 18 | get { return _tolerance; } 19 | set { _tolerance = value; } 20 | } 21 | 22 | public bool Match(IGeometry a, IGeometry b) 23 | { 24 | var aClone = (IGeometry) a.Clone(); 25 | var bClone = (IGeometry) b.Clone(); 26 | aClone.Normalize(); 27 | bClone.Normalize(); 28 | return aClone.EqualsExact(bClone, _tolerance); 29 | } 30 | 31 | } 32 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Result/NullResultMatcher.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | 4 | namespace Open.Topology.TestRunner.Result 5 | { 6 | /// 7 | /// A which always passes. 8 | /// This is useful if the expected result of an operation is not known. 9 | /// 10 | public class NullResultMatcher : IResultMatcher 11 | where TResult : IResult 12 | { 13 | /// 14 | ///Always reports a match. 15 | public bool IsMatch(IGeometry geom, String opName, Object[] args, 16 | TResult actualResult, TResult expectedResult, 17 | double tolerance) 18 | { 19 | return true; 20 | } 21 | 22 | public bool IsMatch(IGeometry geom, string opName, object[] args, IResult actualResult, IResult expectedResult, double tolerance) 23 | { 24 | return true; 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Utility/ClassUtility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | 4 | namespace Open.Topology.TestRunner.Utility 5 | { 6 | public class ClassUtility 7 | { 8 | public static String GetClassname(Type javaClass) 9 | { 10 | String nClassName = javaClass.FullName; 11 | Debug.Assert(!string.IsNullOrEmpty(nClassName)); 12 | 13 | int lastDotPos = nClassName.LastIndexOf("."); 14 | return nClassName.Substring(lastDotPos + 1, nClassName.Length); 15 | } 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/Utility/GeometryDataUtil.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace Open.Topology.TestRunner.Utility 4 | { 5 | public static class GeometryDataUtil 6 | { 7 | public static void SetComponentDataToIndex(IGeometry geom) 8 | { 9 | for (int i = 0; i < geom.NumGeometries; i++) 10 | { 11 | IGeometry comp = geom.GetGeometryN(i); 12 | comp.UserData = "Component # " + i; 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /NetTopologySuite.TestRunner/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Algorithm/LocatePointInRingTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Algorithm; 4 | using NetTopologySuite.Geometries; 5 | using NetTopologySuite.IO; 6 | using NUnit.Framework; 7 | 8 | namespace NetTopologySuite.Tests.NUnit.Algorithm 9 | { 10 | // Tests are exposed by AbstractPointInRingTest type 11 | public class LocatePointInRingTest : AbstractPointInRingTest 12 | { 13 | private WKTReader reader = new WKTReader(); 14 | 15 | protected override void RunPtInRing(Location expectedLoc, Coordinate pt, string wkt) 16 | { 17 | IGeometry geom = reader.Read(wkt); 18 | Assert.AreEqual(expectedLoc, CGAlgorithms.LocatePointInRing(pt, geom.Coordinates)); 19 | IPolygon poly = geom as IPolygon; 20 | if (poly == null) 21 | return; 22 | 23 | Assert.AreEqual(expectedLoc, CGAlgorithms.LocatePointInRing(pt, poly.ExteriorRing.CoordinateSequence)); 24 | } 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Algorithm/MCPointInRingTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Algorithm; 4 | using NetTopologySuite.Geometries; 5 | using NetTopologySuite.IO; 6 | using NUnit.Framework; 7 | 8 | namespace NetTopologySuite.Tests.NUnit.Algorithm 9 | { 10 | //Tests are exposed by AbstractPointInRingTest type 11 | public class MCPointInRingTest : AbstractPointInRingTest 12 | { 13 | private WKTReader reader = new WKTReader(); 14 | 15 | protected override void RunPtInRing(Location expectedLoc, Coordinate pt, String wkt) 16 | { 17 | // isPointInRing is not defined for pts on boundary 18 | if (expectedLoc == Location.Boundary) 19 | return; 20 | 21 | IGeometry geom = reader.Read(wkt); 22 | if (!(geom is Polygon)) 23 | return; 24 | 25 | LinearRing ring = (LinearRing)((Polygon) geom).ExteriorRing; 26 | bool expected = expectedLoc == Location.Interior; 27 | MCPointInRing pir = new MCPointInRing(ring); 28 | bool result = pir.IsInside(pt); 29 | Assert.AreEqual(expected, result); 30 | } 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Algorithm/RayCrossingCounterTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Algorithm; 4 | using NetTopologySuite.Geometries; 5 | using NetTopologySuite.IO; 6 | using NUnit.Framework; 7 | 8 | namespace NetTopologySuite.Tests.NUnit.Algorithm 9 | { 10 | //Tests are exposed by AbstractPointInRingTest type 11 | public class RayCrossingCounterTest : AbstractPointInRingTest 12 | { 13 | private WKTReader reader = new WKTReader(); 14 | 15 | protected override void RunPtInRing(Location expectedLoc, Coordinate pt, String wkt) 16 | { 17 | IGeometry geom = reader.Read(wkt); 18 | Assert.AreEqual(expectedLoc, RayCrossingCounter.LocatePointInRing(pt, geom.Coordinates)); 19 | IPolygon poly = geom as IPolygon; 20 | if (poly == null) 21 | return; 22 | 23 | Assert.AreEqual(expectedLoc, RayCrossingCounter.LocatePointInRing(pt, poly.ExteriorRing.CoordinateSequence)); 24 | } 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Geometries/Implementation/CoordinateArraySequenceTest.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Geometries.Implementation; 3 | 4 | namespace NetTopologySuite.Tests.NUnit.Geometries.Implementation 5 | { 6 | //Tests are exposed by CoordinateSequenceTestBase type 7 | public class CoordinateArraySequenceTest : CoordinateSequenceTestBase 8 | { 9 | protected override ICoordinateSequenceFactory CsFactory 10 | { 11 | get { return CoordinateArraySequenceFactory.Instance; } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Hull/ConcaveHullTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using NetTopologySuite.Geometries; 3 | using NetTopologySuite.Hull; 4 | using NUnit.Framework; 5 | 6 | namespace NetTopologySuite.Tests.NUnit.Hull 7 | { 8 | public class ConcaveHullTest : GeometryTestCase 9 | { 10 | 11 | [Test, Ignore("Incomplete")] 12 | public void TestSimple() { 13 | CheckHull( 14 | "POLYGON ((100 200, 200 180, 300 200, 200 190, 100 200))", 15 | 150, 16 | "POLYGON ((100 200, 200 180, 300 200, 200 190, 100 200))" 17 | ); 18 | } 19 | 20 | private void CheckHull(string inputWKT, double tolerance, string expectedWKT) { 21 | var input = Read(inputWKT); 22 | var expected = Read(expectedWKT); 23 | var hull = new ConcaveHull(input, tolerance); 24 | var actual = hull.GetResult(); 25 | CheckEqual(expected, actual); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Index/DoubleBitsTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Index.Quadtree; 4 | using NetTopologySuite.IO; 5 | using NUnit.Framework; 6 | 7 | namespace NetTopologySuite.Tests.NUnit.Index 8 | { 9 | [TestFixtureAttribute] 10 | public class DoubleBitsTest 11 | { 12 | [TestAttribute] 13 | public void TestExponent() 14 | { 15 | Assert.IsTrue(DoubleBits.GetExponent(-1) == 0); 16 | Assert.IsTrue(DoubleBits.GetExponent(8.0) == 3); 17 | Assert.IsTrue(DoubleBits.GetExponent(128.0) == 7); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Operation/Buffer/Test.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Geometries; 4 | using NUnit.Framework; 5 | 6 | namespace NetTopologySuite.Tests.NUnit.Operation.Buffer 7 | { 8 | public class Test 9 | { 10 | [TestAttribute] 11 | public void Buffer() 12 | { 13 | var geom = 14 | new Polygon( 15 | new LinearRing(new Coordinate[] 16 | { 17 | new Coordinate(0, 0), new Coordinate(0, 10), new Coordinate(10, 10), 18 | new Coordinate(10, 0), new Coordinate(0, 0) 19 | })); 20 | Console.WriteLine(geom.AsText()); 21 | var geom2 = geom.Buffer(2d); 22 | Console.WriteLine(geom2); 23 | var geom3 = geom2.Buffer(-2); 24 | geom3.Normalize(); 25 | Console.WriteLine(geom3); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Operation/Overlay/FixedPrecisionSnappingTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Algorithm; 4 | using NetTopologySuite.Geometries; 5 | using NetTopologySuite.IO; 6 | using NUnit.Framework; 7 | 8 | namespace NetTopologySuite.Tests.NUnit.Operation.Overlay 9 | { 10 | [TestFixtureAttribute] 11 | public class FixedPrecisionSnappingTest 12 | { 13 | PrecisionModel pm; 14 | GeometryFactory fact; 15 | WKTReader rdr; 16 | 17 | public FixedPrecisionSnappingTest() 18 | { 19 | pm = new PrecisionModel(1.0); 20 | fact = new GeometryFactory(pm); 21 | rdr = new WKTReader(fact); 22 | } 23 | 24 | [TestAttribute] 25 | public void TestTriangles() 26 | { 27 | IGeometry a = rdr.Read("POLYGON ((545 317, 617 379, 581 321, 545 317))"); 28 | IGeometry b = rdr.Read("POLYGON ((484 290, 558 359, 543 309, 484 290))"); 29 | a.Intersection(b); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Performance/ThreadTestCase.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | 3 | namespace NetTopologySuite.Tests.NUnit.Performance 4 | { 5 | /// 6 | /// Base class for test cases which depend on threading. 7 | /// A common example of usage is to test for race conditions. 8 | /// 9 | /// Martin Davis 10 | public abstract class ThreadTestCase 11 | { 12 | public int ThreadCount 13 | { 14 | get { return ThreadTestRunner.DefaultThreadCount; } 15 | } 16 | 17 | public abstract void Setup(); 18 | public WaitHandle[] WaitHandles { get; protected set; } 19 | public abstract ParameterizedThreadStart GetRunnable(int threadIndex); 20 | public virtual object Argument { get { return null; } } 21 | } 22 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Performance/ThreadTestRunner.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | 3 | namespace NetTopologySuite.Tests.NUnit.Performance 4 | { 5 | /// 6 | /// Runs a . 7 | /// 8 | /// Martin Davis 9 | public static class ThreadTestRunner 10 | { 11 | 12 | //Do not assign a value > 64. 13 | //Test may provide WaitHandles for each job 14 | //and more than 64 WaitHandles are not supported! 15 | public static readonly int DefaultThreadCount = 10; 16 | 17 | public static void Run(ThreadTestCase testcase) 18 | { 19 | testcase.Setup(); 20 | 21 | for (var i = 0; i < testcase.ThreadCount; i++) 22 | { 23 | var runnable = testcase.GetRunnable(i); 24 | var t = new Thread(runnable); 25 | t.Start(testcase.Argument); 26 | } 27 | 28 | if (testcase.WaitHandles != null) 29 | WaitHandle.WaitAll(testcase.WaitHandles); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Precision/CommonBitsOpTest.cs: -------------------------------------------------------------------------------- 1 | using NetTopologySuite.Geometries; 2 | using NetTopologySuite.Geometries.Implementation; 3 | using NetTopologySuite.Precision; 4 | using NUnit.Framework; 5 | 6 | namespace NetTopologySuite.Tests.NUnit.Precision 7 | { 8 | public class CommonBitsOpTest : GeometryTestCase 9 | { 10 | /// 11 | /// Tests an issue where CommonBitsRemover was not persisting changes to some kinds of CoordinateSequences 12 | /// 13 | [Test] 14 | public void TestPackedCoordinateSequence() { 15 | var pcsFactory = new GeometryFactory(PackedCoordinateSequenceFactory.DoubleFactory); 16 | var geom0 = Read(pcsFactory, "POLYGON ((210 210, 210 220, 220 220, 220 210, 210 210))"); 17 | var geom1 = Read("POLYGON ((225 225, 225 215, 215 215, 215 225, 225 225))"); 18 | var cbo = new CommonBitsOp(true); 19 | var result = cbo.Intersection(geom0, geom1); 20 | var expected = geom0.Intersection(geom1); 21 | //Geometry expected = read("POLYGON ((220 215, 215 215, 215 220, 220 220, 220 215))"); 22 | CheckEqual(expected, result); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/TestData/uk-arrows.wkt: -------------------------------------------------------------------------------- 1 | MULTIPOLYGON (((1330.6 1282.4, 1377.4 1282.4, 1361.8 1298, 1393 1313.6, 1361.8 1344.8, 1346.2 1313.6, 1330.6 1329.2, 1330.6 1282.4)), 2 | ((1330.6 1266.8, 1377.4 1266.8, 1361.8 1251.2, 1393 1235.6, 1361.8 1204.4, 1346.2 1235.6, 1330.6 1220, 1330.6 1266.8)), 3 | ((1315 1282.4, 1315 1329.2, 1299.4 1313.6, 1283.8 1344.8, 1252.6 1313.6, 1283.8 1298, 1268.2 1282.4, 1315 1282.4)), 4 | ((1268.2 1266.8, 1315 1266.8, 1315 1220, 1299.4 1235.6, 1283.8 1204.4, 1252.6 1235.6, 1283.8 1251.2, 1268.2 1266.8))) -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Utilities/IOUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.IO; 4 | using NUnit.Framework; 5 | using ParseException = GeoAPI.IO.ParseException; 6 | 7 | namespace NetTopologySuite.Tests.NUnit.Utilities 8 | { 9 | public class IOUtil 10 | { 11 | public static IGeometry Read(String wkt) 12 | { 13 | var rdr = new WKTReader(); 14 | try 15 | { 16 | return rdr.Read(wkt); 17 | } 18 | catch (ParseException ex) 19 | { 20 | throw new AssertionException("Failed to read file", ex); 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/Utilities/SerializationUtility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Runtime.Serialization.Formatters.Binary; 4 | 5 | namespace NetTopologySuite.Tests.NUnit.Utilities 6 | { 7 | public static class SerializationUtility 8 | { 9 | public static byte[] Serialize(T obj) 10 | { 11 | using (MemoryStream ms = new MemoryStream()) 12 | { 13 | BinaryFormatter serializer = new BinaryFormatter(); 14 | serializer.Serialize(ms, obj); 15 | ms.Seek(0, SeekOrigin.Begin); 16 | StreamReader reader = new StreamReader(ms); 17 | Console.WriteLine(reader.ReadToEnd()); 18 | 19 | return ms.ToArray(); 20 | } 21 | } 22 | 23 | public static T Deserialize(byte[] buffer) 24 | { 25 | using (MemoryStream ms = new MemoryStream(buffer)) 26 | { 27 | BinaryFormatter serializer = new BinaryFormatter(); 28 | return (T)serializer.Deserialize(ms); 29 | } 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/nts.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite.Tests.NUnit/nts.snk -------------------------------------------------------------------------------- /NetTopologySuite.Tests.NUnit/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.Tests.Vivid.XUnit/XUnitExternalTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Tests.XUnit 4 | { 5 | public abstract class ExternalXUnitRunner : XUnitRunner 6 | { 7 | protected ExternalXUnitRunner(string testFile) : base(testFile) { } 8 | 9 | private const String testLocation = "..\\..\\..\\NetTopologySuite.TestRunner.Tests\\external"; 10 | 11 | protected override string TestLocation { get { return testLocation; } } 12 | } 13 | 14 | public class TestGeosBuffer : ExternalXUnitRunner 15 | { 16 | public TestGeosBuffer() : base("GEOSBuffer.xml") { } 17 | } 18 | 19 | public class TestBufferExternal : ExternalXUnitRunner 20 | { 21 | public TestBufferExternal() : base("TestBufferExternal.xml") { } 22 | } 23 | 24 | public class TestBufferExternal2 : ExternalXUnitRunner 25 | { 26 | public TestBufferExternal2() : base("TestBufferExternal2.xml") { } 27 | } 28 | 29 | public class TestOverlay : ExternalXUnitRunner 30 | { 31 | public TestOverlay() : base("TestOverlay.xml") { } 32 | } 33 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.Vivid.XUnit/XUnitFailureTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Tests.XUnit 4 | { 5 | public abstract class FailureXUnitRunner : XUnitRunner 6 | { 7 | protected FailureXUnitRunner(string testFile) : base(testFile) { } 8 | 9 | private const String testLocation = "..\\..\\..\\NetTopologySuite.TestRunner.Tests\\failure"; 10 | 11 | protected override string TestLocation { get { return testLocation; } } 12 | } 13 | 14 | public class TestBigNastyBuffer : FailureXUnitRunner 15 | { 16 | public TestBigNastyBuffer() : base("TestBigNastyBuffer.xml") { } 17 | } 18 | 19 | // 1 expected exception thrown 20 | public class TestOverlayFailure : FailureXUnitRunner 21 | { 22 | public TestOverlayFailure() : base("TestOverlay.xml") { } 23 | } 24 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.Vivid.XUnit/XUnitStMLFTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Tests.XUnit 4 | { 5 | public abstract class StMLFXUnitRunner : XUnitRunner 6 | { 7 | protected StMLFXUnitRunner(string testFile) : base(testFile) { } 8 | 9 | private const String testLocation = "..\\..\\..\\NetTopologySuite.TestRunner.Tests\\stmlf"; 10 | 11 | protected override string TestLocation { get { return testLocation; } } 12 | } 13 | 14 | public class TestStMLF20061020 : StMLFXUnitRunner 15 | { 16 | public TestStMLF20061020() : base("stmlf-cases-20061020_int.xml") { } 17 | } 18 | 19 | public class TestStMLF20061018 : StMLFXUnitRunner 20 | { 21 | public TestStMLF20061018() : base("stmlf-cases-20061018_int.xml") { } 22 | } 23 | } -------------------------------------------------------------------------------- /NetTopologySuite.Tests.Vivid.XUnit/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.VersionComparisonTests/Read Me.txt: -------------------------------------------------------------------------------- 1 | Test project to aid debugging of v2 functionality comparing against v1.7.x -------------------------------------------------------------------------------- /NetTopologySuite.Windows.Forms/Test/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /NetTopologySuite.Windows.Forms/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.Windows.Media/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /NetTopologySuite.sln.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True 3 | C:\Progetti\GitHub\NetTopologySuite\NetTopologySuite.sln.DotSettings 4 | 5 | True 6 | 1 -------------------------------------------------------------------------------- /NetTopologySuite.vsmdi: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/Distance/Distance.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes to compute distance metrics between geonetries. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/IPointInAreaLocator.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Algorithm 4 | { 5 | /// 6 | /// An interface for classes which determine the of points in a 7 | /// 8 | ///Martin Davis 9 | public interface IPointInAreaLocator 10 | { 11 | /// 12 | /// Determines the of a point in the . 13 | /// 14 | /// The point to test 15 | /// the location of the point in the geometry 16 | Location Locate(Coordinate p); 17 | } 18 | } -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/IPointInRing.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Algorithm 4 | { 5 | /// 6 | /// An interface for classes which test whether a Coordinate lies inside a ring. 7 | /// 8 | /// 9 | public interface IPointInRing 10 | { 11 | /// 12 | /// 13 | /// 14 | /// 15 | /// 16 | bool IsInside(Coordinate pt); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/Locate/Locate.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes to determine the topological location of points in geometries. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/Match/AreaSimilarityMeasure.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Algorithm.Match 4 | { 5 | /// 6 | /// Measures the degree of similarity between two s 7 | /// using the area of intersection between the geometries. 8 | /// The measure is normalized to lie in the range [0, 1]. 9 | /// Higher measures indicate a great degree of similarity. 10 | /// 11 | /// 12 | /// NOTE: Currently experimental and incomplete. 13 | /// 14 | /// mbdavis 15 | public class AreaSimilarityMeasure : ISimilarityMeasure 16 | { 17 | /* 18 | public static double measure(Geometry a, Geometry b) 19 | { 20 | AreaSimilarityMeasure gv = new AreaSimilarityMeasure(a, b); 21 | return gv.measure(); 22 | } 23 | */ 24 | 25 | public double Measure(IGeometry g1, IGeometry g2) 26 | { 27 | double areaInt = g1.Intersection(g2).Area; 28 | double areaUnion = g1.Union(g2).Area; 29 | return areaInt / areaUnion; 30 | } 31 | 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/Match/Match.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes to compute matching metrics between geometries. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/Match/SimilarityMeasureCombiner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Algorithm.Match 4 | { 5 | /// 6 | /// Provides methods to mathematically combine values. 7 | /// 8 | /// Martin Davis 9 | public static class SimilarityMeasureCombiner 10 | { 11 | /// 12 | /// 13 | /// 14 | /// 15 | /// 16 | /// 17 | public static double Combine(double measure1, double measure2) 18 | { 19 | return Math.Min(measure1, measure2); 20 | } 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/NotRepresentableException.cs: -------------------------------------------------------------------------------- 1 | #if !PCL 2 | using System; 3 | #else 4 | using ApplicationException = System.Exception; 5 | #endif 6 | 7 | namespace NetTopologySuite.Algorithm 8 | { 9 | /// 10 | /// 11 | /// 12 | public class NotRepresentableException : ApplicationException 13 | { 14 | /// 15 | /// 16 | /// 17 | public NotRepresentableException() : base("Projective point not representable on the Cartesian plane.") { } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /NetTopologySuite/Algorithm/SimplePointInRing.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Algorithm 4 | { 5 | /// 6 | /// Tests whether a Coordinate lies inside 7 | /// a ring, using a linear-time algorithm. 8 | /// 9 | public class SimplePointInRing : IPointInRing 10 | { 11 | /// 12 | /// 13 | /// 14 | private readonly Coordinate[] pts; 15 | 16 | /// 17 | /// 18 | /// 19 | /// 20 | public SimplePointInRing(ILinearRing ring) 21 | { 22 | pts = ring.Coordinates; 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | /// 29 | /// 30 | public bool IsInside(Coordinate pt) 31 | { 32 | return CGAlgorithms.IsPointInRing(pt, pts); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /NetTopologySuite/CoordinateSystems/CRSBase.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.CoordinateSystems 2 | { 3 | using System.Collections.Generic; 4 | 5 | /// 6 | /// Base class for all ICRSObject implementing types 7 | /// 8 | //[JsonObject(MemberSerialization.OptIn)] 9 | public abstract class CRSBase : ICRSObject 10 | { 11 | /// 12 | /// Gets the type of the CRSBase object. 13 | /// 14 | //[JsonProperty(PropertyName = "type", Required = Required.Always)] 15 | //[JsonConverter(typeof(CamelCaseStringEnumConverter))] 16 | public CRSTypes Type { get; internal set; } 17 | 18 | /// 19 | /// Gets the properties. 20 | /// 21 | //[JsonProperty(PropertyName = "properties", Required = Required.Always)] 22 | public Dictionary Properties { get; internal set; } 23 | } 24 | } -------------------------------------------------------------------------------- /NetTopologySuite/CoordinateSystems/CRSType.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.CoordinateSystems 2 | { 3 | using System; 4 | 5 | /// 6 | /// Defines the GeoJSON Coordinate Reference System Objects (CRS) types as defined in the geojson.org v1.0 spec. 7 | /// 8 | [Flags] 9 | public enum CRSTypes 10 | { 11 | /// 12 | /// Defines the Named CRS type. 13 | /// 14 | Name, 15 | 16 | /// 17 | /// Defines the Linked CRS type. 18 | /// 19 | Link 20 | } 21 | } -------------------------------------------------------------------------------- /NetTopologySuite/CoordinateSystems/ICRSObject.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.CoordinateSystems 2 | { 3 | /// 4 | /// Base Interface for CRSBase Object types. 5 | /// 6 | public interface ICRSObject 7 | { 8 | /// 9 | /// Gets the CRS type. 10 | /// 11 | CRSTypes Type { get; } 12 | } 13 | } -------------------------------------------------------------------------------- /NetTopologySuite/Densify/DensifySummary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes to perform densification on geometries. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Dissolve/DissolveEdgeGraph.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.EdgeGraph; 3 | 4 | namespace NetTopologySuite.Dissolve 5 | { 6 | /// 7 | /// A graph containing s. 8 | /// 9 | public class DissolveEdgeGraph : EdgeGraph.EdgeGraph 10 | { 11 | protected override HalfEdge CreateEdge(Coordinate p0) 12 | { 13 | return new DissolveHalfEdge(p0); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /NetTopologySuite/Dissolve/DissolveHalfEdge.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.EdgeGraph; 3 | 4 | namespace NetTopologySuite.Dissolve 5 | { 6 | /// 7 | /// A HalfEdge which carries information 8 | /// required to support . 9 | /// 10 | public class DissolveHalfEdge : MarkHalfEdge 11 | { 12 | private bool _isStart; 13 | 14 | public DissolveHalfEdge(Coordinate orig) 15 | : base(orig) { } 16 | 17 | /// 18 | /// Tests whether this edge is the starting segment 19 | /// in a LineString being dissolved. 20 | /// 21 | /// true if this edge is a start segment 22 | public bool IsStart 23 | { 24 | get { return _isStart; } 25 | } 26 | 27 | /// 28 | /// Sets this edge to be the start segment of an input LineString. 29 | /// 30 | public void SetStart() 31 | { 32 | _isStart = true; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /NetTopologySuite/Features/IFeature.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Features 4 | { 5 | /// 6 | /// Interface for feature classes 7 | /// 8 | public interface IFeature 9 | { 10 | /// 11 | /// Gets or sets the attributes for the feature 12 | /// 13 | IAttributesTable Attributes { get; set; } 14 | 15 | /// 16 | /// Gets or sets the feature's geometry 17 | /// 18 | IGeometry Geometry { get; set; } 19 | 20 | /// 21 | /// Gets or sets the feature's geometry 22 | /// 23 | Envelope BoundingBox { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /NetTopologySuite/Geometries/GeometryCollectionEnumerator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite/Geometries/GeometryCollectionEnumerator.cs -------------------------------------------------------------------------------- /NetTopologySuite/Geometries/GeometryComponentFilter.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Geometries 4 | { 5 | /// 6 | /// Delegate function declaration to handle filter operation 7 | /// 8 | /// The geometry to filter 9 | public delegate void FilterMethod(IGeometry geom); 10 | 11 | /// 12 | /// An implementation that applies filtering with the provided 13 | /// 14 | public class GeometryComponentFilter : IGeometryComponentFilter 15 | { 16 | private readonly FilterMethod _do; 17 | 18 | /// 19 | /// Creates an instance of this class 20 | /// 21 | /// The filter method to be used 22 | public GeometryComponentFilter(FilterMethod filterMethod) 23 | { 24 | //Assert.IsTrue(filterMethod != null); 25 | _do = filterMethod; 26 | } 27 | 28 | public void Filter(IGeometry geom) 29 | { 30 | _do(geom); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /NetTopologySuite/Geometries/Prepared/LineTopology.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Noding; 3 | 4 | namespace NetTopologySuite.Geometries.Prepared 5 | { 6 | public class LineTopology 7 | { 8 | private readonly IGeometryFactory _geomFact; 9 | private readonly NodedSegmentString _segStr; 10 | 11 | public LineTopology(ICoordinate[] pts, IGeometryFactory geomFact) 12 | { 13 | _segStr = new NodedSegmentString(pts, this); 14 | _geomFact = geomFact; 15 | } 16 | 17 | public void AddIntersection(ICoordinate intPt, int segmentIndex) 18 | { 19 | _segStr.AddIntersection(intPt, segmentIndex); 20 | } 21 | 22 | public IGeometry Result 23 | { 24 | get 25 | { 26 | ICoordinate[] resultPts = new Coordinate[0]; 27 | return _geomFact.CreateLineString(resultPts); 28 | } 29 | } 30 | 31 | } 32 | } -------------------------------------------------------------------------------- /NetTopologySuite/Geometries/Utilities/NoninvertibleTransformationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Geometries.Utilities 4 | { 5 | /// 6 | /// Indicates that an is non-invertible. 7 | /// 8 | ///Martin Davis 9 | public class NoninvertibleTransformationException : Exception 10 | { 11 | public NoninvertibleTransformationException() 12 | { 13 | } 14 | public NoninvertibleTransformationException(string transformationIsNonInvertible) 15 | :base(transformationIsNonInvertible) 16 | { 17 | 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /NetTopologySuite/GeometriesGraph/Index/MonotoneChain.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.GeometriesGraph.Index 2 | { 3 | /// 4 | /// 5 | /// 6 | public class MonotoneChain 7 | { 8 | private readonly MonotoneChainEdge mce; 9 | private readonly int chainIndex; 10 | 11 | /// 12 | /// 13 | /// 14 | /// 15 | /// 16 | public MonotoneChain(MonotoneChainEdge mce, int chainIndex) 17 | { 18 | this.mce = mce; 19 | this.chainIndex = chainIndex; 20 | } 21 | 22 | /// 23 | /// 24 | /// 25 | /// 26 | /// 27 | public void ComputeIntersections(MonotoneChain mc, SegmentIntersector si) 28 | { 29 | this.mce.ComputeIntersectsForChain(chainIndex, mc.mce, mc.chainIndex, si); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /NetTopologySuite/GeometriesGraph/NodeFactory.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.GeometriesGraph 4 | { 5 | /// 6 | /// 7 | /// 8 | public class NodeFactory 9 | { 10 | /// 11 | /// The basic node constructor does not allow for incident edges. 12 | /// 13 | /// 14 | public virtual Node CreateNode(Coordinate coord) 15 | { 16 | return new Node(coord, null); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /NetTopologySuite/IO/GML2/GMLElements.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.IO.GML2 2 | { 3 | internal static class GMLElements 4 | { 5 | internal const string gmlPrefix = "gml"; 6 | internal const string gmlNS = "http://www.opengis.net/gml"; 7 | internal const string gmlNSDecl = " xmlns:gml=\"" + gmlNS + "\""; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /NetTopologySuite/IO/ParseException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | 4 | namespace NetTopologySuite.IO 5 | { 6 | /// 7 | /// Thrown by a WKTReader when a parsing problem occurs. 8 | /// 9 | [Obsolete("Use GeoAPI.IO.ParseException")] 10 | public class ParseException : GeoAPI.IO.ParseException 11 | { 12 | /// 13 | /// Creates a ParseException with the given detail message. 14 | /// 15 | /// A description of this ParseException. 16 | public ParseException(String message) : base(message) { } 17 | 18 | /// 19 | /// Creates a ParseException with es detail message. 20 | /// 21 | /// An exception that occurred while a WKTReader was 22 | /// parsing a Well-known Text string. 23 | public ParseException(Exception e) : this(e.ToString()) { } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /NetTopologySuite/Index/ArrayListVisitor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NetTopologySuite.Index 4 | { 5 | public class ArrayListVisitor : ArrayListVisitor 6 | {} 7 | /// 8 | /// 9 | /// 10 | public class ArrayListVisitor : IItemVisitor 11 | { 12 | private readonly List _items = new List(); 13 | 14 | ///// 15 | ///// 16 | ///// 17 | //public ArrayListVisitor() { } 18 | 19 | /// 20 | /// 21 | /// 22 | /// 23 | public void VisitItem(T item) 24 | { 25 | _items.Add(item); 26 | } 27 | 28 | /// 29 | /// 30 | /// 31 | public IList Items 32 | { 33 | get 34 | { 35 | return _items; 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /NetTopologySuite/Index/IIndexVisitor.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Index 2 | { 3 | /// 4 | /// A visitor for nodes and items in an index. 5 | /// 6 | public interface IIndexVisitor 7 | { 8 | /// 9 | /// 10 | /// 11 | /// 12 | void VisitItem(object item); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Index/IItemVisitor.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Index 2 | { 3 | /// 4 | /// A visitor for items in an index. 5 | /// 6 | public interface IItemVisitor< T> 7 | { 8 | /// 9 | /// 10 | /// 11 | /// 12 | void VisitItem(T item); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Index/IntervalRTree/IntervalRTreeLeafNode.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Index.IntervalRTree 2 | { 3 | public class IntervalRTreeLeafNode : IntervalRTreeNode 4 | { 5 | private readonly T _item; 6 | 7 | public IntervalRTreeLeafNode(double min, double max, T item) 8 | : base(min, max) 9 | { 10 | _item = item; 11 | } 12 | 13 | public override void Query(double queryMin, double queryMax, IItemVisitor visitor) 14 | { 15 | if (!Intersects(queryMin, queryMax)) 16 | return; 17 | 18 | visitor.VisitItem(_item); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /NetTopologySuite/Index/Strtree/IBoundable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | 4 | namespace NetTopologySuite.Index.Strtree 5 | { 6 | /// 7 | /// A spatial object in an AbstractSTRtree. 8 | /// 9 | [Obsolete] 10 | public interface IBoundable 11 | { 12 | /// 13 | /// Returns a representation of space that encloses this Boundable, preferably 14 | /// not much bigger than this Boundable's boundary yet fast to test for intersection 15 | /// with the bounds of other Boundables. The class of object returned depends 16 | /// on the subclass of AbstractSTRtree. 17 | /// 18 | /// 19 | /// An Envelope (for STRtrees), an Interval (for SIRtrees), or other object 20 | /// (for other subclasses of AbstractSTRtree). 21 | /// 22 | object Bounds { get; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /NetTopologySuite/Index/Strtree/IItemDistance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | 4 | namespace NetTopologySuite.Index.Strtree 5 | { 6 | /// 7 | /// A function method which computes the distance 8 | /// between two s in an . 9 | /// Used for Nearest Neighbour searches. 10 | /// 11 | /// Martin Davis 12 | public interface IItemDistance where T : IIntersectable, IExpandable 13 | { 14 | /// 15 | /// Computes the distance between two items. 16 | /// 17 | /// The first item. 18 | /// The second item. 19 | /// If the metric is not applicable to the arguments 20 | /// The distance between and . 21 | double Distance(IBoundable item1, IBoundable item2); 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /NetTopologySuite/Index/Sweepline/ISweepLineOverlapAction.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Index.Sweepline 2 | { 3 | /// 4 | /// 5 | /// 6 | public interface ISweepLineOverlapAction 7 | { 8 | /// 9 | /// 10 | /// 11 | /// 12 | /// 13 | void Overlap(SweepLineInterval s0, SweepLineInterval s1); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NetTopologySuite/Noding/INodableSegmentString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | 4 | namespace NetTopologySuite.Noding 5 | { 6 | /// 7 | /// An interface for classes which support adding nodes to a segment string. 8 | /// 9 | public interface INodableSegmentString : ISegmentString 10 | { 11 | ///Adds an intersection node for a given point and segment to this segment string. 12 | /// 13 | ///the location of the intersection 14 | ///the index of the segment containing the intersection 15 | void AddIntersection(Coordinate intPt, Int32 segmentIndex); 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /NetTopologySuite/Noding/ISegmentString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | using NetTopologySuite.Geometries; 4 | 5 | namespace NetTopologySuite.Noding 6 | { 7 | /// 8 | /// An interface for classes which represent a sequence of contiguous line segments. 9 | /// SegmentStrings can carry a context object, which is useful 10 | /// for preserving topological or parentage information. 11 | /// 12 | public interface ISegmentString 13 | { 14 | /// 15 | /// Gets/Sets the user-defined data for this segment string. 16 | /// 17 | Object Context { get; set; } 18 | /// 19 | /// Points that make up ISegmentString 20 | /// 21 | Coordinate[] Coordinates { get; } 22 | /// 23 | /// Size of Coordinate Sequence 24 | /// 25 | Int32 Count { get; } 26 | /// 27 | /// States whether ISegmentString is closed 28 | /// 29 | Boolean IsClosed { get; } 30 | 31 | LineSegment this[Int32 index] { get; set; } 32 | } 33 | } -------------------------------------------------------------------------------- /NetTopologySuite/Operation/Linemerge/LineMergeEdge.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Planargraph; 3 | 4 | namespace NetTopologySuite.Operation.Linemerge 5 | { 6 | /// 7 | /// An edge of a LineMergeGraph. The marked field indicates 8 | /// whether this Edge has been logically deleted from the graph. 9 | /// 10 | public class LineMergeEdge : Edge 11 | { 12 | private readonly ILineString line; 13 | 14 | /// 15 | /// Constructs a LineMergeEdge with vertices given by the specified LineString. 16 | /// 17 | /// 18 | public LineMergeEdge(ILineString line) 19 | { 20 | this.line = line; 21 | } 22 | 23 | /// 24 | /// Returns the LineString specifying the vertices of this edge. 25 | /// 26 | public ILineString Line 27 | { 28 | get 29 | { 30 | return line; 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /NetTopologySuite/Operation/Overlay/OverlayNodeFactory.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.GeometriesGraph; 3 | 4 | namespace NetTopologySuite.Operation.Overlay 5 | { 6 | /// 7 | /// Creates nodes for use in the PlanarGraphs constructed during 8 | /// overlay operations. 9 | /// 10 | public class OverlayNodeFactory : NodeFactory 11 | { 12 | /// 13 | /// 14 | /// 15 | /// 16 | /// 17 | public override Node CreateNode(Coordinate coord) 18 | { 19 | return new Node(coord, new DirectedEdgeStar()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /NetTopologySuite/Operation/Polygonize/PolygonizeEdge.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Planargraph; 3 | 4 | namespace NetTopologySuite.Operation.Polygonize 5 | { 6 | /// 7 | /// An edge of a polygonization graph. 8 | /// 9 | public class PolygonizeEdge : Edge 10 | { 11 | private readonly ILineString line; 12 | 13 | /// 14 | /// 15 | /// 16 | /// 17 | public PolygonizeEdge(ILineString line) 18 | { 19 | this.line = line; 20 | } 21 | 22 | /// 23 | /// 24 | /// 25 | public ILineString Line 26 | { 27 | get 28 | { 29 | return line; 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /NetTopologySuite/Operation/Relate/RelateNodeFactory.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.GeometriesGraph; 3 | 4 | namespace NetTopologySuite.Operation.Relate 5 | { 6 | /// 7 | /// Used by the NodeMap in a RelateNodeGraph to create RelateNodes. 8 | /// 9 | public class RelateNodeFactory : NodeFactory 10 | { 11 | /// 12 | /// 13 | /// 14 | /// 15 | /// 16 | public override Node CreateNode(Coordinate coord) 17 | { 18 | return new RelateNode(coord, new EdgeEndBundleStar()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /NetTopologySuite/Precision/DocFiles/minClearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite/Precision/DocFiles/minClearance.png -------------------------------------------------------------------------------- /NetTopologySuite/Precision/PrecisionSummary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Provides classes for analyzing and manipulating the precision of Geometries. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /NetTopologySuite/Simplify/SimplifySummary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes which implement algorithms for simplifying or generalizing geometries. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/ConstraintVertexFactory.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | using NetTopologySuite.Geometries; 3 | using NetTopologySuite.Triangulate.QuadEdge; 4 | 5 | namespace NetTopologySuite.Triangulate 6 | { 7 | /// 8 | /// An interface for factories which create a {@link ConstraintVertex} 9 | /// 10 | /// Martin Davis 11 | public interface ConstraintVertexFactory 12 | { 13 | ConstraintVertex CreateVertex(Coordinate p, Segment constraintSeg); 14 | } 15 | } -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/QuadEdge/IQuadEdgeLocator.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Triangulate.QuadEdge 2 | { 3 | /// 4 | /// An interface for classes which locate an edge in a 5 | /// which either contains a given V 6 | /// or is an edge of a triangle which contains V. 7 | /// Implementors may utilized different strategies for 8 | /// optimizing locating containing edges/triangles. 9 | /// 10 | /// Martin Davis 11 | public interface IQuadEdgeLocator 12 | { 13 | QuadEdge Locate(Vertex v); 14 | } 15 | } -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/QuadEdge/ITriangleVisitor.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Triangulate.QuadEdge 2 | { 3 | /// 4 | /// An interface for algorithms which process the triangles in a . 5 | /// 6 | /// Martin Davis 7 | /// 1.0 8 | public interface ITriangleVisitor 9 | { 10 | /// s of a triangle. 12 | /// 13 | /// an array of the 3 quad edges in a triangle (in CCW order) 14 | void Visit(QuadEdge[] triEdges); 15 | } 16 | } -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/QuadEdge/LocateFailureException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using NetTopologySuite.Geometries; 3 | 4 | namespace NetTopologySuite.Triangulate.QuadEdge 5 | { 6 | public class LocateFailureException : Exception 7 | { 8 | private static String MsgWithSpatial(String msg, LineSegment seg) 9 | { 10 | if (seg != null) 11 | return msg + " [ " + seg + " ]"; 12 | return msg; 13 | } 14 | 15 | public LocateFailureException(String msg) 16 | :base(msg) 17 | { 18 | } 19 | 20 | public LocateFailureException(String msg, LineSegment seg) 21 | :base(MsgWithSpatial(msg, seg)) 22 | { 23 | this.Segment = new LineSegment(seg); 24 | } 25 | 26 | public LocateFailureException(LineSegment seg) 27 | :base("Locate failed to converge (at edge: " 28 | + seg 29 | + "). Possible causes include invalid Subdivision topology or very close sites") 30 | { 31 | this.Segment = new LineSegment(seg); 32 | } 33 | 34 | public LineSegment Segment { get; private set; } 35 | } 36 | } -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/QuadEdge/QuadEdgeSummary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes to implement a topological subdivision of quadeges, to support creating triangulations 10 | and Voronoi diagrams. 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/QuadEdge/QuadEdgeUtil.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Triangulate.QuadEdge 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class QuadEdgeUtil 6 | { 7 | /// 8 | /// Gets all edges which are incident on the origin of the given edge. 9 | /// 10 | /// the edge to start at 11 | /// a List of edges which have their origin at the origin of the given 12 | /// edge 13 | public static IList FindEdgesIncidentOnOrigin(QuadEdge start) 14 | { 15 | var incEdge = new List(); 16 | 17 | QuadEdge qe = start; 18 | do 19 | { 20 | incEdge.Add(qe); 21 | qe = qe.ONext; 22 | } while (qe != start); 23 | 24 | return incEdge; 25 | } 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /NetTopologySuite/Triangulate/TriangulateSummary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NetTopologySuite 5 | 6 | 7 | 8 | 9 | Classes to compute Delaunay triangulations. 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/AssertionFailedException.cs: -------------------------------------------------------------------------------- 1 | #if !PCL 2 | using System; 3 | #else 4 | using ApplicationException = System.Exception; 5 | #endif 6 | 7 | namespace NetTopologySuite.Utilities 8 | { 9 | /// 10 | /// 11 | /// 12 | public class AssertionFailedException : ApplicationException 13 | { 14 | /// 15 | /// 16 | /// 17 | public AssertionFailedException() 18 | { } 19 | 20 | /// 21 | /// 22 | /// 23 | /// 24 | public AssertionFailedException(string message) : base(message) { } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/BitConverter.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Utilities 2 | { 3 | /// 4 | /// A supoort class: the purpose is to integrate System.BitConverter methods not presents in .NET Compact Framework. 5 | /// 6 | public class BitConverter 7 | { 8 | /// 9 | /// 10 | /// 11 | /// 12 | /// 13 | public static long DoubleToInt64Bits(double x) 14 | { 15 | byte[] bytes = System.BitConverter.GetBytes(x); 16 | long value = System.BitConverter.ToInt64(bytes, 0); 17 | return value; 18 | } 19 | 20 | /// 21 | /// 22 | /// 23 | /// 24 | /// 25 | public static double Int64BitsToDouble(long x) 26 | { 27 | byte[] bytes = System.BitConverter.GetBytes(x); 28 | double value = System.BitConverter.ToDouble(bytes, 0); 29 | return value; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/CoordinateCountFilter.cs: -------------------------------------------------------------------------------- 1 | using GeoAPI.Geometries; 2 | 3 | namespace NetTopologySuite.Utilities 4 | { 5 | /// 6 | /// A CoordinateFilter that counts the total number of coordinates 7 | /// in a Geometry. 8 | /// 9 | public class CoordinateCountFilter : ICoordinateFilter 10 | { 11 | private int _n; 12 | 13 | /* 14 | /// 15 | /// 16 | /// 17 | public CoordinateCountFilter() { } 18 | */ 19 | /// 20 | /// Returns the result of the filtering. 21 | /// 22 | public int Count 23 | { 24 | get 25 | { 26 | return _n; 27 | } 28 | } 29 | 30 | /// 31 | /// 32 | /// 33 | /// 34 | public void Filter(Coordinate coord) 35 | { 36 | _n++; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/Degrees.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Utilities 2 | { 3 | /// 4 | /// Converts degrees to radians. 5 | /// 6 | public class Degrees 7 | { 8 | /// 9 | /// Converts degrees to radians. 10 | /// 11 | /// The angle in degrees. 12 | /// The angle in radians. 13 | public static double ToRadians(double degrees) 14 | { 15 | return degrees * 0.0174532925199432958; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/EnumUtility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Utilities 4 | { 5 | public static class EnumUtility 6 | { 7 | public static object Parse(Type type, string value) 8 | { 9 | #if PCL 10 | return Enum.Parse(type, value, false); 11 | #else 12 | return Enum.Parse(type, value); 13 | #endif 14 | } 15 | 16 | public static string Format(Type type,object value, string formatString) 17 | { 18 | #if PCL 19 | throw new NotImplementedException(); 20 | #else 21 | return Enum.Format(type, value, formatString); 22 | #endif 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/FrameworkReplacements/Collections/Generic/IReadOnlyCollection.cs: -------------------------------------------------------------------------------- 1 | namespace System.Collections.Generic 2 | { 3 | public partial interface IReadOnlyCollection : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable 4 | { 5 | int Count { get; } 6 | } 7 | 8 | public partial interface IReadOnlyList : System.Collections.Generic.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.IEnumerable 9 | { 10 | T this[int index] { get; } 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/FrameworkReplacements/Collections/Generic/IReadOnlyDictionary.cs: -------------------------------------------------------------------------------- 1 | namespace System.Collections.Generic 2 | { 3 | public partial interface IReadOnlyDictionary : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.IEnumerable 4 | { 5 | TValue this[TKey key] { get; } 6 | System.Collections.Generic.IEnumerable Keys { get; } 7 | System.Collections.Generic.IEnumerable Values { get; } 8 | bool ContainsKey(TKey key); 9 | bool TryGetValue(TKey key, out TValue value); 10 | } 11 | } -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/Global.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | 3 | namespace NetTopologySuite.Utilities 4 | { 5 | /// 6 | /// 7 | /// 8 | public sealed class Global 9 | { 10 | /* 11 | * HACK: for SQLCLR integration i does avoid to use public static members, 12 | * i try to use readonly members and singleton implementations... 13 | */ 14 | 15 | private readonly NumberFormatInfo _nfi; 16 | 17 | /// 18 | /// 19 | /// 20 | private Global() 21 | { 22 | _nfi = new NumberFormatInfo(); 23 | _nfi.NumberDecimalSeparator = "."; 24 | } 25 | 26 | /// 27 | /// 28 | /// 29 | private static readonly Global global = new Global(); 30 | 31 | /// 32 | /// 33 | /// 34 | /// 35 | public static NumberFormatInfo GetNfi() 36 | { 37 | return global._nfi; 38 | } 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/Guard.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NetTopologySuite.Utilities 4 | { 5 | public static class Guard 6 | { 7 | public static void IsNotNull(object candidate, string propertyName) 8 | { 9 | if (candidate == null) 10 | throw new ArgumentNullException(propertyName); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/HexConverter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite/Utilities/HexConverter.cs -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/RToolsUtil/StreamTokenizer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite/Utilities/RToolsUtil/StreamTokenizer.cs -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/Radians.cs: -------------------------------------------------------------------------------- 1 | namespace NetTopologySuite.Utilities 2 | { 3 | /// 4 | /// Converts radians to degress. 5 | /// 6 | public class Radians 7 | { 8 | /// 9 | /// Converts radians to degress. 10 | /// 11 | /// Angle in radians. 12 | /// The angle in degrees. 13 | public static double ToDegrees(double radians) 14 | { 15 | return radians * 57.29577951308232; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/ReverseOrder.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | 4 | namespace NetTopologySuite.Utilities 5 | { 6 | /// 7 | /// 8 | /// 9 | internal class ReverseOrder :IComparer 10 | { 11 | /// 12 | /// 13 | /// 14 | /// 15 | /// 16 | /// 17 | public int Compare(object x, object y) 18 | { 19 | // flips result 20 | return Comparer.Default.Compare(x, y) * -1; 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /NetTopologySuite/Utilities/StringEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.RegularExpressions; 3 | 4 | namespace NetTopologySuite.Utilities 5 | { 6 | internal static class StringEx 7 | { 8 | /// 9 | /// Framework replacement for string.IsNullOrWhitespace 10 | /// 11 | /// The string to test 12 | /// A value indicating if is null, empty or only contains whitespace characters 13 | public static bool IsNullOrWhitespaceNTS(string s) 14 | { 15 | return string.IsNullOrEmpty(s) || Regex.IsMatch(s, @"^[\s]+$"); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /NetTopologySuite/nts.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/NetTopologySuite/nts.snk -------------------------------------------------------------------------------- /NetTopologySuite/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /PortableClassLibrary/GeoAPI.Bootstrapper.NetTopologySuite/NetTopologySuiteBootstrapper.cs: -------------------------------------------------------------------------------- 1 | namespace GeoAPI 2 | { 3 | /// 4 | /// A utility class to register NTS as GeoAPI implementation to use 5 | /// 6 | public class NetTopologySuiteBootstrapper 7 | { 8 | /// 9 | /// Method to register NTS as GeoAPI implementation to use. 10 | /// 11 | public static void Bootstrap() 12 | { 13 | GeometryServiceProvider.Instance = NetTopologySuite.NtsGeometryServices.Instance; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /PortableClassLibrary/GeoAPI.Bootstrapper.NetTopologySuite/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Resources; 2 | using System.Reflection; 3 | 4 | // Allgemeine Informationen über eine Assembly werden über folgende 5 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, 6 | // die einer Assembly zugeordnet sind. 7 | [assembly: AssemblyTitle("GeoAPI.Bootstrapper.NetTopologySuite")] 8 | [assembly: AssemblyDescription("Utility library to register NetTopologySuite as GeoAPI implementation")] 9 | #if DEBUG 10 | [assembly: AssemblyConfiguration("Debug")] 11 | #else 12 | [assembly: AssemblyConfiguration("Stable")] 13 | #endif 14 | [assembly: AssemblyCompany("NetTopologySuite-Team")] 15 | [assembly: AssemblyProduct("GeoAPI.Bootstrapper.NetTopologySuite")] 16 | [assembly: AssemblyCopyright("Copyright © 2014 - NetTopologySuite-Team")] 17 | [assembly: AssemblyTrademark("")] 18 | [assembly: AssemblyCulture("")] 19 | //[assembly: NeutralResourcesLanguage("en")] 20 | -------------------------------------------------------------------------------- /PortableClassLibrary/GeoAPI.Bootstrapper.NetTopologySuite/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /PortableClassLibrary/NetTopologySuite.Pcl/Extension/ICoordinateEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | 4 | namespace NetTopologySuite.Extension 5 | { 6 | public static class ICoordinateEx 7 | { 8 | 9 | public static bool ContainsOrdinate(this ICoordinate self, Ordinate ordinate) 10 | { 11 | switch (ordinate) 12 | { 13 | case Ordinate.X: 14 | case Ordinate.Y: 15 | return true; 16 | default: 17 | throw new NotImplementedException(); 18 | } 19 | } 20 | 21 | public static double GetOrdinate(this ICoordinate self, Ordinate ordinate) 22 | { 23 | switch (ordinate) 24 | { 25 | case Ordinate.X: 26 | return self.X; 27 | case Ordinate.Y: 28 | return self.Y; 29 | case Ordinate.Z: 30 | return self.Z; 31 | default: 32 | throw new NotImplementedException(); 33 | } 34 | 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /PortableClassLibrary/NetTopologySuite.Pcl/Extension/IEnvelopeEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GeoAPI.Geometries; 3 | 4 | namespace NetTopologySuite.Extension 5 | { 6 | public static class IEnvelopeEx 7 | { 8 | public static double GetMin(this IEnvelope self, Ordinate ordinate) 9 | { 10 | switch (ordinate) 11 | { 12 | case Ordinate.X: 13 | return self.MinX; 14 | case Ordinate.Y: 15 | return self.MinY; 16 | default: 17 | throw new NotImplementedException(); 18 | } 19 | } 20 | public static double GetMax(this IEnvelope self, Ordinate ordinate) 21 | { 22 | switch (ordinate) 23 | { 24 | case Ordinate.X: 25 | return self.MaxX; 26 | case Ordinate.Y: 27 | return self.MaxY; 28 | default: 29 | throw new NotImplementedException(); 30 | } 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /PortableClassLibrary/NetTopologySuite.Pcl/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /PortableClassLibrary/NetTopologySuite.Tests.NUnit.Pcl/PclSetup.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace NetTopologySuite.Tests.NUnit 4 | { 5 | [SetUpFixture] 6 | public class PclSetup 7 | { 8 | [SetUp] 9 | public void SetUp() 10 | { 11 | GeoAPI.NetTopologySuiteBootstrapper.Bootstrap(); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /PortableClassLibrary/NetTopologySuite.Tests.NUnit.Pcl/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DotSpatial NetTopologySuite 2 | 3 | This is custom build of NetTopologySuite for DotSpatial project. -------------------------------------------------------------------------------- /Sandcastle/DocFiles/minClearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DotSpatial/NetTopologySuiteV1/25c63d925f123fd4535c9ab6a7313519e430f241/Sandcastle/DocFiles/minClearance.png -------------------------------------------------------------------------------- /SharedAssemblyVersion.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Dieser Code wurde von einem Tool generiert. 4 | // Laufzeitversion:4.0.30319.34209 5 | // 6 | // Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn 7 | // der Code erneut generiert wird. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: AssemblyVersion("1.14.4")] 15 | [assembly: AssemblyFileVersion("1.14.4")] 16 | 17 | // Von der MSBuild WriteCodeFragment-Klasse für 16.11.2015 12:13:12 generiert. 18 | 19 | -------------------------------------------------------------------------------- /TeamCity.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | NetTopologySuite.sln 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | --------------------------------------------------------------------------------