|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r69570 - in trunk/libs/geometry/test: algorithms algorithms/overlay/robustness multi multi/algorithms multi/algorithms/overlay
From: barend.gehrels_at_[hidden]
Date: 2011-03-04 16:44:04
Author: barendgehrels
Date: 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
New Revision: 69570
URL: http://svn.boost.org/trac/boost/changeset/69570
Log:
Added tests for empty polygons in intersection,union,difference
Added testfiles for multi_difference.cpp, multi_transform.cpp
Added program options in robusness tests
Added:
trunk/libs/geometry/test/multi/algorithms/multi_difference.cpp (contents, props changed)
trunk/libs/geometry/test/multi/algorithms/multi_difference.vcproj (contents, props changed)
trunk/libs/geometry/test/multi/algorithms/multi_transform.cpp (contents, props changed)
trunk/libs/geometry/test/multi/algorithms/multi_transform.vcproj (contents, props changed)
Text files modified:
trunk/libs/geometry/test/algorithms/difference.cpp | 19 ++++++-----
trunk/libs/geometry/test/algorithms/intersection.cpp | 45 +++++++++++++++-----------
trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp | 31 +++++++++++++++---
trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.vcproj | 48 +++++++++++++++++++++++++++-
trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp | 66 +++++++++++++++++++++++++--------------
trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.vcproj | 48 +++++++++++++++++++++++++++-
trunk/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp | 4 +-
trunk/libs/geometry/test/algorithms/test_difference.hpp | 15 +++++++++
trunk/libs/geometry/test/algorithms/test_overlay.hpp | 1
trunk/libs/geometry/test/algorithms/union.cpp | 15 ++++++--
trunk/libs/geometry/test/multi/algorithms/Jamfile.v2 | 2 +
trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp | 2
trunk/libs/geometry/test/multi/multi_tests.sln | 12 +++++++
13 files changed, 240 insertions(+), 68 deletions(-)
Modified: trunk/libs/geometry/test/algorithms/difference.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/difference.cpp (original)
+++ trunk/libs/geometry/test/algorithms/difference.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -38,6 +38,16 @@
typedef bg::model::polygon<P> polygon;
typedef bg::model::ring<P> ring;
+ test_one<polygon, polygon, polygon>("simplex_normal",
+ simplex_normal[0], simplex_normal[1],
+ 3, 3, 2.52636706856656,
+ 3, 3, 3.52636706856656);
+
+ test_one<polygon, polygon, polygon>("simplex_with_empty",
+ simplex_normal[0], polygon_empty,
+ 1, 4, 8.0,
+ 0, 0, 0.0);
+
test_one<polygon, polygon, polygon>(
"star_ring", example_star, example_ring,
5, 22, 1.1901714,
@@ -53,11 +63,6 @@
30, 150, 227.658275102812,
30, 150, 480.485775259312);
- test_one<polygon, polygon, polygon>("simplex_normal",
- simplex_normal[0], simplex_normal[1],
- 3, 3, 2.52636706856656,
- 3, 3, 3.52636706856656);
-
test_one<polygon, polygon, polygon>("new_hole",
new_hole[0], new_hole[1],
1, 10, 7.0,
@@ -235,10 +240,6 @@
{
typedef bg::model::multi_polygon<polygon> mp;
- test_one<polygon, mp, mp>("simplex_multi",
- case_multi_simplex[0], case_multi_simplex[1],
- 5, 12, 5.58, 4, 12, 2.58);
-
static std::string const clip = "POLYGON((2 2,4 4))";
test_one<polygon, box, mp>("simplex_multi_box_mp",
Modified: trunk/libs/geometry/test/algorithms/intersection.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/intersection.cpp (original)
+++ trunk/libs/geometry/test/algorithms/intersection.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -23,10 +23,26 @@
#include <test_common/with_pointer.hpp>
#include <test_geometries/custom_segment.hpp>
+static std::string pie_2_3_23_0[2] =
+{
+ "POLYGON((2500 2500,2855 3828,2500 3875,2500 2500))",
+ "POLYGON((2500 2500,2791 3586,2499 3625,2208 3586,2500 2500))"
+};
template <typename Polygon>
void test_areal()
{
+ /*test_one<Polygon, Polygon, Polygon>("pie_2_3_23_0",
+ pie_2_3_23_0[0], pie_2_3_23_0[1],
+ 1, 4, 163292.677335535, 0.01);*/
+
+ test_one<Polygon, Polygon, Polygon>("simplex_with_empty_1",
+ simplex_normal[0], polygon_empty,
+ 0, 0, 0.0);
+ test_one<Polygon, Polygon, Polygon>("simplex_with_empty_2",
+ polygon_empty, simplex_normal[0],
+ 0, 0, 0.0);
+
test_one<Polygon, Polygon, Polygon>("simplex_normal",
simplex_normal[0], simplex_normal[1],
1, 7, 5.47363293);
@@ -150,16 +166,6 @@
"Polygon((0 0,0 4,4 4,4 0,0 0))",
"Polygon((2 -2,2 -1,2 6,2 -2))",
5, 22, 1.1901714);
-
-
-
- // Test the REVERSE case - does not give correct results yet
- /*
- test_one<Polygon, Polygon, Polygon>("icovist_r",
- isovist[0], isovist[2],
- 1, 4, 0.29516139, 0.01);
- */
-
}
template <typename Polygon, typename Box>
@@ -180,23 +186,26 @@
test_one<Polygon, Box, Polygon>("clip_poly2", example_box,
"POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 2.5,5.3 2.5,5.4 1.2,4.9 0.8,2.9 0.7,2 1.3))",
2, 12, 1.00375);
+
test_one<Polygon, Box, Polygon>("clip_poly3", example_box,
"POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 2.5,4.5 2.5,4.5 1.2,4.9 0.8,2.9 0.7,2 1.3))",
2, 12, 1.00375);
+
test_one<Polygon, Box, Polygon>("clip_poly4", example_box,
"POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 2.5,4.5 2.5,4.5 2.3,5.0 2.3,5.0 2.1,4.5 2.1,4.5 1.9,4.0 1.9,4.5 1.2,4.9 0.8,2.9 0.7,2 1.3))",
2, 16, 0.860892);
test_one<Polygon, Box, Polygon>("clip_poly5", example_box,
- "POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 2.5,4.5 1.2,2.9 0.7,2 1.3))",
- 2, 11, 0.7575961);
+ "POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 2.5,4.5 1.2,2.9 0.7,2 1.3))",
+ 2, 11, 0.7575961);
test_one<Polygon, Box, Polygon>("clip_poly6", example_box,
- "POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.0 3.0,5.0 2.0,2.9 0.7,2 1.3))",
- 2, 13, 1.0744456);
+ "POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.0 3.0,5.0 2.0,2.9 0.7,2 1.3))",
+ 2, 13, 1.0744456);
test_one<Polygon, Box, Polygon>("clip_poly7", "Box(0 0, 3 3)",
- "POLYGON((2 2, 1 4, 2 4, 3 3, 2 2))", 1, 4, 0.75);
+ "POLYGON((2 2, 1 4, 2 4, 3 3, 2 2))",
+ 1, 4, 0.75);
}
template <typename Box>
@@ -234,6 +243,7 @@
// Test polygons clockwise and counter clockwise
test_areal<polygon>();
+
test_areal<polygon_ccw>();
test_areal<polygon_open>();
test_areal<polygon_ccw_open>();
@@ -278,9 +288,6 @@
// which occur 4 times, the length is expected to be 2.0)
test_one<linestring, linestring, box>("llb_2", "LINESTRING(1.7 1.6,2.3 2.4,2.9 1.6,3.5 2.4,4.1 1.6)", clip, 2, 6, 4 * 0.5);
-
-
-
// linear
test_one<P, linestring, linestring>("llp1", "LINESTRING(0 0,1 1)", "LINESTRING(0 1,1 0)", 1, 1, 0);
test_one<P, segment, segment>("ssp1", "LINESTRING(0 0,1 1)", "LINESTRING(0 1,1 0)", 1, 1, 0);
@@ -345,7 +352,7 @@
test_all<bg::model::d2::point_xy<double> >();
#if defined(HAVE_TTMATH)
- test_all<bg::model::d2::point_xy<ttmath_big> >();
+ test_all<bg::model::d2::point_xy<ttmath_big> >();
#endif
//test_pointer_version();
Modified: trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp (original)
+++ trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -11,8 +11,8 @@
#define BOOST_GEOMETRY_REPORT_OVERLAY_ERROR
#define BOOST_GEOMETRY_NO_BOOST_TEST
+#include <boost/program_options.hpp>
#include <boost/timer.hpp>
-#include <boost/lexical_cast.hpp>
#include <test_overlay_p_q.hpp>
@@ -244,12 +244,33 @@
{
try
{
- bool svg = argc > 1 && std::string(argv[1]) == std::string("svg");
- bool multi = argc > 2 && std::string(argv[2]) == std::string("multi");
- bool ccw = argc > 3 && std::string(argv[3]) == std::string("ccw");
- bool open = argc > 4 && std::string(argv[4]) == std::string("open");
+ namespace po = boost::program_options;
+ po::options_description description("=== recursive_polygons ===\nAllowed options");
+
+ bool svg = false;
+ bool multi = false;
+ bool ccw = false;
+ bool open = false;
bool single_selftangent = false; // keep false, true does not work!
+ description.add_options()
+ ("help", "Help message")
+ ("svg", po::value<bool>(&svg)->default_value(false), "Create an SVG filename for all tests")
+ ("multi", po::value<bool>(&multi)->default_value(false), "Multiple tangencies at one point")
+ ("ccw", po::value<bool>(&ccw)->default_value(false), "Counter clockwise polygons")
+ ("open", po::value<bool>(&open)->default_value(false), "Open polytons")
+ ;
+
+ po::variables_map varmap;
+ po::store(po::parse_command_line(argc, argv, description), varmap);
+ po::notify(varmap);
+
+ if (varmap.count("help"))
+ {
+ std::cout << description << std::endl;
+ return 1;
+ }
+
// template par's are: CoordinateType, Clockwise, Closed
if (ccw && open)
{
Modified: trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.vcproj (original)
+++ trunk/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.vcproj 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -42,7 +42,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""c:\gmp\gmp-dynamic";c:\svn\numeric_adaptor;.;../../../../../..;../../.."
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TEST_WITH_SVG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TEST_WITH_SVG;BOOST_ALL_NO_LIB"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""c:\gmp\gmp-dynamic";c:\svn\numeric_adaptor;.;../../../../../..;../../.."
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;BOOST_ALL_NO_LIB"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
@@ -169,6 +169,50 @@
<References>
</References>
<Files>
+ <Filter
+ Name="program options"
+ >
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\cmdline.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\config_file.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\convert.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\options_description.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\parsers.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\positional_options.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\split.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\utf8_codecvt_facet.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\value_semantic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\variables_map.cpp"
+ >
+ </File>
+ </Filter>
<File
RelativePath=".\intersection_pies.cpp"
>
Modified: trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp (original)
+++ trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -15,12 +15,12 @@
#define BOOST_GEOMETRY_NO_BOOST_TEST
-#include <boost/timer.hpp>
-#include <boost/lexical_cast.hpp>
+#include <boost/program_options.hpp>
#include <boost/random/linear_congruential.hpp>
#include <boost/random/uniform_int.hpp>
#include <boost/random/uniform_real.hpp>
#include <boost/random/variate_generator.hpp>
+#include <boost/timer.hpp>
#include <test_overlay_p_q.hpp>
@@ -32,7 +32,7 @@
template <typename Polygon, typename Generator>
-inline void make_polygon(Polygon& polygon, Generator& generator)
+inline void make_polygon(Polygon& polygon, Generator& generator, bool triangular)
{
typedef typename bg::point_type<Polygon>::type point_type;
typedef typename bg::coordinate_type<Polygon>::type coordinate_type;
@@ -50,7 +50,7 @@
bg::set<0>(p, x + 1); bg::set<1>(p, y); ring.push_back(p);
bg::set<0>(p, x); bg::set<1>(p, y); ring.push_back(p);
- if (true)
+ if (triangular)
{
// Remove a point depending on generator
int c = generator() % 4;
@@ -66,7 +66,7 @@
template <typename MultiPolygon, typename Generator>
bool test_recursive_boxes(MultiPolygon& result, int& index,
Generator& generator,
- bool svg, int level = 3)
+ bool svg, int level, bool triangular)
{
MultiPolygon p, q;
@@ -75,8 +75,8 @@
{
p.resize(1);
q.resize(1);
- make_polygon(p.front(), generator);
- make_polygon(q.front(), generator);
+ make_polygon(p.front(), generator, triangular);
+ make_polygon(q.front(), generator, triangular);
bg::correct(p);
bg::correct(q);
}
@@ -84,8 +84,8 @@
{
bg::correct(p);
bg::correct(q);
- if (! test_recursive_boxes(p, index, generator, svg, level - 1)
- || ! test_recursive_boxes(q, index, generator, svg, level - 1))
+ if (! test_recursive_boxes(p, index, generator, svg, level - 1, triangular)
+ || ! test_recursive_boxes(q, index, generator, svg, level - 1, triangular))
{
return false;
}
@@ -118,7 +118,7 @@
template <typename T, bool Clockwise, bool Closed>
-void test_all(int seed, int count, int fieldsize, bool svg, int level)
+void test_all(int seed, int count, int field_size, bool svg, int level, bool triangular)
{
boost::timer t;
@@ -126,7 +126,7 @@
base_generator_type generator(seed);
- boost::uniform_int<> random_coordinate(0, fieldsize);
+ boost::uniform_int<> random_coordinate(0, field_size - 1);
boost::variate_generator<base_generator_type&, boost::uniform_int<> >
coordinate_generator(generator, random_coordinate);
@@ -141,7 +141,7 @@
for(int i = 0; i < count; i++)
{
mp p;
- test_recursive_boxes<mp>(p, index, coordinate_generator, svg, level);
+ test_recursive_boxes<mp>(p, index, coordinate_generator, svg, level, triangular);
}
std::cout
<< "boxes " << index
@@ -153,20 +153,38 @@
{
try
{
- // Arguments:
- // {count} {seed} {"svg"} {level}
- int count = argc > 1 ? boost::lexical_cast<int>(argv[1]) : 10;
- int seed = (argc > 2 && std::string(argv[2]) != std::string("#"))
- ? boost::lexical_cast<int>(argv[2])
- : static_cast<unsigned int>(std::time(0));
- bool svg = argc > 3 && std::string(argv[3]) == std::string("svg");
- int level = argc > 4 && std::string(argv[4]) != std::string("#")
- ? boost::lexical_cast<int>(argv[4]): 3;
+ namespace po = boost::program_options;
+ po::options_description description("=== recursive_polygons ===\nAllowed options");
+
+ int count = 1;
+ int seed = static_cast<unsigned int>(std::time(0));
+ int level = 3;
+ int field_size = 10;
+ bool svg = false;
+ std::string form = "box";
+
+ description.add_options()
+ ("help", "Help message")
+ ("seed", po::value<int>(&seed), "Initialization seed for random generator")
+ ("count", po::value<int>(&count)->default_value(1), "Number of tests")
+ ("level", po::value<int>(&level)->default_value(3), "Level to reach (higher->slower)")
+ ("size", po::value<int>(&field_size)->default_value(10), "Size of the field")
+ ("form", po::value<std::string>(&form)->default_value("box"), "Form of the polygons (box, triangle)")
+ ("svg", po::value<bool>(&svg)->default_value(false), "Create an SVG filename for all tests")
+ ;
+
+ po::variables_map varmap;
+ po::store(po::parse_command_line(argc, argv, description), varmap);
+ po::notify(varmap);
+
+ if (varmap.count("help"))
+ {
+ std::cout << description << std::endl;
+ return 1;
+ }
- int fieldsize = argc > 5 && std::string(argv[5]) != std::string("#")
- ? boost::lexical_cast<int>(argv[5]): 9;
- test_all<double, true, true>(seed, count, fieldsize, svg, level);
+ test_all<double, true, true>(seed, count, field_size, svg, level, form != "box");
#if defined(HAVE_TTMATH)
// test_all<ttmath_big, true, true>(seed, count, max, svg, level);
Modified: trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.vcproj (original)
+++ trunk/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.vcproj 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -42,7 +42,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../../../..;../../..;."
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TEST_WITH_SVG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;TEST_WITH_SVG;BOOST_ALL_NO_LIB"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../../../../..;../../..;."
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;BOOST_ALL_NO_LIB"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -169,6 +169,50 @@
<References>
</References>
<Files>
+ <Filter
+ Name="program options"
+ >
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\cmdline.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\config_file.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\convert.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\options_description.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\parsers.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\positional_options.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\split.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\utf8_codecvt_facet.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\value_semantic.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\program_options\src\variables_map.cpp"
+ >
+ </File>
+ </Filter>
<File
RelativePath=".\recursive_polygons.cpp"
>
Modified: trunk/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp (original)
+++ trunk/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -11,7 +11,7 @@
#include <fstream>
#include <iomanip>
-// #define BOOST_GEOMETRY_ROBUSTNESS_USE_DIFFERENCE
+//#define BOOST_GEOMETRY_ROBUSTNESS_USE_DIFFERENCE
// For mixing int/float
@@ -48,7 +48,7 @@
CalculationType area_q = bg::area(q);
bg::intersection(p, q, out_i);
- CalculationType area_i = bg::area(out_i);
+ CalculationType area_i = abs(bg::area(out_i)); // TEMP abs call, TODO solve this
bg::union_(p, q, out_u);
CalculationType area_u = bg::area(out_u);
Modified: trunk/libs/geometry/test/algorithms/test_difference.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_difference.hpp (original)
+++ trunk/libs/geometry/test/algorithms/test_difference.hpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -16,6 +16,7 @@
#include <boost/range/algorithm/copy.hpp>
+#include <boost/geometry/algorithms/correct.hpp>
#include <boost/geometry/algorithms/difference.hpp>
#include <boost/geometry/algorithms/sym_difference.hpp>
#include <boost/geometry/multi/algorithms/difference.hpp>
@@ -176,6 +177,19 @@
double percentage = 0.0001)
{
+#ifdef BOOST_GEOMETRY_CHECK_WITH_SQLSERVER
+ std::cout
+ << "-- " << caseid << std::endl
+ << "with qu as (" << std::endl
+ << "select geometry::STGeomFromText('" << wkt1 << "',0) as p," << std::endl
+ << "geometry::STGeomFromText('" << wkt2 << "',0) as q)" << std::endl
+ << "select " << std::endl
+ << " p.STDifference(q).STNumGeometries() as cnt1,p.STDifference(q).STNumPoints() as pcnt1,p.STDifference(q).STArea() as area1," << std::endl
+ << " q.STDifference(p).STNumGeometries() as cnt2,q.STDifference(p).STNumPoints() as pcnt2,q.STDifference(p).STArea() as area2," << std::endl
+ << " p.STDifference(q) as d1,q.STDifference(p) as d2 from qu" << std::endl << std::endl;
+#endif
+
+
G1 g1;
bg::read_wkt(wkt1, g1);
@@ -200,6 +214,7 @@
expected_area1 + expected_area2,
percentage, true);
+
#ifdef BOOST_GEOMETRY_CHECK_WITH_POSTGIS
std::cout
<< (counter > 0 ? "union " : "")
Modified: trunk/libs/geometry/test/algorithms/test_overlay.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_overlay.hpp (original)
+++ trunk/libs/geometry/test/algorithms/test_overlay.hpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -23,6 +23,7 @@
static std::string example_star =
"POLYGON((4.0 -0.5 , 3.5 1.0 , 2.0 1.5 , 3.5 2.0 , 4.0 3.5 , 4.5 2.0 , 6.0 1.5 , 4.5 1.0 , 4.0 -0.5))";
+static std::string polygon_empty = "POLYGON EMPTY";
// 2. Alphabetically ordered testcase pairs
Modified: trunk/libs/geometry/test/algorithms/union.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/union.cpp (original)
+++ trunk/libs/geometry/test/algorithms/union.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -21,6 +21,17 @@
template <typename Ring, typename Polygon>
void test_areal()
{
+ test_one<Polygon, Polygon, Polygon>("simplex_normal",
+ simplex_normal[0], simplex_normal[1],
+ 1, 0, 13, 11.526367);
+
+ test_one<Polygon, Polygon, Polygon>("simplex_with_empty_1",
+ simplex_normal[0], polygon_empty,
+ 1, 0, 4, 8.0);
+ test_one<Polygon, Polygon, Polygon>("simplex_with_empty_2",
+ polygon_empty, simplex_normal[0],
+ 1, 0, 4, 8.0);
+
test_one<Polygon, Polygon, Polygon>("star_ring", example_star, example_ring,
1, 0, 23, 5.67017141);
@@ -122,10 +133,6 @@
crossed[0], crossed[1],
1, 3, 17, 23.5); // Area from SQL Server - was somehow wrong before
- test_one<Polygon, Polygon, Polygon>("simplex_normal",
- simplex_normal[0], simplex_normal[1],
- 1, 0, 13, 11.526367);
-
test_one<Polygon, Polygon, Polygon>("fitting",
fitting[0], fitting[1],
1, 0, 5, 25);
Modified: trunk/libs/geometry/test/multi/algorithms/Jamfile.v2
==============================================================================
--- trunk/libs/geometry/test/multi/algorithms/Jamfile.v2 (original)
+++ trunk/libs/geometry/test/multi/algorithms/Jamfile.v2 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -12,6 +12,7 @@
[ run multi_centroid.cpp ]
[ run multi_convex_hull.cpp ]
[ run multi_correct.cpp ]
+ [ run multi_difference.cpp ]
[ run multi_envelope.cpp ]
[ run multi_equals.cpp ]
[ run multi_for_each.cpp ]
@@ -23,6 +24,7 @@
[ run multi_perimeter.cpp ]
[ run multi_reverse.cpp ]
[ run multi_simplify.cpp ]
+ [ run multi_transform.cpp ]
[ run multi_union.cpp ]
[ run multi_unique.cpp ]
[ run multi_within.cpp ]
Added: trunk/libs/geometry/test/multi/algorithms/multi_difference.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/test/multi/algorithms/multi_difference.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -0,0 +1,127 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library) test file
+//
+// Copyright Barend Gehrels 2010, Geodan, Amsterdam, the Netherlands
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <iostream>
+#include <string>
+
+// #define BOOST_GEOMETRY_DEBUG_ASSEMBLE
+#define BOOST_GEOMETRY_CHECK_WITH_SQLSERVER
+
+#include <algorithms/test_difference.hpp>
+#include <algorithms/test_overlay.hpp>
+#include <multi/algorithms/overlay/multi_overlay_cases.hpp>
+
+#include <boost/geometry/multi/algorithms/correct.hpp>
+#include <boost/geometry/multi/algorithms/difference.hpp>
+#include <boost/geometry/multi/algorithms/within.hpp> // only for testing #77
+
+#include <boost/geometry/multi/geometries/multi_point.hpp>
+#include <boost/geometry/multi/geometries/multi_linestring.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
+
+#include <boost/geometry/extensions/gis/io/wkt/read_wkt_multi.hpp>
+
+template <typename Ring, typename Polygon, typename MultiPolygon>
+void test_areal()
+{
+ test_one<Polygon, MultiPolygon, MultiPolygon>("simplex_multi",
+ case_multi_simplex[0], case_multi_simplex[1],
+ 5, 12, 5.58, 4, 12, 2.58);
+
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_multi_no_ip",
+ case_multi_no_ip[0], case_multi_no_ip[1],
+ 2, 12, 24.0, 2, 12, 34.0);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_multi_2",
+ case_multi_2[0], case_multi_2[1],
+ 2, 15, 19.6, 2, 13, 33.6);
+
+ test_one<Polygon, MultiPolygon, Polygon>("simplex_multi_mp_p",
+ case_multi_simplex[0], case_single_simplex,
+ 5, 22, 5.58, 4, 17, 2.58);
+ test_one<Polygon, Ring, MultiPolygon>("simplex_multi_r_mp",
+ case_single_simplex, case_multi_simplex[0],
+ 4, 17, 2.58, 5, 22, 5.58);
+ test_one<Ring, MultiPolygon, Polygon>("simplex_multi_mp_r",
+ case_multi_simplex[0], case_single_simplex,
+ 5, 22, 5.58, 4, 17, 2.58);
+
+ // Constructed cases for multi/touch/equal/etc
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_61_multi",
+ case_61_multi[0], case_61_multi[1],
+ 2, 10, 2, 2, 10, 2);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_62_multi",
+ case_62_multi[0], case_62_multi[1],
+ 0, 0, 0, 1, 5, 1);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_63_multi",
+ case_63_multi[0], case_63_multi[1],
+ 0, 0, 0, 1, 5, 1);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_64_multi",
+ case_64_multi[0], case_64_multi[1],
+ 1, 1, 1, 1, 1, 1);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_65_multi",
+ case_65_multi[0], case_65_multi[1],
+ 0, 0, 0, 2, 10, 3);
+ /* TODO: fix
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_72_multi",
+ case_72_multi[0], case_72_multi[1],
+ 3, 13, 1.65, 3, 17, 6.15);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_77_multi",
+ case_77_multi[0], case_77_multi[1],
+ 6, 31, 7, 6, 36, 13);
+ */
+
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_78_multi",
+ case_78_multi[0], case_78_multi[1],
+ 1, 1, 1.0, 1, 1, 1.0);
+
+ /* TODO: fix
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_101_multi",
+ case_101_multi[0], case_101_multi[1],
+ 5, 23, 4.75, 5, 40, 12.75);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_102_multi",
+ case_102_multi[0], case_102_multi[1],
+ 2, 8, 0.75, 6, 25, 3.75);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_107_multi",
+ case_107_multi[0], case_107_multi[1],
+ 2, 11, 2.25, 3, 14, 3.0);
+ */
+ /*
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_1",
+ case_recursive_boxes_1[0], case_recursive_boxes_1[1],
+ 1, 1, 1, 1, 1, 1);
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_2",
+ case_recursive_boxes_2[0], case_recursive_boxes_2[1],
+ 1, 1, 1, 1, 1, 1);
+
+ test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_3",
+ case_recursive_boxes_3[0], case_recursive_boxes_3[1],
+ 1, 1, 1, 1, 1, 1);
+*/
+}
+
+
+template <typename P>
+void test_all()
+{
+ typedef bg::model::box<P> box;
+ typedef bg::model::ring<P> ring;
+ typedef bg::model::polygon<P> polygon;
+ typedef bg::model::multi_polygon<polygon> multi_polygon;
+ test_areal<ring, polygon, multi_polygon>();
+}
+
+
+int test_main(int, char* [])
+{
+ test_all<bg::model::d2::point_xy<double> >();
+
+#ifdef HAVE_TTMATH
+ //test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
+
+ return 0;
+}
Added: trunk/libs/geometry/test/multi/algorithms/multi_difference.vcproj
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/test/multi/algorithms/multi_difference.vcproj 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="multi_difference"
+ ProjectGUID="{7F85B87A-48A6-47BD-A08C-AB12AEA56582}"
+ RootNamespace="multi_difference"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)\multi_difference"
+ ConfigurationType="1"
+ InheritedPropertySheets="..\..\boost.vsprops;..\..\ttmath.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../..;../..;."
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;TEST_WITH_SVG"
+ ExceptionHandling="2"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ DebugInformationFormat="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)\multi_difference"
+ ConfigurationType="1"
+ InheritedPropertySheets="..\..\boost.vsprops;..\..\ttmath.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../..;../..;."
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ ExceptionHandling="2"
+ UsePrecompiledHeader="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath=".\multi_difference.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Added: trunk/libs/geometry/test/multi/algorithms/multi_transform.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/test/multi/algorithms/multi_transform.cpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -0,0 +1,90 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library) test file
+//
+// Copyright Barend Gehrels 2007-2009, Geodan, Amsterdam, the Netherlands
+// Copyright Bruno Lalande 2008, 2009
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <iostream>
+#include <sstream>
+
+#include <geometry_test_common.hpp>
+
+#include <boost/geometry/algorithms/transform.hpp>
+#include <boost/geometry/strategies/strategies.hpp>
+#include <boost/geometry/geometries/geometries.hpp>
+
+#include <boost/geometry/multi/algorithms/transform.hpp>
+
+#include <boost/geometry/multi/geometries/multi_point.hpp>
+#include <boost/geometry/multi/geometries/multi_linestring.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
+
+#include <boost/geometry/extensions/gis/io/wkt/wkt.hpp>
+#include <boost/geometry/extensions/gis/io/wkt/read_wkt_multi.hpp>
+
+
+// This test is a little different from transform.cpp test.
+// This test explicitly tests all geometries, including multi*
+// while the transform.cpp tests various strategies.
+
+template <typename Geometry>
+void test_transform(std::string const& wkt, std::string const& expected)
+{
+ typedef typename bg::point_type<Geometry>::type point_type;
+
+ Geometry geometry_in, geometry_out;
+ bg::read_wkt(wkt, geometry_in);
+ bg::transform(geometry_in, geometry_out,
+ bg::strategy::transform::scale_transformer<point_type>(2, 2));
+ std::ostringstream detected;
+ detected << bg::wkt(geometry_out);
+ BOOST_CHECK_EQUAL(detected.str(), expected);
+}
+
+
+template <typename T>
+void test_all()
+{
+ typedef bg::model::d2::point_xy<T> P;
+
+ test_transform<P>(
+ "POINT(1 1)",
+ "POINT(2 2)");
+ test_transform<bg::model::linestring<P> >(
+ "LINESTRING(1 1,2 2)",
+ "LINESTRING(2 2,4 4)");
+ test_transform<bg::model::segment<P> >(
+ "LINESTRING(1 1,2 2)",
+ "LINESTRING(2 2,4 4)");
+ test_transform<bg::model::ring<P> >(
+ "POLYGON((0 0,0 1,1 0,0 0))",
+ "POLYGON((0 0,0 2,2 0,0 0))");
+ test_transform<bg::model::polygon<P> >(
+ "POLYGON((0 0,0 1,1 0,0 0))",
+ "POLYGON((0 0,0 2,2 0,0 0))");
+ test_transform<bg::model::box<P> >(
+ "POLYGON((0 0,0 1,1 1,1 0,0 0))",
+ "POLYGON((0 0,0 2,2 2,2 0,0 0))");
+ test_transform<bg::model::multi_point<P> >(
+ "MULTIPOINT((1 1),(2 2))",
+ "MULTIPOINT((2 2),(4 4))");
+ test_transform<bg::model::multi_linestring<bg::model::linestring<P> > >(
+ "MULTILINESTRING((1 1,2 2))",
+ "MULTILINESTRING((2 2,4 4))");
+ test_transform<bg::model::multi_polygon<bg::model::polygon<P> > >(
+ "MULTIPOLYGON(((0 0,0 1,1 0,0 0)))",
+ "MULTIPOLYGON(((0 0,0 2,2 0,0 0)))");
+}
+
+
+int test_main(int, char* [])
+{
+ test_all<double>();
+
+#ifdef HAVE_TTMATH
+ test_all<ttmath_big>();
+#endif
+ return 0;
+}
Added: trunk/libs/geometry/test/multi/algorithms/multi_transform.vcproj
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/test/multi/algorithms/multi_transform.vcproj 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="multi_transform"
+ ProjectGUID="{64985954-0A74-46F5-908F-865E905C3414}"
+ RootNamespace="multi_transform"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)\multi_transform"
+ ConfigurationType="1"
+ InheritedPropertySheets="..\..\boost.vsprops;..\..\ttmath.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../..;../.."
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ ExceptionHandling="2"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ DebugInformationFormat="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)\multi_transform"
+ ConfigurationType="1"
+ InheritedPropertySheets="..\..\boost.vsprops;..\..\ttmath.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../..;../.."
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ ExceptionHandling="2"
+ UsePrecompiledHeader="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath=".\multi_transform.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Modified: trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp
==============================================================================
--- trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp (original)
+++ trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -341,7 +341,7 @@
{
// For CCW polygon reports a iu/iu problem.
"MULTIPOLYGON(((6 8,7 9,7 7,8 7,7 6,6 6,6 8)),((6.5 9.5,7 10,7 9,6 9,6 10,6.5 9.5)))",
- "MULTIPOLYGON(((5 7,6 8,6 10,7 9,8 10,8 8,7 8,6 7,6 6,5 6)))"
+ "MULTIPOLYGON(((5 7,6 8,6 10,7 9,8 10,8 8,7 8,6 7,6 6,5 7)))"
};
Modified: trunk/libs/geometry/test/multi/multi_tests.sln
==============================================================================
--- trunk/libs/geometry/test/multi/multi_tests.sln (original)
+++ trunk/libs/geometry/test/multi/multi_tests.sln 2011-03-04 16:43:58 EST (Fri, 04 Mar 2011)
@@ -38,6 +38,10 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_num_interior_rings", "algorithms\multi_num_interior_rings.vcproj", "{3F8E4B3A-43D5-49ED-89F6-C6D1CF609B02}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_difference", "algorithms\multi_difference.vcproj", "{7F85B87A-48A6-47BD-A08C-AB12AEA56582}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_transform", "algorithms\multi_transform.vcproj", "{64985954-0A74-46F5-908F-865E905C3414}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -120,6 +124,14 @@
{3F8E4B3A-43D5-49ED-89F6-C6D1CF609B02}.Debug|Win32.Build.0 = Debug|Win32
{3F8E4B3A-43D5-49ED-89F6-C6D1CF609B02}.Release|Win32.ActiveCfg = Release|Win32
{3F8E4B3A-43D5-49ED-89F6-C6D1CF609B02}.Release|Win32.Build.0 = Release|Win32
+ {7F85B87A-48A6-47BD-A08C-AB12AEA56582}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7F85B87A-48A6-47BD-A08C-AB12AEA56582}.Debug|Win32.Build.0 = Debug|Win32
+ {7F85B87A-48A6-47BD-A08C-AB12AEA56582}.Release|Win32.ActiveCfg = Release|Win32
+ {7F85B87A-48A6-47BD-A08C-AB12AEA56582}.Release|Win32.Build.0 = Release|Win32
+ {64985954-0A74-46F5-908F-865E905C3414}.Debug|Win32.ActiveCfg = Debug|Win32
+ {64985954-0A74-46F5-908F-865E905C3414}.Debug|Win32.Build.0 = Debug|Win32
+ {64985954-0A74-46F5-908F-865E905C3414}.Release|Win32.ActiveCfg = Release|Win32
+ {64985954-0A74-46F5-908F-865E905C3414}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk