Index: build/msvc90/geos_lib/geos_lib.vcproj
===================================================================
--- build/msvc90/geos_lib/geos_lib.vcproj	(リビジョン 2533)
+++ build/msvc90/geos_lib/geos_lib.vcproj	(作業コピー)
@@ -168,6 +168,14 @@
 				Name="algorithm"
 				>
 				<File
+					RelativePath="..\..\..\source\algorithm\Angle.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\..\source\algorithm\BoundaryNodeRule.cpp"
+					>
+				</File>
+				<File
 					RelativePath="..\..\..\source\algorithm\CentroidArea.cpp"
 					>
 				</File>
@@ -273,6 +281,18 @@
 						</FileConfiguration>
 					</File>
 				</Filter>
+				<Filter
+					Name="distance"
+					>
+					<File
+						RelativePath="..\..\..\source\algorithm\distance\DiscreteHausdorffDistance.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\..\source\algorithm\distance\DistanceToPoint.cpp"
+						>
+					</File>
+				</Filter>
 			</Filter>
 			<Filter
 				Name="index"
@@ -671,18 +691,6 @@
 						>
 					</File>
 					<File
-						RelativePath="..\..\..\source\geom\util\LinearComponentExtracter.cpp"
-						>
-					</File>
-					<File
-						RelativePath="..\..\..\source\geom\util\PointExtracter.cpp"
-						>
-					</File>
-					<File
-						RelativePath="..\..\..\source\geom\util\PolygonExtracter.cpp"
-						>
-					</File>
-					<File
 						RelativePath="..\..\..\source\geom\util\ShortCircuitedGeometryVisitor.cpp"
 						>
 					</File>
@@ -920,6 +928,10 @@
 				Name="noding"
 				>
 				<File
+					RelativePath="..\..\..\source\noding\BasicSegmentString.cpp"
+					>
+				</File>
+				<File
 					RelativePath="..\..\..\source\noding\FastNodingValidator.cpp"
 					>
 				</File>
@@ -960,6 +972,10 @@
 					>
 				</File>
 				<File
+					RelativePath="..\..\..\source\noding\OrientedCoordinateArray.cpp"
+					>
+				</File>
+				<File
 					RelativePath="..\..\..\source\noding\ScaledNoder.cpp"
 					>
 				</File>
@@ -1179,10 +1195,18 @@
 						>
 					</File>
 					<File
+						RelativePath="..\..\..\source\operation\buffer\BufferInputLineSimplifier.cpp"
+						>
+					</File>
+					<File
 						RelativePath="..\..\..\source\operation\buffer\BufferOp.cpp"
 						>
 					</File>
 					<File
+						RelativePath="..\..\..\source\operation\buffer\BufferParameters.cpp"
+						>
+					</File>
+					<File
 						RelativePath="..\..\..\source\operation\buffer\BufferSubgraph.cpp"
 						>
 					</File>
@@ -1239,10 +1263,6 @@
 						>
 					</File>
 					<File
-						RelativePath="..\..\..\source\operation\overlay\FuzzyPointLocator.cpp"
-						>
-					</File>
-					<File
 						RelativePath="..\..\..\source\operation\overlay\LineBuilder.cpp"
 						>
 					</File>
@@ -1255,10 +1275,6 @@
 						>
 					</File>
 					<File
-						RelativePath="..\..\..\source\operation\overlay\OffsetPointGenerator.cpp"
-						>
-					</File>
-					<File
 						RelativePath="..\..\..\source\operation\overlay\OverlayNodeFactory.cpp"
 						>
 					</File>
@@ -1267,10 +1283,6 @@
 						>
 					</File>
 					<File
-						RelativePath="..\..\..\source\operation\overlay\OverlayResultValidator.cpp"
-						>
-					</File>
-					<File
 						RelativePath="..\..\..\source\operation\overlay\PointBuilder.cpp"
 						>
 					</File>
@@ -1278,6 +1290,42 @@
 						RelativePath="..\..\..\source\operation\overlay\PolygonBuilder.cpp"
 						>
 					</File>
+					<Filter
+						Name="snap"
+						>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\snap\GeometrySnapper.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\snap\LineStringSnapper.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\snap\SnapIfNeededOverlayOp.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\snap\SnapOverlayOp.cpp"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="validate"
+						>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\validate\FuzzyPointLocator.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\validate\OffsetPointGenerator.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\..\source\operation\overlay\validate\OverlayResultValidator.cpp"
+							>
+						</File>
+					</Filter>
 				</Filter>
 				<Filter
 					Name="polygonize"
@@ -1369,6 +1417,10 @@
 						>
 					</File>
 					<File
+						RelativePath="..\..\..\source\operation\valid\IndexedNestedRingTester.cpp"
+						>
+					</File>
+					<File
 						RelativePath="..\..\..\source\operation\valid\IsValidOp.cpp"
 						>
 					</File>
@@ -1466,14 +1518,6 @@
 					>
 				</File>
 				<File
-					RelativePath="..\..\..\source\precision\GeometrySnapper.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\..\source\precision\LineStringSnapper.cpp"
-					>
-				</File>
-				<File
 					RelativePath="..\..\..\source\precision\SimpleGeometryPrecisionReducer.cpp"
 					>
 				</File>
Index: build/msvc90/geos_unit/geos_unit.vcproj
===================================================================
--- build/msvc90/geos_unit/geos_unit.vcproj	(リビジョン 2533)
+++ build/msvc90/geos_unit/geos_unit.vcproj	(作業コピー)
@@ -41,7 +41,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories=".\;..\..\..\tests\unit;..\..\..\tests\tut;..\..\..\capi;..\..\..\source\headers"
+				AdditionalIncludeDirectories=".\;..\..\..\tests\unit;..\..\..\tests\unit\tut;..\..\..\capi;..\..\..\source\headers"
 				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;WIN32_LEAN_AND_MEAN;NOMINMAX;NOGDI"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -120,7 +120,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=".\;..\..\..\tests\unit;..\..\..\tests\tut;..\..\..\capi;..\..\..\source\headers"
+				AdditionalIncludeDirectories=".\;..\..\..\tests\unit;..\..\..\tests\unit\tut;..\..\..\capi;..\..\..\source\headers"
 				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;WIN32_LEAN_AND_MEAN;NOMINMAX;NOGDI"
 				RuntimeLibrary="2"
 				UsePrecompiledHeader="0"
@@ -292,17 +292,21 @@
 			Name="noding"
 			>
 			<File
-				RelativePath="..\..\..\tests\unit\noding\SegmentNodeTest.cpp"
+				RelativePath="..\..\..\tests\unit\noding\BasicSegmentStringTest.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\..\tests\unit\noding\SegmentPointComparatorTest.cpp"
+				RelativePath="..\..\..\tests\unit\noding\NodedSegmentStringTest.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\..\tests\unit\noding\SegmentStringTest.cpp"
+				RelativePath="..\..\..\tests\unit\noding\SegmentNodeTest.cpp"
 				>
 			</File>
+			<File
+				RelativePath="..\..\..\tests\unit\noding\SegmentPointComparatorTest.cpp"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="io"
@@ -339,6 +343,14 @@
 				RelativePath="..\..\..\tests\unit\algorithm\PointLocatorTest.cpp"
 				>
 			</File>
+			<File
+				RelativePath="..\..\..\tests\unit\algorithm\RobustLineIntersectionTest.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\tests\unit\algorithm\RobustLineIntersectorTest.cpp"
+				>
+			</File>
 			<Filter
 				Name="CGAlgorithms"
 				>
@@ -355,6 +367,14 @@
 					>
 				</File>
 			</Filter>
+			<Filter
+				Name="distance"
+				>
+				<File
+					RelativePath="..\..\..\tests\unit\algorithm\distance\DiscreteHausdorffDistanceTest.cpp"
+					>
+				</File>
+			</Filter>
 		</Filter>
 		<Filter
 			Name="index"
@@ -394,24 +414,56 @@
 			<Filter
 				Name="overlay"
 				>
+				<Filter
+					Name="validate"
+					>
+					<File
+						RelativePath="..\..\..\tests\unit\operation\overlay\validate\FuzzyPointLocatorTest.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\..\tests\unit\operation\overlay\validate\OffsetPointGeneratorTest.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\..\tests\unit\operation\overlay\validate\OverlayResultValidatorTest.cpp"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="snap"
+					>
+					<File
+						RelativePath="..\..\..\tests\unit\operation\overlay\snap\GeometrySnapperTest.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\..\tests\unit\operation\overlay\snap\LineStringSnapperTest.cpp"
+						>
+					</File>
+				</Filter>
+			</Filter>
+			<Filter
+				Name="union"
+				>
 				<File
-					RelativePath="..\..\..\tests\unit\operation\overlay\FuzzyPointLocatorTest.cpp"
+					RelativePath="..\..\..\tests\unit\operation\union\CascadedPolygonUnionTest.cpp"
 					>
 				</File>
+			</Filter>
+			<Filter
+				Name="valid"
+				>
 				<File
-					RelativePath="..\..\..\tests\unit\operation\overlay\OffsetPointGeneratorTest.cpp"
+					RelativePath="..\..\..\tests\unit\operation\valid\IsValidTest.cpp"
 					>
 				</File>
 				<File
