[geos-commits] [SCM] GEOS branch master updated. 9ffadc117040ab58a68e3a6b4f4b05da9ca4c61c

git at osgeo.org git at osgeo.org
Wed Dec 12 15:30:48 PST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, master has been updated
       via  9ffadc117040ab58a68e3a6b4f4b05da9ca4c61c (commit)
       via  9674b7de0c95f9c9976621b8024759b4dcbf334b (commit)
      from  f5230e57d46ee3793e157979e8e36633ec96a833 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9ffadc117040ab58a68e3a6b4f4b05da9ca4c61c
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Wed Dec 12 15:30:40 2018 -0800

    Remove MCPointInRing

diff --git a/include/geos/algorithm/MCPointInRing.h b/include/geos/algorithm/MCPointInRing.h
deleted file mode 100644
index 6a833e7..0000000
--- a/include/geos/algorithm/MCPointInRing.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**********************************************************************
- *
- * GEOS - Geometry Engine Open Source
- * http://geos.osgeo.org
- *
- * Copyright (C) 2005-2006 Refractions Research Inc.
- * Copyright (C) 2001-2002 Vivid Solutions Inc.
- *
- * This is free software; you can redistribute and/or modify it under
- * the terms of the GNU Lesser General Public Licence as published
- * by the Free Software Foundation.
- * See the COPYING file for more information.
- *
- **********************************************************************/
-
-#ifndef GEOS_ALGORITHM_MCPOINTINRING_H
-#define GEOS_ALGORITHM_MCPOINTINRING_H
-
-#include <geos/export.h>
-#include <geos/index/chain/MonotoneChainSelectAction.h> // for inheritance
-#include <geos/algorithm/PointInRing.h> // for inheritance
-#include <geos/geom/Coordinate.h> // for composition
-#include <geos/index/bintree/Interval.h> // for composition
-
-
-#include <memory>
-#include <vector>
-
-// Forward declarations
-namespace geos {
-	namespace geom {
-		class Coordinate;
-		class LineSegment;
-		class LinearRing;
-		class CoordinateSequence;
-		class CoordinateSequence;
-	}
-	namespace index {
-		namespace bintree {
-			class Bintree;
-			class Interval;
-		}
-	}
-}
-
-namespace geos {
-namespace algorithm { // geos::algorithm
-
-class GEOS_DLL MCPointInRing: public PointInRing {
-public:
-	MCPointInRing(const geom::LinearRing *newRing);
-	~MCPointInRing() override;
-	bool isInside(const geom::Coordinate& pt) override;
-
-	void testLineSegment(const geom::Coordinate& p,
-	                        const geom::LineSegment& seg);
-
-	class MCSelecter: public index::chain::MonotoneChainSelectAction {
-	using MonotoneChainSelectAction::select;
-	private:
-		geom::Coordinate p;
-		MCPointInRing *parent;
-	public:
-		MCSelecter(const geom::Coordinate& newP, MCPointInRing *prt);
-		void select(const geom::LineSegment& ls) override;
-	};
-
-private:
-	const geom::LinearRing *ring;
-	index::bintree::Interval interval;
-	std::unique_ptr<geom::CoordinateSequence> pts;
-	std::unique_ptr<index::bintree::Bintree> tree;
-	std::unique_ptr<std::vector<std::unique_ptr<index::chain::MonotoneChain>>> chains;
-	int crossings;  // number of segment/ray crossings
-	void buildIndex();
-	void testMonotoneChain(geom::Envelope *rayEnv,
-			MCSelecter *mcSelecter,
-			index::chain::MonotoneChain *mc);
-};
-
-} // namespace geos::algorithm
-} // namespace geos
-
-#endif // GEOS_ALGORITHM_MCPOINTINRING_H
-
diff --git a/include/geos/algorithm/Makefile.am b/include/geos/algorithm/Makefile.am
index 5df8b26..6abf2f5 100644
--- a/include/geos/algorithm/Makefile.am
+++ b/include/geos/algorithm/Makefile.am
@@ -26,7 +26,6 @@ geos_HEADERS = \
 	InteriorPointLine.h \
 	InteriorPointPoint.h \
 	LineIntersector.h \
-	MCPointInRing.h \
 	MinimumDiameter.h \
 	NotRepresentableException.h \
 	PointInRing.h \
diff --git a/src/Makefile.vc b/src/Makefile.vc
index 97152ca..3874378 100644
--- a/src/Makefile.vc
+++ b/src/Makefile.vc
@@ -1,400 +1,399 @@
-#
-# Building on Win32 with Visual C++ 7.0, 7.1, 8.0 or 9.0
-###############################################################################
-#
-# Produces:
-#  geos.lib: static library for use of C or C++ API.
-#  geos.dll: DLL - only exports the C API
-#  geos_i.lib: stub library to link against for use of geos.dll.
-#
-#  geos_d.lib: debug static library for use of C or C++ API.
-#  geos_d.dll: debug DLL - only exports the C API
-#  geos_i_d.lib: debug stub library to link against for use of geos.dll.
-#
-# This makefile mostly maintained by Frank Warmerdam <warmerdam at pobox.com>
-# with support by Mateusz Loskot <mateusz at loskot.net>
-###############################################################################
-GEOS_ROOT=..
-!INCLUDE $(GEOS_ROOT)\nmake.opt
-!INCLUDE dirlist.mk
-
-###############################################################################
-# Output location
-# TODO: not yet supported
-#OUT_DIR = $(GEOS_ROOT)\bin\$(BUILD_DIR)
-
-###############################################################################
-# List of objects
-
-OBJ_EXT = obj
-EXT = $(OBJ_EXT)
-
-OBJ = \
-	algorithm\Angle.$(EXT) \
-	algorithm\BoundaryNodeRule.$(EXT) \
-	algorithm\Centroid.$(EXT) \
-	algorithm\CentroidArea.$(EXT) \
-	algorithm\CentroidLine.$(EXT) \
-	algorithm\CentroidPoint.$(EXT) \
-	algorithm\CGAlgorithms.$(EXT) \
-	algorithm\ConvexHull.$(EXT) \
-	algorithm\HCoordinate.$(EXT) \
-	algorithm\InteriorPointArea.$(EXT) \
-	algorithm\InteriorPointLine.$(EXT) \
-	algorithm\InteriorPointPoint.$(EXT) \
-	algorithm\LineIntersector.$(EXT) \
-	algorithm\MCPointInRing.$(EXT) \
-	algorithm\MinimumDiameter.$(EXT) \
-	algorithm\NotRepresentableException.$(EXT) \
-	algorithm\PointLocator.$(EXT) \
-	algorithm\RayCrossingCounter.$(EXT) \
-	algorithm\RobustDeterminant.$(EXT) \
-	algorithm\SimplePointInRing.$(EXT) \
-	algorithm\SIRtreePointInRing.$(EXT) \
-	algorithm\distance\DiscreteHausdorffDistance.$(EXT) \
-	algorithm\distance\DiscreteFrechetDistance.$(EXT) \
-	algorithm\distance\DistanceToPoint.$(EXT) \
-	algorithm\locate\IndexedPointInAreaLocator.$(EXT) \
-	algorithm\locate\PointOnGeometryLocator.$(EXT) \
-	algorithm\locate\SimplePointInAreaLocator.$(EXT) \
-	geom\Coordinate.$(EXT) \
-	geom\CoordinateArraySequence.$(EXT) \
-	geom\CoordinateArraySequenceFactory.$(EXT) \
-	geom\CoordinateSequence.$(EXT) \
-	geom\CoordinateSequenceFactory.$(EXT) \
-	geom\Dimension.$(EXT) \
-	geom\Envelope.$(EXT) \
-	geom\Geometry.$(EXT) \
-	geom\GeometryCollection.$(EXT) \
-	geom\GeometryComponentFilter.$(EXT) \
-	geom\GeometryFactory.$(EXT) \
-	geom\IntersectionMatrix.$(EXT) \
-	geom\LinearRing.$(EXT) \
-	geom\LineSegment.$(EXT) \
-	geom\LineString.$(EXT) \
-	geom\Location.$(EXT) \
-	geom\MultiLineString.$(EXT) \
-	geom\MultiPoint.$(EXT) \
-	geom\MultiPolygon.$(EXT) \
-	geom\Point.$(EXT) \
-	geom\Polygon.$(EXT) \
-	geom\PrecisionModel.$(EXT) \
-	geom\Triangle.$(EXT) \
-	geom\util\ComponentCoordinateExtracter.$(EXT) \
-	geom\util\CoordinateOperation.$(EXT) \
-	geom\util\GeometryEditor.$(EXT) \
-	geom\util\GeometryTransformer.$(EXT) \
-	geom\util\GeometryCombiner.$(EXT) \
-	geom\util\ShortCircuitedGeometryVisitor.$(EXT) \
-	geom\util\SineStarFactory.$(EXT) \
-	geom\util\LinearComponentExtracter.$(EXT) \
-	geom\util\PolygonExtracter.$(EXT) \
-	geom\util\PointExtracter.$(EXT) \
-	geom\prep\AbstractPreparedPolygonContains.$(EXT) \
-	geom\prep\BasicPreparedGeometry.$(EXT) \
-	geom\prep\PreparedGeometry.$(EXT) \
-	geom\prep\PreparedGeometryFactory.$(EXT) \
-	geom\prep\PreparedLineString.$(EXT) \
-	geom\prep\PreparedLineStringIntersects.$(EXT) \
-	geom\prep\PreparedPoint.$(EXT) \
-	geom\prep\PreparedPolygon.$(EXT) \
-	geom\prep\PreparedPolygonContains.$(EXT) \
-	geom\prep\PreparedPolygonContainsProperly.$(EXT) \
-	geom\prep\PreparedPolygonCovers.$(EXT) \
-	geom\prep\PreparedPolygonIntersects.$(EXT) \
-	geom\prep\PreparedPolygonPredicate.$(EXT) \
-	geomgraph\Depth.$(EXT) \
-	geomgraph\DirectedEdge.$(EXT) \
-	geomgraph\DirectedEdgeStar.$(EXT) \
-	geomgraph\Edge.$(EXT) \
-	geomgraph\EdgeEnd.$(EXT) \
-	geomgraph\EdgeEndStar.$(EXT) \
-	geomgraph\EdgeIntersectionList.$(EXT) \
-	geomgraph\EdgeList.$(EXT) \
-	geomgraph\EdgeNodingValidator.$(EXT) \
-	geomgraph\EdgeRing.$(EXT) \
-	geomgraph\GeometryGraph.$(EXT) \
-	geomgraph\GraphComponent.$(EXT) \
-	geomgraph\Label.$(EXT) \
-	geomgraph\Node.$(EXT) \
-	geomgraph\NodeFactory.$(EXT) \
-	geomgraph\NodeMap.$(EXT) \
-	geomgraph\PlanarGraph.$(EXT) \
-	geomgraph\Position.$(EXT) \
-	geomgraph\Quadrant.$(EXT) \
-	geomgraph\TopologyLocation.$(EXT) \
-	geomgraph\index\MonotoneChainEdge.$(EXT) \
-	geomgraph\index\MonotoneChainIndexer.$(EXT) \
-	geomgraph\index\SegmentIntersector.$(EXT) \
-	geomgraph\index\SimpleEdgeSetIntersector.$(EXT) \
-	geomgraph\index\SimpleMCSweepLineIntersector.$(EXT) \
-	geomgraph\index\SimpleSweepLineIntersector.$(EXT) \
-	geomgraph\index\SweepLineEvent.$(EXT) \
-	geomgraph\index\SweepLineSegment.$(EXT) \
-	index\bintree\Bintree.$(EXT) \
-	index\bintree\Interval.$(EXT) \
-	index\bintree\Key.$(EXT) \
-	index\bintree\Node.$(EXT) \
-	index\bintree\NodeBase.$(EXT) \
-	index\bintree\Root.$(EXT) \
-	index\chain\MonotoneChain.$(EXT) \
-	index\chain\MonotoneChainBuilder.$(EXT) \
-	index\chain\MonotoneChainOverlapAction.$(EXT) \
-	index\chain\MonotoneChainSelectAction.$(EXT) \
-	index\intervalrtree\IntervalRTreeBranchNode.$(EXT) \
-	index\intervalrtree\IntervalRTreeLeafNode.$(EXT) \
-	index\intervalrtree\SortedPackedIntervalRTree.$(EXT) \
-	index\quadtree\DoubleBits.$(EXT) \
-	index\quadtree\IntervalSize.$(EXT) \
-	index\quadtree\Key.$(EXT) \
-	index\quadtree\Node.$(EXT) \
-	index\quadtree\NodeBase.$(EXT) \
-	index\quadtree\Root.$(EXT) \
-	index\quadtree\Quadtree.$(EXT) \
-	index\strtree\AbstractNode.$(EXT) \
-	index\strtree\AbstractSTRtree.$(EXT) \
-	index\strtree\BoundablePair.$(EXT) \
-	index\strtree\GeometryItemDistance.$(EXT) \
-	index\strtree\Interval.$(EXT) \
-	index\strtree\ItemBoundable.$(EXT) \
-	index\strtree\SIRtree.$(EXT) \
-	index\strtree\STRtree.$(EXT) \
-	index\sweepline\SweepLineEvent.$(EXT) \
-	index\sweepline\SweepLineIndex.$(EXT) \
-	index\sweepline\SweepLineInterval.$(EXT) \
-	io\ByteOrderDataInStream.$(EXT) \
-	io\ByteOrderValues.$(EXT) \
-	io\CLocalizer.$(EXT) \
-	io\ParseException.$(EXT) \
-	io\StringTokenizer.$(EXT) \
-	io\Unload.$(EXT) \
-	io\WKBReader.$(EXT) \
-	io\WKBWriter.$(EXT) \
-	io\WKTReader.$(EXT) \
-	io\WKTWriter.$(EXT) \
-	io\Writer.$(EXT) \
-	noding\BasicSegmentString.$(EXT) \
-	noding\FastNodingValidator.$(EXT) \
-	noding\FastSegmentSetIntersectionFinder.$(EXT) \
-	noding\GeometryNoder.$(EXT) \
-	noding\IntersectionAdder.$(EXT) \
-	noding\IntersectionFinderAdder.$(EXT) \
-	noding\IteratedNoder.$(EXT) \
-	noding\MCIndexNoder.$(EXT) \
-	noding\MCIndexSegmentSetMutualIntersector.$(EXT) \
-	noding\NodedSegmentString.$(EXT) \
-	noding\NodingValidator.$(EXT) \
-	noding\Octant.$(EXT) \
-	noding\OrientedCoordinateArray.$(EXT) \
-	noding\ScaledNoder.$(EXT) \
-	noding\SegmentIntersectionDetector.$(EXT) \
-	noding\SegmentNode.$(EXT) \
-	noding\SegmentNodeList.$(EXT) \
-	noding\SegmentString.$(EXT) \
-	noding\SegmentStringUtil.$(EXT) \
-	noding\SimpleNoder.$(EXT) \
-	noding\SingleInteriorIntersectionFinder.$(EXT) \
-	noding\snapround\HotPixel.$(EXT) \
-	noding\snapround\MCIndexPointSnapper.$(EXT) \
-	noding\snapround\MCIndexSnapRounder.$(EXT) \
-	noding\snapround\SimpleSnapRounder.$(EXT) \
-	operation\GeometryGraphOperation.$(EXT) \
-	operation\IsSimpleOp.$(EXT) \
-	operation\buffer\BufferBuilder.$(EXT) \
-	operation\buffer\BufferInputLineSimplifier.$(EXT) \
-	operation\buffer\BufferParameters.$(EXT) \
-	operation\buffer\BufferOp.$(EXT) \
-	operation\buffer\BufferSubgraph.$(EXT) \
-	operation\buffer\OffsetCurveBuilder.$(EXT) \
-	operation\buffer\OffsetCurveSetBuilder.$(EXT) \
-	operation\buffer\OffsetSegmentGenerator.$(EXT) \
-	operation\buffer\RightmostEdgeFinder.$(EXT) \
-	operation\buffer\SubgraphDepthLocater.$(EXT) \
-	operation\distance\ConnectedElementLocationFilter.$(EXT) \
-	operation\distance\ConnectedElementPointFilter.$(EXT) \
-	operation\distance\DistanceOp.$(EXT) \
-	operation\distance\FacetSequence.$(EXT) \
-	operation\distance\FacetSequenceTreeBuilder.$(EXT) \
-	operation\distance\GeometryLocation.$(EXT) \
-	operation\distance\IndexedFacetDistance.$(EXT) \
-	operation\intersection\Rectangle.$(EXT) \
-	operation\intersection\RectangleIntersection.$(EXT) \
-	operation\intersection\RectangleIntersectionBuilder.$(EXT) \
-	operation\linemerge\EdgeString.$(EXT) \
-	operation\linemerge\LineMergeDirectedEdge.$(EXT) \
-	operation\linemerge\LineMergeEdge.$(EXT) \
-	operation\linemerge\LineMergeGraph.$(EXT) \
-	operation\linemerge\LineMerger.$(EXT) \
-	operation\linemerge\LineSequencer.$(EXT) \
-	operation\overlay\EdgeSetNoder.$(EXT) \
-	operation\overlay\ElevationMatrix.$(EXT) \
-	operation\overlay\ElevationMatrixCell.$(EXT) \
-	operation\overlay\LineBuilder.$(EXT) \
-	operation\overlay\MaximalEdgeRing.$(EXT) \
-	operation\overlay\MinimalEdgeRing.$(EXT) \
-	operation\overlay\OverlayNodeFactory.$(EXT) \
-	operation\overlay\OverlayOp.$(EXT) \
-	operation\overlay\PointBuilder.$(EXT) \
-	operation\overlay\PolygonBuilder.$(EXT) \
-	operation\overlay\snap\GeometrySnapper.$(EXT) \
- 	operation\overlay\snap\LineStringSnapper.$(EXT) \
- 	operation\overlay\snap\SnapOverlayOp.$(EXT) \
- 	operation\overlay\snap\SnapIfNeededOverlayOp.$(EXT) \
- 	operation\overlay\validate\FuzzyPointLocator.$(EXT) \
- 	operation\overlay\validate\OffsetPointGenerator.$(EXT) \
- 	operation\overlay\validate\OverlayResultValidator.$(EXT) \
-	operation\polygonize\PolygonizeDirectedEdge.$(EXT) \
-	operation\polygonize\PolygonizeEdge.$(EXT) \
-	operation\polygonize\EdgeRing.$(EXT) \
-	operation\polygonize\PolygonizeGraph.$(EXT) \
-	operation\polygonize\Polygonizer.$(EXT) \
-	operation\predicate\RectangleContains.$(EXT) \
-	operation\predicate\RectangleIntersects.$(EXT) \
-	operation\predicate\SegmentIntersectionTester.$(EXT) \
-	operation\relate\EdgeEndBuilder.$(EXT) \
-	operation\relate\EdgeEndBundle.$(EXT) \
-	operation\relate\EdgeEndBundleStar.$(EXT) \
-	operation\relate\RelateComputer.$(EXT) \
-	operation\relate\RelateNode.$(EXT) \
-	operation\relate\RelateNodeFactory.$(EXT) \
-	operation\relate\RelateNodeGraph.$(EXT) \
-	operation\relate\RelateOp.$(EXT) \
-	operation\sharedpaths\SharedPathsOp.$(EXT) \
-	operation\union\CascadedPolygonUnion.$(EXT) \
-	operation\union\CascadedUnion.$(EXT) \
-	operation\union\PointGeometryUnion.$(EXT) \
-	operation\union\UnaryUnionOp.$(EXT) \
-	operation\valid\ConnectedInteriorTester.$(EXT) \
-	operation\valid\ConsistentAreaTester.$(EXT) \
-	operation\valid\IndexedNestedRingTester.$(EXT) \
-	operation\valid\IsValidOp.$(EXT) \
-	operation\valid\QuadtreeNestedRingTester.$(EXT) \
-	operation\valid\RepeatedPointTester.$(EXT) \
-	operation\valid\SimpleNestedRingTester.$(EXT) \
-	operation\valid\SweeplineNestedRingTester.$(EXT) \
-	operation\valid\TopologyValidationError.$(EXT) \
-	planargraph\DirectedEdge.$(EXT) \
-	planargraph\DirectedEdgeStar.$(EXT) \
-	planargraph\Edge.$(EXT) \
-	planargraph\Node.$(EXT) \
-	planargraph\NodeMap.$(EXT) \
-	planargraph\PlanarGraph.$(EXT) \
-	planargraph\Subgraph.$(EXT) \
-	planargraph\algorithm\ConnectedSubgraphFinder.$(EXT) \
-	precision\CommonBits.$(EXT) \
-	precision\CommonBitsOp.$(EXT) \
-	precision\CommonBitsRemover.$(EXT) \
-	precision\EnhancedPrecisionOp.$(EXT) \
-	precision\GeometryPrecisionReducer.$(EXT) \
-	precision\MinimumClearance.$(EXT) \
-	precision\PrecisionReducerCoordinateOperation.$(EXT) \
-	precision\SimpleGeometryPrecisionReducer.$(EXT) \
-	simplify\DouglasPeuckerLineSimplifier.$(EXT) \
-	simplify\DouglasPeuckerSimplifier.$(EXT) \
-	simplify\LineSegmentIndex.$(EXT) \
-	simplify\TaggedLineSegment.$(EXT) \
-	simplify\TaggedLinesSimplifier.$(EXT) \
-	simplify\TaggedLineString.$(EXT) \
-	simplify\TaggedLineStringSimplifier.$(EXT) \
-	simplify\TopologyPreservingSimplifier.$(EXT) \
-	triangulate\DelaunayTriangulationBuilder.$(EXT) \
-	triangulate\IncrementalDelaunayTriangulator.$(EXT) \
-	triangulate\VoronoiDiagramBuilder.$(EXT) \
-	triangulate\quadedge\LastFoundQuadEdgeLocator.$(EXT) \
-	triangulate\quadedge\LocateFailureException.$(EXT) \
-	triangulate\quadedge\QuadEdge.$(EXT) \
-	triangulate\quadedge\QuadEdgeLocator.$(EXT) \
-	triangulate\quadedge\QuadEdgeSubdivision.$(EXT) \
-	triangulate\quadedge\TrianglePredicate.$(EXT) \
-	triangulate\quadedge\TriangleVisitor.$(EXT) \
-	triangulate\quadedge\Vertex.$(EXT) \
-	util\Assert.$(EXT) \
-	util\GeometricShapeFactory.$(EXT) \
-	util\Interrupt.$(EXT) \
-	util\math.$(EXT) \
-	util\Profiler.$(EXT) \
-	linearref\ExtractLineByLocation.$(EXT) \
-	linearref\LengthIndexOfPoint.$(EXT) \
-	linearref\LengthIndexedLine.$(EXT) \
-	linearref\LengthLocationMap.$(EXT) \
-	linearref\LinearGeometryBuilder.$(EXT) \
-	linearref\LinearIterator.$(EXT) \
-	linearref\LinearLocation.$(EXT) \
-	linearref\LocationIndexOfLine.$(EXT) \
-	linearref\LocationIndexOfPoint.$(EXT) \
-	..\capi\geos_c.$(EXT) \
-	..\capi\geos_ts_c.$(EXT) \
-	inlines.$(EXT)
-
-TEST_EXE =	TestSweepLineSpeed.exe
-
-###############################################################################
-# Build targets
-
-default: $(LIBNAME) $(DLLNAME) $(CDLLNAME)
-
-all: $(LIBNAME) $(DLLNAME) $(CDLLNAME) TestSweepLineSpeed.exe geostest.exe
-
-check: all
-	TestSweepLineSpeed.exe
-
-
-$(LIBNAME):	$(GEOS_ROOT)\include\geos\platform.h $(GEOS_ROOT)\include\geos\version.h ..\capi\geos_c.h $(OBJ)
-	if exist $(LIBNAME) del $(LIBNAME)
-	$(LINK) /lib /out:$(LIBNAME) $(OBJ)
-
-$(DLLNAME):	$(OBJ)
-	$(LINK) /dll /debug $(LINKER_FLAGS) $(OBJ) /out:$(DLLNAME) /implib:$(SLIBNAME)
-	if exist $(DLLNAME).manifest mt -manifest $(DLLNAME).manifest -outputresource:$(DLLNAME);2
-
-$(CDLLNAME): ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(DLLNAME)
-	$(LINK) /dll /debug $(LINKER_FLAGS) ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(LIBNAME) /out:$(CDLLNAME) /implib:$(CLIBNAME)
-	if exist $(CDLLNAME).manifest mt -manifest $(CDLLNAME).manifest -outputresource:$(CDLLNAME);2
-
-$(GEOS_ROOT)\include\geos\platform.h: $(GEOS_ROOT)\include\geos\platform.h.vc
-	$(CP) $(GEOS_ROOT)\include\geos\platform.h.vc $(GEOS_ROOT)\include\geos\platform.h
-
-$(GEOS_ROOT)\include\geos\version.h: $(GEOS_ROOT)\include\geos\version.h.vc
-	if not exist $(GEOS_ROOT)\include\geos\version.h $(CP) $(GEOS_ROOT)\include\geos\version.h.vc $(GEOS_ROOT)\include\geos\version.h
-
-# geos_c.h should already be in distribution, if is not you'll
-# have to run ./configure to recreate
-../capi/geos_c.h: ../capi/geos_c.h.in.
-	$(CP) ..\capi\geos_c.h.in ..\capi\geos_c.h
-
-.cpp.obj:
-	$(CC) $(CFLAGS) /c $*.cpp /Fo$@
-
-{..\capi}.cpp.obj:
-	$(CC) $(CFLAGS) /D "GEOS_DLL_EXPORT" /c $*.cpp /Fo$@
-
-.c.obj:
-	$(CC) $(CFLAGS) /c $*.c /Fo$@
-
-clean:
-	@ECHO "*** Cleaning GEOS source tree"
-	@IF EXIST $(LIBNAME)  $(RM) $(LIBNAME)
-	@IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
-	@IF EXIST $(DLLNAME)  $(RM) $(DLLNAME)
-	@IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
-	@IF EXIST $(CLIBNAME) $(RM) $(CLIBNAME)
-	@IF EXIST $(CDLLNAME) $(RM) $(CDLLNAME)
-	- at del /s *.exe
-	- at del /s *.exp
-	- at del /s *.ilk
-	- at del /s *.manifest
-	- at del /s *.obj
-	- at del /s *.pdb
-
-TestSweepLineSpeed.exe:	$(LIBNAME) \
-		..\tests\bigtest\GeometryTestFactory.obj \
-		..\tests\bigtest\TestSweepLineSpeed.obj
-	$(LINK) /debug /out:TestSweepLineSpeed.exe \
-		..\tests\bigtest\TestSweepLineSpeed.obj \
-		..\tests\bigtest\GeometryTestFactory.obj \
-		$(LIBNAME)
-
-geostest.exe: $(CDLLNAME) ..\tests\unit\capi\geostest.obj
-	$(LINK) /debug ..\tests\unit\capi\geostest.obj $(CLIBNAME)
-
-# EOF
+#
+# Building on Win32 with Visual C++ 7.0, 7.1, 8.0 or 9.0
+###############################################################################
+#
+# Produces:
+#  geos.lib: static library for use of C or C++ API.
+#  geos.dll: DLL - only exports the C API
+#  geos_i.lib: stub library to link against for use of geos.dll.
+#
+#  geos_d.lib: debug static library for use of C or C++ API.
+#  geos_d.dll: debug DLL - only exports the C API
+#  geos_i_d.lib: debug stub library to link against for use of geos.dll.
+#
+# This makefile mostly maintained by Frank Warmerdam <warmerdam at pobox.com>
+# with support by Mateusz Loskot <mateusz at loskot.net>
+###############################################################################
+GEOS_ROOT=..
+!INCLUDE $(GEOS_ROOT)\nmake.opt
+!INCLUDE dirlist.mk
+
+###############################################################################
+# Output location
+# TODO: not yet supported
+#OUT_DIR = $(GEOS_ROOT)\bin\$(BUILD_DIR)
+
+###############################################################################
+# List of objects
+
+OBJ_EXT = obj
+EXT = $(OBJ_EXT)
+
+OBJ = \
+	algorithm\Angle.$(EXT) \
+	algorithm\BoundaryNodeRule.$(EXT) \
+	algorithm\Centroid.$(EXT) \
+	algorithm\CentroidArea.$(EXT) \
+	algorithm\CentroidLine.$(EXT) \
+	algorithm\CentroidPoint.$(EXT) \
+	algorithm\CGAlgorithms.$(EXT) \
+	algorithm\ConvexHull.$(EXT) \
+	algorithm\HCoordinate.$(EXT) \
+	algorithm\InteriorPointArea.$(EXT) \
+	algorithm\InteriorPointLine.$(EXT) \
+	algorithm\InteriorPointPoint.$(EXT) \
+	algorithm\LineIntersector.$(EXT) \
+	algorithm\MinimumDiameter.$(EXT) \
+	algorithm\NotRepresentableException.$(EXT) \
+	algorithm\PointLocator.$(EXT) \
+	algorithm\RayCrossingCounter.$(EXT) \
+	algorithm\RobustDeterminant.$(EXT) \
+	algorithm\SimplePointInRing.$(EXT) \
+	algorithm\SIRtreePointInRing.$(EXT) \
+	algorithm\distance\DiscreteHausdorffDistance.$(EXT) \
+	algorithm\distance\DiscreteFrechetDistance.$(EXT) \
+	algorithm\distance\DistanceToPoint.$(EXT) \
+	algorithm\locate\IndexedPointInAreaLocator.$(EXT) \
+	algorithm\locate\PointOnGeometryLocator.$(EXT) \
+	algorithm\locate\SimplePointInAreaLocator.$(EXT) \
+	geom\Coordinate.$(EXT) \
+	geom\CoordinateArraySequence.$(EXT) \
+	geom\CoordinateArraySequenceFactory.$(EXT) \
+	geom\CoordinateSequence.$(EXT) \
+	geom\CoordinateSequenceFactory.$(EXT) \
+	geom\Dimension.$(EXT) \
+	geom\Envelope.$(EXT) \
+	geom\Geometry.$(EXT) \
+	geom\GeometryCollection.$(EXT) \
+	geom\GeometryComponentFilter.$(EXT) \
+	geom\GeometryFactory.$(EXT) \
+	geom\IntersectionMatrix.$(EXT) \
+	geom\LinearRing.$(EXT) \
+	geom\LineSegment.$(EXT) \
+	geom\LineString.$(EXT) \
+	geom\Location.$(EXT) \
+	geom\MultiLineString.$(EXT) \
+	geom\MultiPoint.$(EXT) \
+	geom\MultiPolygon.$(EXT) \
+	geom\Point.$(EXT) \
+	geom\Polygon.$(EXT) \
+	geom\PrecisionModel.$(EXT) \
+	geom\Triangle.$(EXT) \
+	geom\util\ComponentCoordinateExtracter.$(EXT) \
+	geom\util\CoordinateOperation.$(EXT) \
+	geom\util\GeometryEditor.$(EXT) \
+	geom\util\GeometryTransformer.$(EXT) \
+	geom\util\GeometryCombiner.$(EXT) \
+	geom\util\ShortCircuitedGeometryVisitor.$(EXT) \
+	geom\util\SineStarFactory.$(EXT) \
+	geom\util\LinearComponentExtracter.$(EXT) \
+	geom\util\PolygonExtracter.$(EXT) \
+	geom\util\PointExtracter.$(EXT) \
+	geom\prep\AbstractPreparedPolygonContains.$(EXT) \
+	geom\prep\BasicPreparedGeometry.$(EXT) \
+	geom\prep\PreparedGeometry.$(EXT) \
+	geom\prep\PreparedGeometryFactory.$(EXT) \
+	geom\prep\PreparedLineString.$(EXT) \
+	geom\prep\PreparedLineStringIntersects.$(EXT) \
+	geom\prep\PreparedPoint.$(EXT) \
+	geom\prep\PreparedPolygon.$(EXT) \
+	geom\prep\PreparedPolygonContains.$(EXT) \
+	geom\prep\PreparedPolygonContainsProperly.$(EXT) \
+	geom\prep\PreparedPolygonCovers.$(EXT) \
+	geom\prep\PreparedPolygonIntersects.$(EXT) \
+	geom\prep\PreparedPolygonPredicate.$(EXT) \
+	geomgraph\Depth.$(EXT) \
+	geomgraph\DirectedEdge.$(EXT) \
+	geomgraph\DirectedEdgeStar.$(EXT) \
+	geomgraph\Edge.$(EXT) \
+	geomgraph\EdgeEnd.$(EXT) \
+	geomgraph\EdgeEndStar.$(EXT) \
+	geomgraph\EdgeIntersectionList.$(EXT) \
+	geomgraph\EdgeList.$(EXT) \
+	geomgraph\EdgeNodingValidator.$(EXT) \
+	geomgraph\EdgeRing.$(EXT) \
+	geomgraph\GeometryGraph.$(EXT) \
+	geomgraph\GraphComponent.$(EXT) \
+	geomgraph\Label.$(EXT) \
+	geomgraph\Node.$(EXT) \
+	geomgraph\NodeFactory.$(EXT) \
+	geomgraph\NodeMap.$(EXT) \
+	geomgraph\PlanarGraph.$(EXT) \
+	geomgraph\Position.$(EXT) \
+	geomgraph\Quadrant.$(EXT) \
+	geomgraph\TopologyLocation.$(EXT) \
+	geomgraph\index\MonotoneChainEdge.$(EXT) \
+	geomgraph\index\MonotoneChainIndexer.$(EXT) \
+	geomgraph\index\SegmentIntersector.$(EXT) \
+	geomgraph\index\SimpleEdgeSetIntersector.$(EXT) \
+	geomgraph\index\SimpleMCSweepLineIntersector.$(EXT) \
+	geomgraph\index\SimpleSweepLineIntersector.$(EXT) \
+	geomgraph\index\SweepLineEvent.$(EXT) \
+	geomgraph\index\SweepLineSegment.$(EXT) \
+	index\bintree\Bintree.$(EXT) \
+	index\bintree\Interval.$(EXT) \
+	index\bintree\Key.$(EXT) \
+	index\bintree\Node.$(EXT) \
+	index\bintree\NodeBase.$(EXT) \
+	index\bintree\Root.$(EXT) \
+	index\chain\MonotoneChain.$(EXT) \
+	index\chain\MonotoneChainBuilder.$(EXT) \
+	index\chain\MonotoneChainOverlapAction.$(EXT) \
+	index\chain\MonotoneChainSelectAction.$(EXT) \
+	index\intervalrtree\IntervalRTreeBranchNode.$(EXT) \
+	index\intervalrtree\IntervalRTreeLeafNode.$(EXT) \
+	index\intervalrtree\SortedPackedIntervalRTree.$(EXT) \
+	index\quadtree\DoubleBits.$(EXT) \
+	index\quadtree\IntervalSize.$(EXT) \
+	index\quadtree\Key.$(EXT) \
+	index\quadtree\Node.$(EXT) \
+	index\quadtree\NodeBase.$(EXT) \
+	index\quadtree\Root.$(EXT) \
+	index\quadtree\Quadtree.$(EXT) \
+	index\strtree\AbstractNode.$(EXT) \
+	index\strtree\AbstractSTRtree.$(EXT) \
+	index\strtree\BoundablePair.$(EXT) \
+	index\strtree\GeometryItemDistance.$(EXT) \
+	index\strtree\Interval.$(EXT) \
+	index\strtree\ItemBoundable.$(EXT) \
+	index\strtree\SIRtree.$(EXT) \
+	index\strtree\STRtree.$(EXT) \
+	index\sweepline\SweepLineEvent.$(EXT) \
+	index\sweepline\SweepLineIndex.$(EXT) \
+	index\sweepline\SweepLineInterval.$(EXT) \
+	io\ByteOrderDataInStream.$(EXT) \
+	io\ByteOrderValues.$(EXT) \
+	io\CLocalizer.$(EXT) \
+	io\ParseException.$(EXT) \
+	io\StringTokenizer.$(EXT) \
+	io\Unload.$(EXT) \
+	io\WKBReader.$(EXT) \
+	io\WKBWriter.$(EXT) \
+	io\WKTReader.$(EXT) \
+	io\WKTWriter.$(EXT) \
+	io\Writer.$(EXT) \
+	noding\BasicSegmentString.$(EXT) \
+	noding\FastNodingValidator.$(EXT) \
+	noding\FastSegmentSetIntersectionFinder.$(EXT) \
+	noding\GeometryNoder.$(EXT) \
+	noding\IntersectionAdder.$(EXT) \
+	noding\IntersectionFinderAdder.$(EXT) \
+	noding\IteratedNoder.$(EXT) \
+	noding\MCIndexNoder.$(EXT) \
+	noding\MCIndexSegmentSetMutualIntersector.$(EXT) \
+	noding\NodedSegmentString.$(EXT) \
+	noding\NodingValidator.$(EXT) \
+	noding\Octant.$(EXT) \
+	noding\OrientedCoordinateArray.$(EXT) \
+	noding\ScaledNoder.$(EXT) \
+	noding\SegmentIntersectionDetector.$(EXT) \
+	noding\SegmentNode.$(EXT) \
+	noding\SegmentNodeList.$(EXT) \
+	noding\SegmentString.$(EXT) \
+	noding\SegmentStringUtil.$(EXT) \
+	noding\SimpleNoder.$(EXT) \
+	noding\SingleInteriorIntersectionFinder.$(EXT) \
+	noding\snapround\HotPixel.$(EXT) \
+	noding\snapround\MCIndexPointSnapper.$(EXT) \
+	noding\snapround\MCIndexSnapRounder.$(EXT) \
+	noding\snapround\SimpleSnapRounder.$(EXT) \
+	operation\GeometryGraphOperation.$(EXT) \
+	operation\IsSimpleOp.$(EXT) \
+	operation\buffer\BufferBuilder.$(EXT) \
+	operation\buffer\BufferInputLineSimplifier.$(EXT) \
+	operation\buffer\BufferParameters.$(EXT) \
+	operation\buffer\BufferOp.$(EXT) \
+	operation\buffer\BufferSubgraph.$(EXT) \
+	operation\buffer\OffsetCurveBuilder.$(EXT) \
+	operation\buffer\OffsetCurveSetBuilder.$(EXT) \
+	operation\buffer\OffsetSegmentGenerator.$(EXT) \
+	operation\buffer\RightmostEdgeFinder.$(EXT) \
+	operation\buffer\SubgraphDepthLocater.$(EXT) \
+	operation\distance\ConnectedElementLocationFilter.$(EXT) \
+	operation\distance\ConnectedElementPointFilter.$(EXT) \
+	operation\distance\DistanceOp.$(EXT) \
+	operation\distance\FacetSequence.$(EXT) \
+	operation\distance\FacetSequenceTreeBuilder.$(EXT) \
+	operation\distance\GeometryLocation.$(EXT) \
+	operation\distance\IndexedFacetDistance.$(EXT) \
+	operation\intersection\Rectangle.$(EXT) \
+	operation\intersection\RectangleIntersection.$(EXT) \
+	operation\intersection\RectangleIntersectionBuilder.$(EXT) \
+	operation\linemerge\EdgeString.$(EXT) \
+	operation\linemerge\LineMergeDirectedEdge.$(EXT) \
+	operation\linemerge\LineMergeEdge.$(EXT) \
+	operation\linemerge\LineMergeGraph.$(EXT) \
+	operation\linemerge\LineMerger.$(EXT) \
+	operation\linemerge\LineSequencer.$(EXT) \
+	operation\overlay\EdgeSetNoder.$(EXT) \
+	operation\overlay\ElevationMatrix.$(EXT) \
+	operation\overlay\ElevationMatrixCell.$(EXT) \
+	operation\overlay\LineBuilder.$(EXT) \
+	operation\overlay\MaximalEdgeRing.$(EXT) \
+	operation\overlay\MinimalEdgeRing.$(EXT) \
+	operation\overlay\OverlayNodeFactory.$(EXT) \
+	operation\overlay\OverlayOp.$(EXT) \
+	operation\overlay\PointBuilder.$(EXT) \
+	operation\overlay\PolygonBuilder.$(EXT) \
+	operation\overlay\snap\GeometrySnapper.$(EXT) \
+ 	operation\overlay\snap\LineStringSnapper.$(EXT) \
+ 	operation\overlay\snap\SnapOverlayOp.$(EXT) \
+ 	operation\overlay\snap\SnapIfNeededOverlayOp.$(EXT) \
+ 	operation\overlay\validate\FuzzyPointLocator.$(EXT) \
+ 	operation\overlay\validate\OffsetPointGenerator.$(EXT) \
+ 	operation\overlay\validate\OverlayResultValidator.$(EXT) \
+	operation\polygonize\PolygonizeDirectedEdge.$(EXT) \
+	operation\polygonize\PolygonizeEdge.$(EXT) \
+	operation\polygonize\EdgeRing.$(EXT) \
+	operation\polygonize\PolygonizeGraph.$(EXT) \
+	operation\polygonize\Polygonizer.$(EXT) \
+	operation\predicate\RectangleContains.$(EXT) \
+	operation\predicate\RectangleIntersects.$(EXT) \
+	operation\predicate\SegmentIntersectionTester.$(EXT) \
+	operation\relate\EdgeEndBuilder.$(EXT) \
+	operation\relate\EdgeEndBundle.$(EXT) \
+	operation\relate\EdgeEndBundleStar.$(EXT) \
+	operation\relate\RelateComputer.$(EXT) \
+	operation\relate\RelateNode.$(EXT) \
+	operation\relate\RelateNodeFactory.$(EXT) \
+	operation\relate\RelateNodeGraph.$(EXT) \
+	operation\relate\RelateOp.$(EXT) \
+	operation\sharedpaths\SharedPathsOp.$(EXT) \
+	operation\union\CascadedPolygonUnion.$(EXT) \
+	operation\union\CascadedUnion.$(EXT) \
+	operation\union\PointGeometryUnion.$(EXT) \
+	operation\union\UnaryUnionOp.$(EXT) \
+	operation\valid\ConnectedInteriorTester.$(EXT) \
+	operation\valid\ConsistentAreaTester.$(EXT) \
+	operation\valid\IndexedNestedRingTester.$(EXT) \
+	operation\valid\IsValidOp.$(EXT) \
+	operation\valid\QuadtreeNestedRingTester.$(EXT) \
+	operation\valid\RepeatedPointTester.$(EXT) \
+	operation\valid\SimpleNestedRingTester.$(EXT) \
+	operation\valid\SweeplineNestedRingTester.$(EXT) \
+	operation\valid\TopologyValidationError.$(EXT) \
+	planargraph\DirectedEdge.$(EXT) \
+	planargraph\DirectedEdgeStar.$(EXT) \
+	planargraph\Edge.$(EXT) \
+	planargraph\Node.$(EXT) \
+	planargraph\NodeMap.$(EXT) \
+	planargraph\PlanarGraph.$(EXT) \
+	planargraph\Subgraph.$(EXT) \
+	planargraph\algorithm\ConnectedSubgraphFinder.$(EXT) \
+	precision\CommonBits.$(EXT) \
+	precision\CommonBitsOp.$(EXT) \
+	precision\CommonBitsRemover.$(EXT) \
+	precision\EnhancedPrecisionOp.$(EXT) \
+	precision\GeometryPrecisionReducer.$(EXT) \
+	precision\MinimumClearance.$(EXT) \
+	precision\PrecisionReducerCoordinateOperation.$(EXT) \
+	precision\SimpleGeometryPrecisionReducer.$(EXT) \
+	simplify\DouglasPeuckerLineSimplifier.$(EXT) \
+	simplify\DouglasPeuckerSimplifier.$(EXT) \
+	simplify\LineSegmentIndex.$(EXT) \
+	simplify\TaggedLineSegment.$(EXT) \
+	simplify\TaggedLinesSimplifier.$(EXT) \
+	simplify\TaggedLineString.$(EXT) \
+	simplify\TaggedLineStringSimplifier.$(EXT) \
+	simplify\TopologyPreservingSimplifier.$(EXT) \
+	triangulate\DelaunayTriangulationBuilder.$(EXT) \
+	triangulate\IncrementalDelaunayTriangulator.$(EXT) \
+	triangulate\VoronoiDiagramBuilder.$(EXT) \
+	triangulate\quadedge\LastFoundQuadEdgeLocator.$(EXT) \
+	triangulate\quadedge\LocateFailureException.$(EXT) \
+	triangulate\quadedge\QuadEdge.$(EXT) \
+	triangulate\quadedge\QuadEdgeLocator.$(EXT) \
+	triangulate\quadedge\QuadEdgeSubdivision.$(EXT) \
+	triangulate\quadedge\TrianglePredicate.$(EXT) \
+	triangulate\quadedge\TriangleVisitor.$(EXT) \
+	triangulate\quadedge\Vertex.$(EXT) \
+	util\Assert.$(EXT) \
+	util\GeometricShapeFactory.$(EXT) \
+	util\Interrupt.$(EXT) \
+	util\math.$(EXT) \
+	util\Profiler.$(EXT) \
+	linearref\ExtractLineByLocation.$(EXT) \
+	linearref\LengthIndexOfPoint.$(EXT) \
+	linearref\LengthIndexedLine.$(EXT) \
+	linearref\LengthLocationMap.$(EXT) \
+	linearref\LinearGeometryBuilder.$(EXT) \
+	linearref\LinearIterator.$(EXT) \
+	linearref\LinearLocation.$(EXT) \
+	linearref\LocationIndexOfLine.$(EXT) \
+	linearref\LocationIndexOfPoint.$(EXT) \
+	..\capi\geos_c.$(EXT) \
+	..\capi\geos_ts_c.$(EXT) \
+	inlines.$(EXT)
+
+TEST_EXE =	TestSweepLineSpeed.exe
+
+###############################################################################
+# Build targets
+
+default: $(LIBNAME) $(DLLNAME) $(CDLLNAME)
+
+all: $(LIBNAME) $(DLLNAME) $(CDLLNAME) TestSweepLineSpeed.exe geostest.exe
+
+check: all
+	TestSweepLineSpeed.exe
+
+
+$(LIBNAME):	$(GEOS_ROOT)\include\geos\platform.h $(GEOS_ROOT)\include\geos\version.h ..\capi\geos_c.h $(OBJ)
+	if exist $(LIBNAME) del $(LIBNAME)
+	$(LINK) /lib /out:$(LIBNAME) $(OBJ)
+
+$(DLLNAME):	$(OBJ)
+	$(LINK) /dll /debug $(LINKER_FLAGS) $(OBJ) /out:$(DLLNAME) /implib:$(SLIBNAME)
+	if exist $(DLLNAME).manifest mt -manifest $(DLLNAME).manifest -outputresource:$(DLLNAME);2
+
+$(CDLLNAME): ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(DLLNAME)
+	$(LINK) /dll /debug $(LINKER_FLAGS) ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(LIBNAME) /out:$(CDLLNAME) /implib:$(CLIBNAME)
+	if exist $(CDLLNAME).manifest mt -manifest $(CDLLNAME).manifest -outputresource:$(CDLLNAME);2
+
+$(GEOS_ROOT)\include\geos\platform.h: $(GEOS_ROOT)\include\geos\platform.h.vc
+	$(CP) $(GEOS_ROOT)\include\geos\platform.h.vc $(GEOS_ROOT)\include\geos\platform.h
+
+$(GEOS_ROOT)\include\geos\version.h: $(GEOS_ROOT)\include\geos\version.h.vc
+	if not exist $(GEOS_ROOT)\include\geos\version.h $(CP) $(GEOS_ROOT)\include\geos\version.h.vc $(GEOS_ROOT)\include\geos\version.h
+
+# geos_c.h should already be in distribution, if is not you'll
+# have to run ./configure to recreate
+../capi/geos_c.h: ../capi/geos_c.h.in.
+	$(CP) ..\capi\geos_c.h.in ..\capi\geos_c.h
+
+.cpp.obj:
+	$(CC) $(CFLAGS) /c $*.cpp /Fo$@
+
+{..\capi}.cpp.obj:
+	$(CC) $(CFLAGS) /D "GEOS_DLL_EXPORT" /c $*.cpp /Fo$@
+
+.c.obj:
+	$(CC) $(CFLAGS) /c $*.c /Fo$@
+
+clean:
+	@ECHO "*** Cleaning GEOS source tree"
+	@IF EXIST $(LIBNAME)  $(RM) $(LIBNAME)
+	@IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
+	@IF EXIST $(DLLNAME)  $(RM) $(DLLNAME)
+	@IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
+	@IF EXIST $(CLIBNAME) $(RM) $(CLIBNAME)
+	@IF EXIST $(CDLLNAME) $(RM) $(CDLLNAME)
+	- at del /s *.exe
+	- at del /s *.exp
+	- at del /s *.ilk
+	- at del /s *.manifest
+	- at del /s *.obj
+	- at del /s *.pdb
+
+TestSweepLineSpeed.exe:	$(LIBNAME) \
+		..\tests\bigtest\GeometryTestFactory.obj \
+		..\tests\bigtest\TestSweepLineSpeed.obj
+	$(LINK) /debug /out:TestSweepLineSpeed.exe \
+		..\tests\bigtest\TestSweepLineSpeed.obj \
+		..\tests\bigtest\GeometryTestFactory.obj \
+		$(LIBNAME)
+
+geostest.exe: $(CDLLNAME) ..\tests\unit\capi\geostest.obj
+	$(LINK) /debug ..\tests\unit\capi\geostest.obj $(CLIBNAME)
+
+# EOF
diff --git a/src/algorithm/MCPointInRing.cpp b/src/algorithm/MCPointInRing.cpp
deleted file mode 100644
index d085908..0000000
--- a/src/algorithm/MCPointInRing.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/**********************************************************************
- *
- * GEOS - Geometry Engine Open Source
- * http://geos.osgeo.org
- *
- * Copyright (C) 2006 Refractions Research Inc.
- * Copyright (C) 2001-2002 Vivid Solutions Inc.
- *
- * This is free software; you can redistribute and/or modify it under
- * the terms of the GNU Lesser General Public Licence as published
- * by the Free Software Foundation.
- * See the COPYING file for more information.
- *
- **********************************************************************/
-
-#include <geos/algorithm/MCPointInRing.h>
-#include <geos/algorithm/RobustDeterminant.h>
-#include <geos/index/bintree/Bintree.h>
-#include <geos/index/bintree/Interval.h>
-#include <geos/geom/LineSegment.h>
-#include <geos/geom/LinearRing.h>
-#include <geos/geom/CoordinateSequence.h>
-#include <geos/geom/Envelope.h>
-#include <geos/index/chain/MonotoneChain.h>
-#include <geos/index/chain/MonotoneChainBuilder.h>
-
-#include <vector>
-
-using namespace std;
-using namespace geos::geom;
-using namespace geos::index;
-
-namespace geos {
-namespace algorithm { // geos.algorithm
-
-MCPointInRing::MCSelecter::MCSelecter(const Coordinate& newP,
-		MCPointInRing *prt)
-	:
-	MonotoneChainSelectAction()
-{
-	p=newP;
-	parent=prt;
-}
-
-/* public overridden */
-void
-MCPointInRing::MCSelecter::select(const LineSegment& ls)
-{
-	parent->testLineSegment(p, ls);
-}
-
-MCPointInRing::MCPointInRing(const LinearRing *newRing)
-	:
-	ring(newRing),
-	interval(),
-	pts(nullptr),
-	tree(nullptr),
-	crossings(0)
-{
-	buildIndex();
-}
-
-MCPointInRing::~MCPointInRing() = default;
-
-void
-MCPointInRing::buildIndex()
-{
-	tree.reset(new bintree::Bintree());
-	pts.reset(CoordinateSequence::removeRepeatedPoints(ring->getCoordinatesRO()));
-	chains = chain::MonotoneChainBuilder::getChains(pts.get());
-
-	for(const auto& mc : *chains)
-	{
-		const Envelope& mcEnv = mc->getEnvelope();
-		interval.min = mcEnv.getMinY();
-		interval.max = mcEnv.getMaxY();
-
-		tree->insert(&interval, mc.get());
-	}
-}
-
-bool
-MCPointInRing::isInside(const Coordinate& pt)
-{
-	crossings=0;
-	// test all segments intersected by ray from pt in positive x direction
-	Envelope rayEnv(DoubleNegInfinity,DoubleInfinity,pt.y,pt.y);
-	interval.min=pt.y;
-	interval.max=pt.y;
-	std::unique_ptr<vector<void*>> segs{tree->query(&interval)};
-
-	MCSelecter mcSelecter(pt,this);
-	for(auto& seg : *segs) {
-		chain::MonotoneChain *mc= reinterpret_cast<chain::MonotoneChain*>(seg);
-		testMonotoneChain(&rayEnv,&mcSelecter,mc);
-	}
-
-	/*
-	 *  p is inside if number of crossings is odd.
-	 */
-	return crossings % 2 == 1;
-}
-
-
-void
-MCPointInRing::testMonotoneChain(Envelope *rayEnv,
-		MCSelecter *mcSelecter,
-		chain::MonotoneChain *mc)
-{
-	mc->select(*rayEnv, *mcSelecter);
-}
-
-void
-MCPointInRing::testLineSegment(const Coordinate& p, const LineSegment& seg)
-{
-	double xInt;  // x intersection of segment with ray
-	double x1;    // translated coordinates
-	double y1;
-	double x2;
-	double y2;
-
-	/*
-	 * Test if segment crosses ray from test point in positive x direction.
-	 */
-	const Coordinate& p1 = seg.p0;
-	const Coordinate& p2 = seg.p1;
-	x1 = p1.x - p.x;
-	y1 = p1.y - p.y;
-	x2 = p2.x - p.x;
-	y2 = p2.y - p.y;
-
-	if (((y1>0)&&(y2<=0)) || ((y2>0)&&(y1<=0)))
-	{
-
-		/*
-		 *  segment straddles x axis, so compute intersection.
-		 */
-		xInt=RobustDeterminant::signOfDet2x2(x1,y1,x2,y2)/(y2-y1);
-
-		/*
-		 *  crosses ray if strictly positive intersection.
-		 */
-		if (0.0<xInt) {
-			crossings++;
-		}
-	}
-}
-
-} // namespace geos.algorithm
-} // namespace geos
-
diff --git a/src/algorithm/Makefile.am b/src/algorithm/Makefile.am
index f735bce..082a2a9 100644
--- a/src/algorithm/Makefile.am
+++ b/src/algorithm/Makefile.am
@@ -24,7 +24,6 @@ libalgorithm_la_SOURCES = \
 	InteriorPointLine.cpp \
 	InteriorPointPoint.cpp \
 	LineIntersector.cpp \