-					RelativePath="..\..\..\tests\unit\operation\overlay\OverlayResultValidatorTest.cpp"
+					RelativePath="..\..\..\tests\unit\operation\valid\ValidClosedRingTest.cpp"
 					>
 				</File>
-			</Filter>
-			<Filter
-				Name="union"
-				>
 				<File
-					RelativePath="..\..\..\tests\unit\operation\union\CascadedPolygonUnionTest.cpp"
+					RelativePath="..\..\..\tests\unit\operation\valid\ValidSelfTouchingRingFormingHoleTest.cpp"
 					>
 				</File>
 			</Filter>
@@ -420,14 +472,6 @@
 			Name="precision"
 			>
 			<File
-				RelativePath="..\..\..\tests\unit\precision\GeometrySnapperTest.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\tests\unit\precision\LineStringSnapperTest.cpp"
-				>
-			</File>
-			<File
 				RelativePath="..\..\..\tests\unit\precision\SimpleGeometryPrecisionReducerTest.cpp"
 				>
 			</File>
@@ -448,6 +492,10 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\..\tests\unit\capi\GEOSContainsTest.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\..\tests\unit\capi\GEOSCoordSeqTest.cpp"
 				>
 			</File>
@@ -464,6 +512,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\..\tests\unit\capi\GEOSPreparedGeometryTest.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\..\tests\unit\capi\GEOSSimplifyTest.cpp"
 				>
 			</File>
@@ -480,6 +532,10 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\..\tests\unit\capi\GEOSWithinTest.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\..\tests\unit\capi\threadtest.c"
 				>
 				<FileConfiguration
Index: nmake.opt
===================================================================
--- nmake.opt	(リビジョン 2533)
+++ nmake.opt	(作業コピー)
@@ -89,7 +89,7 @@
 ###############################################################################
 # Include directories
 
-GEOS_INCLUDE = -Iheaders
+GEOS_INCLUDE = -Iheaders -I../capi
 
 !MESSAGE *** Setting GEOS_INCLUDE $(GEOS_INCLUDE)
 !MESSAGE *** Setting INCLUDE $(INCLUDE)
Index: source/dirlist.mk
===================================================================
--- source/dirlist.mk	(リビジョン 2533)
+++ source/dirlist.mk	(作業コピー)
@@ -4,7 +4,8 @@
 #
 
 GEOS_DIRLIST =  algorithm \
-				algorithm\locate \
+                algorithm\distance \
+                algorithm\locate \
                 examples \
                 geom \
                 geom\util \
Index: source/geom/LinearRing.cpp
===================================================================
--- source/geom/LinearRing.cpp	(リビジョン 2533)
+++ source/geom/LinearRing.cpp	(作業コピー)
@@ -27,6 +27,7 @@
 #include <sstream>
 #include <string>
 #include <memory>
+#include <cassert>
 
 using namespace std;
 
Index: source/headers/geos/algorithm/distance/DiscreteHausdorffDistance.h
===================================================================
--- source/headers/geos/algorithm/distance/DiscreteHausdorffDistance.h	(リビジョン 2533)
+++ source/headers/geos/algorithm/distance/DiscreteHausdorffDistance.h	(作業コピー)
@@ -183,7 +183,7 @@
 				const geom::Geometry& geom, double fraction)
 			:
 			geom(geom),
-			numSubSegs( size_t(round(1.0/fraction)) )
+			numSubSegs( size_t(util::round(1.0/fraction)) )
 		{
 		}
 
Index: source/headers/geos/operation/buffer/BufferBuilder.h
===================================================================
--- source/headers/geos/operation/buffer/BufferBuilder.h	(リビジョン 2533)
+++ source/headers/geos/operation/buffer/BufferBuilder.h	(作業コピー)
@@ -205,10 +205,11 @@
 		// throw (GEOSException);
 
 	/// Not in JTS: this is a GEOS extension
+#if 0
 	geom::Geometry* bufferLineSingleSided( const geom::Geometry* g,
 	                                double distance, bool leftSide ) ;
 		// throw (GEOSException);
-
+#endif
 };
 
 } // namespace geos::operation::buffer
Index: source/index/chain/MonotoneChainBuilder.cpp
===================================================================
--- source/index/chain/MonotoneChainBuilder.cpp	(リビジョン 2533)
+++ source/index/chain/MonotoneChainBuilder.cpp	(作業コピー)
@@ -24,6 +24,7 @@
 
 #include <cstdio>
 #include <vector>
+#include <cassert>
 
 #ifndef GEOS_DEBUG
 #define GEOS_DEBUG 0