-	MCPointInRing.cpp \
 	MinimumDiameter.cpp \
 	NotRepresentableException.cpp \
 	PointLocator.cpp \

commit 9674b7de0c95f9c9976621b8024759b4dcbf334b
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Wed Dec 12 14:55:01 2018 -0800

    A little clean up, but not quite full deprecation
    as indicated in JTS 95f19c41741a5261c324f038f355549cab8be5a8

diff --git a/include/geos/algorithm/MCPointInRing.h b/include/geos/algorithm/MCPointInRing.h
index 61ebd59..6a833e7 100644
--- a/include/geos/algorithm/MCPointInRing.h
+++ b/include/geos/algorithm/MCPointInRing.h
@@ -22,6 +22,7 @@
 #include <geos/geom/Coordinate.h> // for composition
 #include <geos/index/bintree/Interval.h> // for composition
 
+
 #include <memory>
 #include <vector>
 
diff --git a/include/geos/geosAlgorithm.h b/include/geos/geosAlgorithm.h
index c70af39..006da80 100644
--- a/include/geos/geosAlgorithm.h
+++ b/include/geos/geosAlgorithm.h
@@ -36,7 +36,6 @@
 //#include <geos/algorithm/InteriorPointLine.h>
 //#include <geos/algorithm/InteriorPointPoint.h>
 #include <geos/algorithm/LineIntersector.h>