Index: source/Makefile.vc
===================================================================
--- source/Makefile.vc	(リビジョン 2533)
+++ source/Makefile.vc	(作業コピー)
@@ -31,6 +31,8 @@
 EXT = $(OBJ_EXT)
 
 OBJ = \
+	algorithm\Angle.$(EXT) \
+	algorithm\BoundaryNodeRule.$(EXT) \
 	algorithm\CentroidArea.$(EXT) \
 	algorithm\CentroidLine.$(EXT) \
 	algorithm\CentroidPoint.$(EXT) \
@@ -52,6 +54,8 @@
 	algorithm\locate\IndexedPointInAreaLocator.$(EXT) \
 	algorithm\locate\PointOnGeometryLocator.$(EXT) \
 	algorithm\locate\SimplePointInAreaLocator.$(EXT) \
+	algorithm\distance\DiscreteHausdorffDistance.$(EXT) \
+	algorithm\distance\DistanceToPoint.$(EXT) \
 	geom\Coordinate.$(EXT) \
 	geom\CoordinateArraySequence.$(EXT) \
 	geom\CoordinateArraySequenceFactory.$(EXT) \
@@ -74,6 +78,7 @@
 	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) \
@@ -162,6 +167,7 @@
 	io\WKTReader.$(EXT) \
 	io\WKTWriter.$(EXT) \
 	io\Writer.$(EXT) \
+	noding\BasicSegmentString.$(EXT) \
 	noding\FastNodingValidator.$(EXT) \
 	noding\FastSegmentSetIntersectionFinder.$(EXT) \
 	noding\IntersectionAdder.$(EXT) \
@@ -172,6 +178,7 @@
 	noding\NodedSegmentString.$(EXT) \
 	noding\NodingValidator.$(EXT) \
 	noding\Octant.$(EXT) \
+	noding\OrientedCoordinateArray.$(EXT) \
 	noding\ScaledNoder.$(EXT) \
 	noding\SegmentIntersectionDetector.$(EXT) \
 	noding\SegmentNode.$(EXT) \
@@ -187,7 +194,9 @@
 	operation\GeometryGraphOperation.$(EXT) \
 	operation\IsSimpleOp.$(EXT) \
 	operation\buffer\BufferBuilder.$(EXT) \
+	operation\buffer\BufferInputLineSimplifier.$(EXT) \
 	operation\buffer\BufferOp.$(EXT) \
+	operation\buffer\BufferParameters.$(EXT) \
 	operation\buffer\BufferSubgraph.$(EXT) \
 	operation\buffer\OffsetCurveBuilder.$(EXT) \
 	operation\buffer\OffsetCurveSetBuilder.$(EXT) \
@@ -206,16 +215,20 @@
 	operation\overlay\EdgeSetNoder.$(EXT) \
 	operation\overlay\ElevationMatrix.$(EXT) \
 	operation\overlay\ElevationMatrixCell.$(EXT) \
-	operation\overlay\FuzzyPointLocator.$(EXT) \
 	operation\overlay\LineBuilder.$(EXT) \
 	operation\overlay\MaximalEdgeRing.$(EXT) \
 	operation\overlay\MinimalEdgeRing.$(EXT) \
-	operation\overlay\OffsetPointGenerator.$(EXT) \
 	operation\overlay\OverlayNodeFactory.$(EXT) \
 	operation\overlay\OverlayOp.$(EXT) \
-	operation\overlay\OverlayResultValidator.$(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) \
@@ -235,6 +248,7 @@
 	operation\union\CascadedPolygonUnion.$(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) \
@@ -253,8 +267,6 @@
 	precision\CommonBitsOp.$(EXT) \
 	precision\CommonBitsRemover.$(EXT) \
 	precision\EnhancedPrecisionOp.$(EXT) \
-	precision\GeometrySnapper.$(EXT) \
-	precision\LineStringSnapper.$(EXT) \
 	precision\SimpleGeometryPrecisionReducer.$(EXT) \
 	simplify\DouglasPeuckerLineSimplifier.$(EXT) \
 	simplify\DouglasPeuckerSimplifier.$(EXT) \
Index: source/operation/buffer/BufferBuilder.cpp
===================================================================
--- source/operation/buffer/BufferBuilder.cpp	(リビジョン 2533)
+++ source/operation/buffer/BufferBuilder.cpp	(作業コピー)
@@ -104,6 +104,7 @@
 		delete newLabels[i];
 }
 
+#if 0
 /*public*/
 Geometry*
 BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
@@ -262,6 +263,7 @@
 
    return geomFact->createMultiLineString( mergedLinesGeom );
 }
+#endif
 
 /*public*/
 Geometry*