-//#include <geos/algorithm/MCPointInRing.h>
 //#include <geos/algorithm/MinimumDiameter.h>
 //#include <geos/algorithm/NotRepresentableException.h>
 //#include <geos/algorithm/PointInRing.h>
diff --git a/src/operation/valid/IsValidOp.cpp b/src/operation/valid/IsValidOp.cpp
index 08b3149..a77732f 100644
--- a/src/operation/valid/IsValidOp.cpp
+++ b/src/operation/valid/IsValidOp.cpp
@@ -21,10 +21,10 @@
 
 #include "IndexedNestedRingTester.h" // TODO: private header>? --mloskot
 
+#include <geos/export.h>
 #include <geos/platform.h>
 #include <geos/algorithm/CGAlgorithms.h>
 #include <geos/algorithm/LineIntersector.h>
-#include <geos/algorithm/MCPointInRing.h>
 #include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
 #include <geos/operation/valid/ConnectedInteriorTester.h>
 #include <geos/operation/valid/ConsistentAreaTester.h>
@@ -40,8 +40,10 @@
 #include <geos/geomgraph/GeometryGraph.h>
 #include <geos/geomgraph/Edge.h>
 #include <geos/geomgraph/index/SegmentIntersector.h>
+#include <geos/index/chain/MonotoneChainSelectAction.h>
 #include <geos/util/UnsupportedOperationException.h>
 
+
 #include <cassert>
 #include <cmath>
 #include <typeinfo>
@@ -396,9 +398,6 @@ IsValidOp::checkHolesInShell(const Polygon *p, GeometryGraph *graph)
         return;
     }
 
-    //SimplePointInRing pir(shell);
-    //SIRtreePointInRing pir(shell);
-    // MCPointInRing pir(shell);
     locate::IndexedPointInAreaLocator ipial(*shellgeom);
 
     for(size_t i = 0; i < nholes; ++i) {

-----------------------------------------------------------------------

Summary of changes:
 include/geos/algorithm/MCPointInRing.h |  84 ----
 include/geos/algorithm/Makefile.am     |   1 -
 include/geos/geosAlgorithm.h           |   1 -
 src/Makefile.vc                        | 799 ++++++++++++++++-----------------
 src/algorithm/MCPointInRing.cpp        | 151 -------
 src/algorithm/Makefile.am              |   1 -
 src/operation/valid/IsValidOp.cpp      |   7 +-
 7 files changed, 402 insertions(+), 642 deletions(-)
 delete mode 100644 include/geos/algorithm/MCPointInRing.h
 delete mode 100644 src/algorithm/MCPointInRing.cpp


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list