diff options
Diffstat (limited to 'src/boost/libs/polygon/example')
232 files changed, 4113 insertions, 0 deletions
diff --git a/src/boost/libs/polygon/example/Jamfile.v2 b/src/boost/libs/polygon/example/Jamfile.v2 new file mode 100644 index 00000000..a8dc212c --- /dev/null +++ b/src/boost/libs/polygon/example/Jamfile.v2 @@ -0,0 +1,43 @@ +# Copyright Andrii Sydorchuk 2010-2012. +# Distributed under 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) + +import cast ; +import testing ; + +lib opengl : : <name>opengl32 ; + +project voronoi_example + : + requirements + <include>. + <toolset>msvc:<asynch-exceptions>on + <library>$(BOOST_ROOT)/libs/timer/build//boost_timer + ; + +exe voronoi-visualizer + : + voronoi_visualizer.cpp + [ cast _ moccable-cpp : voronoi_visualizer.cpp ] + /qt//QtOpenGL + : + <target-os>windows:<library>opengl + ; + +alias "basic-tutorial" + : + [ run voronoi_basic_tutorial.cpp ] + ; + +alias "advanced-tutorial" + : + [ run voronoi_advanced_tutorial.cpp ] + ; + +alias "documentation-examples" + : + [ run gtl_custom_point.cpp ] + [ run gtl_custom_polygon.cpp ] + [ run gtl_custom_polygon_set.cpp ] + ; diff --git a/src/boost/libs/polygon/example/gtl_custom_point.cpp b/src/boost/libs/polygon/example/gtl_custom_point.cpp new file mode 100644 index 00000000..665c82ed --- /dev/null +++ b/src/boost/libs/polygon/example/gtl_custom_point.cpp @@ -0,0 +1,120 @@ +/* +Copyright 2008 Intel Corporation + +Use, modification and distribution are 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 <boost/polygon/polygon.hpp> +#include <cassert> +namespace gtl = boost::polygon; +using namespace boost::polygon::operators; + +//lets make the body of main from point_usage.cpp +//a generic function parameterized by point type +template <typename Point> +void test_point() { + //constructing a gtl point + int x = 10; + int y = 20; + //Point pt(x, y); + Point pt = gtl::construct<Point>(x, y); + assert(gtl::x(pt) == 10); + assert(gtl::y(pt) == 20); + + //a quick primer in isotropic point access + typedef gtl::orientation_2d O; + using gtl::HORIZONTAL; + using gtl::VERTICAL; + O o = HORIZONTAL; + assert(gtl::x(pt) == gtl::get(pt, o)); + + o = o.get_perpendicular(); + assert(o == VERTICAL); + assert(gtl::y(pt) == gtl::get(pt, o)); + + gtl::set(pt, o, 30); + assert(gtl::y(pt) == 30); + + //using some of the library functions + //Point pt2(10, 30); + Point pt2 = gtl::construct<Point>(10, 30); + assert(gtl::equivalence(pt, pt2)); + + gtl::transformation<int> tr(gtl::axis_transformation::SWAP_XY); + gtl::transform(pt, tr); + assert(gtl::equivalence(pt, gtl::construct<Point>(30, 10))); + + gtl::transformation<int> tr2 = tr.inverse(); + assert(tr == tr2); //SWAP_XY is its own inverse transform + + gtl::transform(pt, tr2); + assert(gtl::equivalence(pt, pt2)); //the two points are equal again + + gtl::move(pt, o, 10); //move pt 10 units in y + assert(gtl::euclidean_distance(pt, pt2) == 10.0f); + + gtl::move(pt, o.get_perpendicular(), 10); //move pt 10 units in x + assert(gtl::manhattan_distance(pt, pt2) == 20); +} + +//Now lets declare our own point type +//Bjarne says that if a class doesn't maintain an +//invariant just use a struct. +struct CPoint { + int x; + int y; +}; + +//There, nice a simple...but wait, it doesn't do anything +//how do we use it to do all the things a point needs to do? + + +//First we register it as a point with boost polygon +namespace boost { namespace polygon { + template <> + struct geometry_concept<CPoint> { typedef point_concept type; }; + + + //Then we specialize the gtl point traits for our point type + template <> + struct point_traits<CPoint> { + typedef int coordinate_type; + + static inline coordinate_type get(const CPoint& point, + orientation_2d orient) { + if(orient == HORIZONTAL) + return point.x; + return point.y; + } + }; + + template <> + struct point_mutable_traits<CPoint> { + typedef int coordinate_type; + + + static inline void set(CPoint& point, orientation_2d orient, int value) { + if(orient == HORIZONTAL) + point.x = value; + else + point.y = value; + } + static inline CPoint construct(int x_value, int y_value) { + CPoint retval; + retval.x = x_value; + retval.y = y_value; + return retval; + } + }; + } } + +//Now lets see if the CPoint works with the library functions +int main() { + test_point<CPoint>(); //yay! All your testing is done for you. + return 0; +} + +//Now you know how to map a user type to the library point concept +//and how to write a generic function parameterized by point type +//using the library interfaces to access it. diff --git a/src/boost/libs/polygon/example/gtl_custom_polygon.cpp b/src/boost/libs/polygon/example/gtl_custom_polygon.cpp new file mode 100644 index 00000000..f42dea1d --- /dev/null +++ b/src/boost/libs/polygon/example/gtl_custom_polygon.cpp @@ -0,0 +1,146 @@ +/* +Copyright 2008 Intel Corporation + +Use, modification and distribution are 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 <boost/polygon/polygon.hpp> +#include <cassert> +#include <list> +namespace gtl = boost::polygon; +using namespace boost::polygon::operators; + +//first lets turn our polygon usage code into a generic +//function parameterized by polygon type +template <typename Polygon> +void test_polygon() { + //lets construct a 10x10 rectangle shaped polygon + typedef typename gtl::polygon_traits<Polygon>::point_type Point; + Point pts[] = {gtl::construct<Point>(0, 0), + gtl::construct<Point>(10, 0), + gtl::construct<Point>(10, 10), + gtl::construct<Point>(0, 10) }; + Polygon poly; + gtl::set_points(poly, pts, pts+4); + + //now lets see what we can do with this polygon + assert(gtl::area(poly) == 100.0f); + assert(gtl::contains(poly, gtl::construct<Point>(5, 5))); + assert(!gtl::contains(poly, gtl::construct<Point>(15, 5))); + gtl::rectangle_data<int> rect; + assert(gtl::extents(rect, poly)); //get bounding box of poly + assert(gtl::equivalence(rect, poly)); //hey, that's slick + assert(gtl::winding(poly) == gtl::COUNTERCLOCKWISE); + assert(gtl::perimeter(poly) == 40.0f); + + //add 5 to all coords of poly + gtl::convolve(poly, gtl::construct<Point>(5, 5)); + //multiply all coords of poly by 2 + gtl::scale_up(poly, 2); + gtl::set_points(rect, gtl::point_data<int>(10, 10), + gtl::point_data<int>(30, 30)); + assert(gtl::equivalence(poly, rect)); +} + +//Now lets declare our own polygon class +//Oops, we need a point class to support our polygon, lets borrow +//the CPoint example +struct CPoint { + int x; + int y; +}; + +//we have to get CPoint working with boost polygon to make our polygon +//that uses CPoint working with boost polygon +namespace boost { namespace polygon { + template <> + struct geometry_concept<CPoint> { typedef point_concept type; }; + template <> + struct point_traits<CPoint> { + typedef int coordinate_type; + + static inline coordinate_type get(const CPoint& point, + orientation_2d orient) { + if(orient == HORIZONTAL) + return point.x; + return point.y; + } + }; + + template <> + struct point_mutable_traits<CPoint> { + typedef int coordinate_type; + + static inline void set(CPoint& point, orientation_2d orient, int value) { + if(orient == HORIZONTAL) + point.x = value; + else + point.y = value; + } + static inline CPoint construct(int x_value, int y_value) { + CPoint retval; + retval.x = x_value; + retval.y = y_value; + return retval; + } + }; + } } + +//I'm lazy and use the stl everywhere to avoid writing my own classes +//my toy polygon is a std::list<CPoint> +typedef std::list<CPoint> CPolygon; + +//we need to specialize our polygon concept mapping in boost polygon +namespace boost { namespace polygon { + //first register CPolygon as a polygon_concept type + template <> + struct geometry_concept<CPolygon>{ typedef polygon_concept type; }; + + template <> + struct polygon_traits<CPolygon> { + typedef int coordinate_type; + typedef CPolygon::const_iterator iterator_type; + typedef CPoint point_type; + + // Get the begin iterator + static inline iterator_type begin_points(const CPolygon& t) { + return t.begin(); + } + + // Get the end iterator + static inline iterator_type end_points(const CPolygon& t) { + return t.end(); + } + + // Get the number of sides of the polygon + static inline std::size_t size(const CPolygon& t) { + return t.size(); + } + + // Get the winding direction of the polygon + static inline winding_direction winding(const CPolygon& t) { + return unknown_winding; + } + }; + + template <> + struct polygon_mutable_traits<CPolygon> { + //expects stl style iterators + template <typename iT> + static inline CPolygon& set_points(CPolygon& t, + iT input_begin, iT input_end) { + t.clear(); + t.insert(t.end(), input_begin, input_end); + return t; + } + + }; + } } + +//now there's nothing left to do but test that our polygon +//works with library interfaces +int main() { + test_polygon<CPolygon>(); //woot! + return 0; +} diff --git a/src/boost/libs/polygon/example/gtl_custom_polygon_set.cpp b/src/boost/libs/polygon/example/gtl_custom_polygon_set.cpp new file mode 100644 index 00000000..4599031f --- /dev/null +++ b/src/boost/libs/polygon/example/gtl_custom_polygon_set.cpp @@ -0,0 +1,203 @@ +/* +Copyright 2008 Intel Corporation + +Use, modification and distribution are 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 <boost/polygon/polygon.hpp> +#include <list> +#include <time.h> +#include <cassert> +#include <deque> +#include <iostream> +namespace gtl = boost::polygon; +using namespace boost::polygon::operators; + +//once again we make our usage of the library generic +//and parameterize it on the polygon set type +template <typename PolygonSet> +void test_polygon_set() { + using namespace gtl; + PolygonSet ps; + ps += rectangle_data<int>(0, 0, 10, 10); + PolygonSet ps2; + ps2 += rectangle_data<int>(5, 5, 15, 15); + PolygonSet ps3; + assign(ps3, ps * ps2); + PolygonSet ps4; + ps4 += ps + ps2; + assert(area(ps4) == area(ps) + area(ps2) - area(ps3)); + assert(equivalence((ps + ps2) - (ps * ps2), ps ^ ps2)); + rectangle_data<int> rect; + assert(extents(rect, ps ^ ps2)); + assert(area(rect) == 225); + assert(area(rect ^ (ps ^ ps2)) == area(rect) - area(ps ^ ps2)); +} + +//first thing is first, lets include all the code from previous examples + +//the CPoint example +struct CPoint { + int x; + int y; +}; + +namespace boost { namespace polygon { + template <> + struct geometry_concept<CPoint> { typedef point_concept type; }; + template <> + struct point_traits<CPoint> { + typedef int coordinate_type; + + static inline coordinate_type get(const CPoint& point, + orientation_2d orient) { + if(orient == HORIZONTAL) + return point.x; + return point.y; + } + }; + + template <> + struct point_mutable_traits<CPoint> { + typedef int coordinate_type; + + static inline void set(CPoint& point, orientation_2d orient, int value) { + if(orient == HORIZONTAL) + point.x = value; + else + point.y = value; + } + static inline CPoint construct(int x_value, int y_value) { + CPoint retval; + retval.x = x_value; + retval.y = y_value; + return retval; + } + }; + } } + +//the CPolygon example +typedef std::list<CPoint> CPolygon; + +//we need to specialize our polygon concept mapping in boost polygon +namespace boost { namespace polygon { + //first register CPolygon as a polygon_concept type + template <> + struct geometry_concept<CPolygon>{ typedef polygon_concept type; }; + + template <> + struct polygon_traits<CPolygon> { + typedef int coordinate_type; + typedef CPolygon::const_iterator iterator_type; + typedef CPoint point_type; + + // Get the begin iterator + static inline iterator_type begin_points(const CPolygon& t) { + return t.begin(); + } + + // Get the end iterator + static inline iterator_type end_points(const CPolygon& t) { + return t.end(); + } + + // Get the number of sides of the polygon + static inline std::size_t size(const CPolygon& t) { + return t.size(); + } + + // Get the winding direction of the polygon + static inline winding_direction winding(const CPolygon& t) { + return unknown_winding; + } + }; + + template <> + struct polygon_mutable_traits<CPolygon> { + //expects stl style iterators + template <typename iT> + static inline CPolygon& set_points(CPolygon& t, + iT input_begin, iT input_end) { + t.clear(); + while(input_begin != input_end) { + t.push_back(CPoint()); + gtl::assign(t.back(), *input_begin); + ++input_begin; + } + return t; + } + + }; + } } + +//OK, finally we get to declare our own polygon set type +typedef std::deque<CPolygon> CPolygonSet; + +//deque isn't automatically a polygon set in the library +//because it is a standard container there is a shortcut +//for mapping it to polygon set concept, but I'll do it +//the long way that you would use in the general case. +namespace boost { namespace polygon { + //first we register CPolygonSet as a polygon set + template <> + struct geometry_concept<CPolygonSet> { typedef polygon_set_concept type; }; + + //next we map to the concept through traits + template <> + struct polygon_set_traits<CPolygonSet> { + typedef int coordinate_type; + typedef CPolygonSet::const_iterator iterator_type; + typedef CPolygonSet operator_arg_type; + + static inline iterator_type begin(const CPolygonSet& polygon_set) { + return polygon_set.begin(); + } + + static inline iterator_type end(const CPolygonSet& polygon_set) { + return polygon_set.end(); + } + + //don't worry about these, just return false from them + static inline bool clean(const CPolygonSet& polygon_set) { return false; } + static inline bool sorted(const CPolygonSet& polygon_set) { return false; } + }; + + template <> + struct polygon_set_mutable_traits<CPolygonSet> { + template <typename input_iterator_type> + static inline void set(CPolygonSet& polygon_set, input_iterator_type input_begin, input_iterator_type input_end) { + polygon_set.clear(); + //this is kind of cheesy. I am copying the unknown input geometry + //into my own polygon set and then calling get to populate the + //deque + polygon_set_data<int> ps; + ps.insert(input_begin, input_end); + ps.get(polygon_set); + //if you had your own odd-ball polygon set you would probably have + //to iterate through each polygon at this point and do something + //extra + } + }; +} } + +int main() { + long long c1 = clock(); + for(int i = 0; i < 1000; ++i) + test_polygon_set<CPolygonSet>(); + long long c2 = clock(); + for(int i = 0; i < 1000; ++i) + test_polygon_set<gtl::polygon_set_data<int> >(); + long long c3 = clock(); + long long diff1 = c2 - c1; + long long diff2 = c3 - c2; + if(diff1 > 0 && diff2) + std::cout << "library polygon_set_data is " << float(diff1)/float(diff2) << "X faster than custom polygon set deque of CPolygon" << std::endl; + else + std::cout << "operation was too fast" << std::endl; + return 0; +} + +//Now you know how to map your own data type to polygon set concept +//Now you also know how to make your application code that operates on geometry +//data type agnostic from point through polygon set diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_001.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_001.txt new file mode 100644 index 00000000..5bbb057e --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_001.txt @@ -0,0 +1,10 @@ +0 +8 +0 0 -3 5 +-3 5 2 10 +2 10 4 6 +4 6 10 12 +10 12 13 6 +13 6 11 1 +11 1 5 1 +5 1 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_002.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_002.txt new file mode 100644 index 00000000..486bd911 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_002.txt @@ -0,0 +1,16 @@ +0 +14 +0 0 -3 5 +-3 5 2 10 +2 10 4 6 +4 6 10 12 +10 12 13 6 +13 6 11 1 +11 1 5 1 +5 1 0 0 +1 2 0 5 +0 5 5 2 +5 2 1 2 +10 3 8 6 +8 6 10 8 +10 8 10 3
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_003.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_003.txt new file mode 100644 index 00000000..42924605 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_003.txt @@ -0,0 +1,10 @@ +0 +8 +0 0 0 8 +0 8 4 12 +4 12 9 13 +9 13 13 13 +13 13 13 4 +13 4 10 0 +10 0 5 -1 +5 -1 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_004.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_004.txt new file mode 100644 index 00000000..bb5a50bd --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_004.txt @@ -0,0 +1,10 @@ +0 +8 +0 0 0 8 +0 8 4 12 +4 12 9 13 +9 13 7 7 +7 7 13 4 +13 4 10 0 +10 0 5 -1 +5 -1 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_005.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_005.txt new file mode 100644 index 00000000..7825f926 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_005.txt @@ -0,0 +1,8 @@ +0 +6 +0 0 10 0 +10 0 16 -6 +16 -6 22 0 +22 0 22 -12 +22 -12 10 -12 +10 -12 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_006.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_006.txt new file mode 100644 index 00000000..064dded3 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_006.txt @@ -0,0 +1,9 @@ +0 +7 +0 0 0 10 +0 10 6 10 +6 10 10 7 +10 7 14 10 +14 10 20 10 +20 10 20 0 +20 0 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_007.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_007.txt new file mode 100644 index 00000000..af811fe6 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_007.txt @@ -0,0 +1,14 @@ +0 +12 +0 0 8 3 +8 3 10 13 +10 13 16 6 +16 6 16 15 +16 15 25 10 +25 10 15 1 +15 1 27 -1 +27 -1 14 -4 +14 -4 13 3 +13 3 11 -5 +11 -5 10 0 +10 0 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_008.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_008.txt new file mode 100644 index 00000000..65985418 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_008.txt @@ -0,0 +1,12 @@ +0 +10 +0 0 1 8 +1 8 10 7 +10 7 20 10 +20 10 25 9 +25 9 28 5 +28 5 23 -2 +23 -2 24 -7 +24 -7 13 -9 +13 -9 10 -3 +10 -3 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_009.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_009.txt new file mode 100644 index 00000000..863e93fb --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_009.txt @@ -0,0 +1,6 @@ +0 +4 +0 0 0 10 +0 10 30 10 +30 10 30 0 +30 0 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_010.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_010.txt new file mode 100644 index 00000000..3dc6cf98 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_010.txt @@ -0,0 +1,25 @@ +0 +23 +-12 4 -12 -4 +-12 -4 -8 -4 +-8 -4 -8 -1 +-8 -1 -9 0 +-9 0 -8 1 +-8 1 -8 4 +-8 4 -12 4 +-4 4 -4 -4 +-4 -4 0 -4 +0 -4 0 4 +0 4 -4 4 +4 4 4 -4 +4 -4 8 -4 +8 -4 8 4 +8 4 4 4 +-4 -8 -8 -8 +-8 -8 -8 -12 +-8 -12 -4 -12 +-4 -12 -4 -16 +-4 -16 -8 -16 +0 -8 2 -8 +2 -8 4 -8 +2 -8 2 -16 diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_011.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_011.txt new file mode 100644 index 00000000..34ec6a54 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_011.txt @@ -0,0 +1,11 @@ +0 +9 +0 0 1 10 +1 10 4 9 +4 9 4 2 +4 2 0 0 +5 5 6 8 +6 8 10 10 +10 10 9 1 +9 1 6 2 +6 2 5 5
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/polygon/polygon_012.txt b/src/boost/libs/polygon/example/input_data/polygon/polygon_012.txt new file mode 100644 index 00000000..c338d977 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/polygon/polygon_012.txt @@ -0,0 +1,14 @@ +0 +12 +0 0 100 0 +100 0 100 100 +100 100 0 100 +0 100 0 0 +15 15 60 20 +60 20 87 23 +60 20 57 47 +15 85 30 80 +30 80 25 65 +30 80 60 70 +60 70 75 65 +60 70 65 85
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_001.txt b/src/boost/libs/polygon/example/input_data/primary/primary_001.txt new file mode 100644 index 00000000..5b553c0d --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_001.txt @@ -0,0 +1,2 @@ +1 +0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_002.txt b/src/boost/libs/polygon/example/input_data/primary/primary_002.txt new file mode 100644 index 00000000..0b455147 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_002.txt @@ -0,0 +1,3 @@ +2 +0 0 +1 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_003.txt b/src/boost/libs/polygon/example/input_data/primary/primary_003.txt new file mode 100644 index 00000000..fdbbf7a7 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_003.txt @@ -0,0 +1,3 @@ +2 +0 0 +0 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_004.txt b/src/boost/libs/polygon/example/input_data/primary/primary_004.txt new file mode 100644 index 00000000..c64ab212 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_004.txt @@ -0,0 +1,3 @@ +2 +0 0 +1 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_005.txt b/src/boost/libs/polygon/example/input_data/primary/primary_005.txt new file mode 100644 index 00000000..bbadf557 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_005.txt @@ -0,0 +1,11 @@ +10 +0 0 +0 1 +0 2 +0 3 +0 4 +0 -1 +0 -2 +0 -3 +0 -4 +0 -5
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_006.txt b/src/boost/libs/polygon/example/input_data/primary/primary_006.txt new file mode 100644 index 00000000..eb7aea42 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_006.txt @@ -0,0 +1,11 @@ +10 +0 0 +1 0 +2 0 +3 0 +4 0 +5 0 +-1 0 +-2 0 +-3 0 +-4 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_007.txt b/src/boost/libs/polygon/example/input_data/primary/primary_007.txt new file mode 100644 index 00000000..88ac7796 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_007.txt @@ -0,0 +1,12 @@ +11 +0 0 +1 1 +2 2 +3 3 +4 4 +5 5 +6 6 +7 7 +8 8 +9 9 +10 10
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_008.txt b/src/boost/libs/polygon/example/input_data/primary/primary_008.txt new file mode 100644 index 00000000..9f4b6f05 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_008.txt @@ -0,0 +1,11 @@ +10 +-46 -37 +-40 -30 +-34 -23 +-28 -16 +-22 -09 +-16 -02 +-10 05 +-04 12 +02 19 +08 26
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_009.txt b/src/boost/libs/polygon/example/input_data/primary/primary_009.txt new file mode 100644 index 00000000..99f5f0c5 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_009.txt @@ -0,0 +1,11 @@ +10 +33333 11111 +66666 0 +99999 -11111 +133332 -22222 +166665 -33333 +199998 -44444 +233331 -55555 +266664 -66666 +299997 -77777 +333330 -88888
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_010.txt b/src/boost/libs/polygon/example/input_data/primary/primary_010.txt new file mode 100644 index 00000000..4dbbd936 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_010.txt @@ -0,0 +1,4 @@ +3 +0 0 +2005 2005 +10025 10025
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_011.txt b/src/boost/libs/polygon/example/input_data/primary/primary_011.txt new file mode 100644 index 00000000..2573f612 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_011.txt @@ -0,0 +1,4 @@ +3 +0 0 +0 4 +1 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_012.txt b/src/boost/libs/polygon/example/input_data/primary/primary_012.txt new file mode 100644 index 00000000..a14a3f91 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_012.txt @@ -0,0 +1,5 @@ +4 +0 0 +0 1 +1 0 +1 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_013.txt b/src/boost/libs/polygon/example/input_data/primary/primary_013.txt new file mode 100644 index 00000000..494c527c --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_013.txt @@ -0,0 +1,14 @@ +13 +0 5 +0 -5 +-4 -3 +4 -3 +4 3 +-4 3 +3 -4 +-3 4 +-3 -4 +3 4 +-5 0 +5 0 +0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_014.txt b/src/boost/libs/polygon/example/input_data/primary/primary_014.txt new file mode 100644 index 00000000..72b1accd --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_014.txt @@ -0,0 +1,13 @@ +12 +0 5 +0 -5 +-4 -3 +4 -3 +4 3 +-4 3 +3 -4 +-3 4 +-3 -4 +3 4 +-5 0 +5 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_015.txt b/src/boost/libs/polygon/example/input_data/primary/primary_015.txt new file mode 100644 index 00000000..f228af2a --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_015.txt @@ -0,0 +1,5 @@ +4 +4 3 +4 8 +9 2 +9 9
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_016.txt b/src/boost/libs/polygon/example/input_data/primary/primary_016.txt new file mode 100644 index 00000000..4deb8868 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_016.txt @@ -0,0 +1,101 @@ +100 +100 0 +99 6 +99 12 +98 18 +96 24 +95 30 +92 36 +90 42 +87 48 +84 53 +80 58 +77 63 +72 68 +68 72 +63 77 +58 80 +53 84 +48 87 +42 90 +36 92 +30 95 +24 96 +18 98 +12 99 +6 99 +0 99 +-6 99 +-12 99 +-18 98 +-24 96 +-30 95 +-36 93 +-42 90 +-48 87 +-53 84 +-58 80 +-63 77 +-68 72 +-72 68 +-76 63 +-80 58 +-84 53 +-87 48 +-90 42 +-92 36 +-95 31 +-96 25 +-98 18 +-99 12 +-99 6 +-99 0 +-99 -6 +-99 -12 +-98 -18 +-96 -24 +-95 -30 +-93 -36 +-90 -42 +-87 -48 +-84 -53 +-81 -58 +-77 -63 +-73 -68 +-68 -72 +-63 -76 +-58 -80 +-53 -84 +-48 -87 +-42 -90 +-37 -92 +-31 -95 +-25 -96 +-18 -98 +-12 -99 +-6 -99 +0 -99 +6 -99 +12 -99 +18 -98 +24 -96 +30 -95 +36 -93 +42 -90 +47 -87 +53 -84 +58 -81 +63 -77 +68 -73 +72 -68 +76 -63 +80 -59 +84 -53 +87 -48 +90 -42 +92 -37 +95 -31 +96 -25 +98 -19 +99 -12 +99 -6
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_017.txt b/src/boost/libs/polygon/example/input_data/primary/primary_017.txt new file mode 100644 index 00000000..57e3cccd --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_017.txt @@ -0,0 +1,3 @@ +0 +1 +0 0 1 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_018.txt b/src/boost/libs/polygon/example/input_data/primary/primary_018.txt new file mode 100644 index 00000000..013611c3 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_018.txt @@ -0,0 +1,6 @@ +2 +3 1 +1 3 +1 +0 0 +4 4
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_019.txt b/src/boost/libs/polygon/example/input_data/primary/primary_019.txt new file mode 100644 index 00000000..4068a329 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_019.txt @@ -0,0 +1,5 @@ +2 +3 2 +2 3 +1 +4 0 0 4
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_020.txt b/src/boost/libs/polygon/example/input_data/primary/primary_020.txt new file mode 100644 index 00000000..c1e81b4b --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_020.txt @@ -0,0 +1,7 @@ +3 +-2 -2 +-2 4 +-2 10 +1 +0 0 +0 8
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_021.txt b/src/boost/libs/polygon/example/input_data/primary/primary_021.txt new file mode 100644 index 00000000..c4212531 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_021.txt @@ -0,0 +1,4 @@ +1 +-1 1 +1 +1 0 1 2
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_022.txt b/src/boost/libs/polygon/example/input_data/primary/primary_022.txt new file mode 100644 index 00000000..07849421 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_022.txt @@ -0,0 +1,5 @@ +0 +3 +0 0 4 0 +4 0 0 4 +0 4 4 4
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_023.txt b/src/boost/libs/polygon/example/input_data/primary/primary_023.txt new file mode 100644 index 00000000..75cb14a6 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_023.txt @@ -0,0 +1,6 @@ +0 +4 +0 0 4 0 +4 0 4 4 +4 4 0 4 +0 4 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_024.txt b/src/boost/libs/polygon/example/input_data/primary/primary_024.txt new file mode 100644 index 00000000..66ac2d8b --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_024.txt @@ -0,0 +1,4 @@ +0 +2 +0 0 4 0 +2 2 2 4
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_025.txt b/src/boost/libs/polygon/example/input_data/primary/primary_025.txt new file mode 100644 index 00000000..a6eeea27 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_025.txt @@ -0,0 +1,5 @@ +1 +5 6 +2 +0 0 4 0 +2 2 2 4
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_026.txt b/src/boost/libs/polygon/example/input_data/primary/primary_026.txt new file mode 100644 index 00000000..834264e3 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_026.txt @@ -0,0 +1,6 @@ +2 +0 0 +1 6 +2 +-4 5 5 -1 +3 -11 13 -1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_027.txt b/src/boost/libs/polygon/example/input_data/primary/primary_027.txt new file mode 100644 index 00000000..710e8a8c --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_027.txt @@ -0,0 +1,12 @@ +2 +0 0 +1 6 +8 +-6 5 2 -7 +3 -11 13 -1 +-4 5 5 -1 +4 4 11 4 +4 4 8 10 +11 4 8 10 +8 10 5 13 +8 10 11 13
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_028.txt b/src/boost/libs/polygon/example/input_data/primary/primary_028.txt new file mode 100644 index 00000000..1ed194d6 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_028.txt @@ -0,0 +1,5 @@ +0 +3 +0 0 4 2 +4 2 4 -2 +4 -2 0 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_029.txt b/src/boost/libs/polygon/example/input_data/primary/primary_029.txt new file mode 100644 index 00000000..3ca79ed6 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_029.txt @@ -0,0 +1,10 @@ +0 +8 +0 0 0 1 +0 0 1 0 +0 0 -1 0 +0 0 0 -1 +0 0 1 1 +0 0 1 -1 +0 0 -1 1 +0 0 -1 -1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_030.txt b/src/boost/libs/polygon/example/input_data/primary/primary_030.txt new file mode 100644 index 00000000..fde6cac2 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_030.txt @@ -0,0 +1,14 @@ +0 +12 +-1 10 1 10 +10 -1 10 1 +-1 -10 1 -10 +-10 -1 -10 1 +-6 8 -2 11 +-8 6 -11 2 +6 8 2 11 +8 6 11 2 +6 -8 2 -11 +8 -6 11 -2 +-6 -8 -2 -11 +-8 -6 -11 -2
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_031.txt b/src/boost/libs/polygon/example/input_data/primary/primary_031.txt new file mode 100644 index 00000000..d60d5cee --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_031.txt @@ -0,0 +1,15 @@ +1 +0 0 +12 +-1 10 1 10 +10 -1 10 1 +-1 -10 1 -10 +-10 -1 -10 1 +-6 8 -2 11 +-8 6 -11 2 +6 8 2 11 +8 6 11 2 +6 -8 2 -11 +8 -6 11 -2 +-6 -8 -2 -11 +-8 -6 -11 -2
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_032.txt b/src/boost/libs/polygon/example/input_data/primary/primary_032.txt new file mode 100644 index 00000000..40617faa --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_032.txt @@ -0,0 +1,6 @@ +3 +0 -4 +2 8 +-16 15 +1 +7 20 7 -20 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_033.txt b/src/boost/libs/polygon/example/input_data/primary/primary_033.txt new file mode 100644 index 00000000..65514eed --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_033.txt @@ -0,0 +1,7 @@ +4 +-6 6 +-5 6 +-4 6 +-3 6 +1 +0 0 0 7
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_034.txt b/src/boost/libs/polygon/example/input_data/primary/primary_034.txt new file mode 100644 index 00000000..d4e0b97d --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_034.txt @@ -0,0 +1,6 @@ +0 +4 +0 -4 2 8 +2 8 -16 15 +0 -4 -16 15 +7 20 7 -20 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_035.txt b/src/boost/libs/polygon/example/input_data/primary/primary_035.txt new file mode 100644 index 00000000..dce66e78 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_035.txt @@ -0,0 +1,22 @@ +0 +20 +100 0 95 30 +95 30 80 58 +80 58 58 80 +58 80 30 95 +30 95 0 99 +0 99 -30 95 +-30 95 -58 80 +-58 80 -80 58 +-80 58 -95 30 +-95 30 -99 0 +-99 0 -95 -30 +-95 -30 -80 -58 +-80 -58 -58 -80 +-58 -80 -30 -95 +-30 -95 0 -99 +0 -99 30 -95 +30 -95 58 -80 +58 -80 80 -58 +80 -58 95 -30 +95 -30 100 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_036.txt b/src/boost/libs/polygon/example/input_data/primary/primary_036.txt new file mode 100644 index 00000000..c73b72cd --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_036.txt @@ -0,0 +1,102 @@ +0 +100 +100 0 99 6 +99 6 99 12 +99 12 98 18 +98 18 96 24 +96 24 95 30 +95 30 92 36 +92 36 90 42 +90 42 87 48 +87 48 84 53 +84 53 80 58 +80 58 77 63 +77 63 72 68 +72 68 68 72 +68 72 63 77 +63 77 58 80 +58 80 53 84 +53 84 48 87 +48 87 42 90 +42 90 36 92 +36 92 30 95 +30 95 24 96 +24 96 18 98 +18 98 12 99 +12 99 6 99 +6 99 0 99 +0 99 -6 99 +-6 99 -12 99 +-12 99 -18 98 +-18 98 -24 96 +-24 96 -30 95 +-30 95 -36 92 +-36 92 -42 90 +-42 90 -48 87 +-48 87 -53 84 +-53 84 -58 80 +-58 80 -63 77 +-63 77 -68 72 +-68 72 -72 68 +-72 68 -77 63 +-77 63 -80 58 +-80 58 -84 53 +-84 53 -87 48 +-87 48 -90 42 +-90 42 -92 36 +-92 36 -95 30 +-95 30 -96 24 +-96 24 -98 18 +-98 18 -99 12 +-99 12 -99 6 +-99 6 -99 0 +-99 0 -99 -6 +-99 -6 -99 -12 +-99 -12 -98 -18 +-98 -18 -96 -24 +-96 -24 -95 -30 +-95 -30 -92 -36 +-92 -36 -90 -42 +-90 -42 -87 -48 +-87 -48 -84 -53 +-84 -53 -80 -58 +-80 -58 -77 -63 +-77 -63 -72 -68 +-72 -68 -68 -72 +-68 -72 -63 -77 +-63 -77 -58 -80 +-58 -80 -53 -84 +-53 -84 -48 -87 +-48 -87 -42 -90 +-42 -90 -36 -92 +-36 -92 -30 -95 +-30 -95 -24 -96 +-24 -96 -18 -98 +-18 -98 -12 -99 +-12 -99 -6 -99 +-6 -99 0 -99 +0 -99 6 -99 +6 -99 12 -99 +12 -99 18 -98 +18 -98 24 -96 +24 -96 30 -95 +30 -95 36 -92 +36 -92 42 -90 +42 -90 48 -87 +48 -87 53 -84 +53 -84 58 -80 +58 -80 63 -77 +63 -77 68 -72 +68 -72 72 -68 +72 -68 77 -63 +77 -63 80 -58 +80 -58 84 -53 +84 -53 87 -48 +87 -48 90 -42 +90 -42 92 -36 +92 -36 95 -30 +95 -30 96 -24 +96 -24 98 -18 +98 -18 99 -12 +99 -12 99 -6 +99 -6 100 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_037.txt b/src/boost/libs/polygon/example/input_data/primary/primary_037.txt new file mode 100644 index 00000000..552fee8e --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_037.txt @@ -0,0 +1,102 @@ +80 +99 6 +99 12 +98 18 +96 24 +92 36 +90 42 +87 48 +84 53 +77 63 +72 68 +68 72 +63 77 +53 84 +48 87 +42 90 +36 92 +24 96 +18 98 +12 99 +6 99 +-6 99 +-12 99 +-18 98 +-24 96 +-36 92 +-42 90 +-48 87 +-53 84 +-63 77 +-68 72 +-72 68 +-77 63 +-84 53 +-87 48 +-90 42 +-92 36 +-96 24 +-98 18 +-99 12 +-99 6 +-99 -6 +-99 -12 +-98 -18 +-96 -24 +-92 -36 +-90 -42 +-87 -48 +-84 -53 +-77 -63 +-72 -68 +-68 -72 +-63 -77 +-53 -84 +-48 -87 +-42 -90 +-36 -92 +-24 -96 +-18 -98 +-12 -99 +-6 -99 +6 -99 +12 -99 +18 -98 +24 -96 +36 -92 +42 -90 +48 -87 +53 -84 +63 -77 +68 -72 +72 -68 +77 -63 +84 -53 +87 -48 +90 -42 +92 -36 +96 -24 +98 -18 +99 -12 +99 -6 +20 +100 0 99 6 +95 30 92 36 +80 58 77 63 +58 80 53 84 +30 95 24 96 +0 99 -6 99 +-30 95 -36 92 +-58 80 -63 77 +-80 58 -84 53 +-95 30 -96 24 +-99 0 -99 -6 +-95 -30 -92 -36 +-80 -58 -77 -63 +-58 -80 -53 -84 +-30 -95 -24 -96 +0 -99 6 -99 +30 -95 36 -92 +58 -80 63 -77 +80 -58 84 -53 +95 -30 96 -24
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_038.txt b/src/boost/libs/polygon/example/input_data/primary/primary_038.txt new file mode 100644 index 00000000..66a50f70 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_038.txt @@ -0,0 +1,222 @@ +0 +220 +0 0 0 10 +0 0 10 0 +0 10 0 20 +0 10 10 10 +0 20 0 30 +0 20 10 20 +0 30 0 40 +0 30 10 30 +0 40 0 50 +0 40 10 40 +0 50 0 60 +0 50 10 50 +0 60 0 70 +0 60 10 60 +0 70 0 80 +0 70 10 70 +0 80 0 90 +0 80 10 80 +0 90 0 100 +0 90 10 90 +0 100 10 100 +10 0 10 10 +10 0 20 0 +10 10 10 20 +10 10 20 10 +10 20 10 30 +10 20 20 20 +10 30 10 40 +10 30 20 30 +10 40 10 50 +10 40 20 40 +10 50 10 60 +10 50 20 50 +10 60 10 70 +10 60 20 60 +10 70 10 80 +10 70 20 70 +10 80 10 90 +10 80 20 80 +10 90 10 100 +10 90 20 90 +10 100 20 100 +20 0 20 10 +20 0 30 0 +20 10 20 20 +20 10 30 10 +20 20 20 30 +20 20 30 20 +20 30 20 40 +20 30 30 30 +20 40 20 50 +20 40 30 40 +20 50 20 60 +20 50 30 50 +20 60 20 70 +20 60 30 60 +20 70 20 80 +20 70 30 70 +20 80 20 90 +20 80 30 80 +20 90 20 100 +20 90 30 90 +20 100 30 100 +30 0 30 10 +30 0 40 0 +30 10 30 20 +30 10 40 10 +30 20 30 30 +30 20 40 20 +30 30 30 40 +30 30 40 30 +30 40 30 50 +30 40 40 40 +30 50 30 60 +30 50 40 50 +30 60 30 70 +30 60 40 60 +30 70 30 80 +30 70 40 70 +30 80 30 90 +30 80 40 80 +30 90 30 100 +30 90 40 90 +30 100 40 100 +40 0 40 10 +40 0 50 0 +40 10 40 20 +40 10 50 10 +40 20 40 30 +40 20 50 20 +40 30 40 40 +40 30 50 30 +40 40 40 50 +40 40 50 40 +40 50 40 60 +40 50 50 50 +40 60 40 70 +40 60 50 60 +40 70 40 80 +40 70 50 70 +40 80 40 90 +40 80 50 80 +40 90 40 100 +40 90 50 90 +40 100 50 100 +50 0 50 10 +50 0 60 0 +50 10 50 20 +50 10 60 10 +50 20 50 30 +50 20 60 20 +50 30 50 40 +50 30 60 30 +50 40 50 50 +50 40 60 40 +50 50 50 60 +50 50 60 50 +50 60 50 70 +50 60 60 60 +50 70 50 80 +50 70 60 70 +50 80 50 90 +50 80 60 80 +50 90 50 100 +50 90 60 90 +50 100 60 100 +60 0 60 10 +60 0 70 0 +60 10 60 20 +60 10 70 10 +60 20 60 30 +60 20 70 20 +60 30 60 40 +60 30 70 30 +60 40 60 50 +60 40 70 40 +60 50 60 60 +60 50 70 50 +60 60 60 70 +60 60 70 60 +60 70 60 80 +60 70 70 70 +60 80 60 90 +60 80 70 80 +60 90 60 100 +60 90 70 90 +60 100 70 100 +70 0 70 10 +70 0 80 0 +70 10 70 20 +70 10 80 10 +70 20 70 30 +70 20 80 20 +70 30 70 40 +70 30 80 30 +70 40 70 50 +70 40 80 40 +70 50 70 60 +70 50 80 50 +70 60 70 70 +70 60 80 60 +70 70 70 80 +70 70 80 70 +70 80 70 90 +70 80 80 80 +70 90 70 100 +70 90 80 90 +70 100 80 100 +80 0 80 10 +80 0 90 0 +80 10 80 20 +80 10 90 10 +80 20 80 30 +80 20 90 20 +80 30 80 40 +80 30 90 30 +80 40 80 50 +80 40 90 40 +80 50 80 60 +80 50 90 50 +80 60 80 70 +80 60 90 60 +80 70 80 80 +80 70 90 70 +80 80 80 90 +80 80 90 80 +80 90 80 100 +80 90 90 90 +80 100 90 100 +90 0 90 10 +90 0 100 0 +90 10 90 20 +90 10 100 10 +90 20 90 30 +90 20 100 20 +90 30 90 40 +90 30 100 30 +90 40 90 50 +90 40 100 40 +90 50 90 60 +90 50 100 50 +90 60 90 70 +90 60 100 60 +90 70 90 80 +90 70 100 70 +90 80 90 90 +90 80 100 80 +90 90 90 100 +90 90 100 90 +90 100 100 100 +100 0 100 10 +100 10 100 20 +100 20 100 30 +100 30 100 40 +100 40 100 50 +100 50 100 60 +100 60 100 70 +100 70 100 80 +100 80 100 90 +100 90 100 100
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_039.txt b/src/boost/libs/polygon/example/input_data/primary/primary_039.txt new file mode 100644 index 00000000..ed187312 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_039.txt @@ -0,0 +1,322 @@ +100 +5 5 +5 15 +5 25 +5 35 +5 45 +5 55 +5 65 +5 75 +5 85 +5 95 +15 5 +15 15 +15 25 +15 35 +15 45 +15 55 +15 65 +15 75 +15 85 +15 95 +25 5 +25 15 +25 25 +25 35 +25 45 +25 55 +25 65 +25 75 +25 85 +25 95 +35 5 +35 15 +35 25 +35 35 +35 45 +35 55 +35 65 +35 75 +35 85 +35 95 +45 5 +45 15 +45 25 +45 35 +45 45 +45 55 +45 65 +45 75 +45 85 +45 95 +55 5 +55 15 +55 25 +55 35 +55 45 +55 55 +55 65 +55 75 +55 85 +55 95 +65 5 +65 15 +65 25 +65 35 +65 45 +65 55 +65 65 +65 75 +65 85 +65 95 +75 5 +75 15 +75 25 +75 35 +75 45 +75 55 +75 65 +75 75 +75 85 +75 95 +85 5 +85 15 +85 25 +85 35 +85 45 +85 55 +85 65 +85 75 +85 85 +85 95 +95 5 +95 15 +95 25 +95 35 +95 45 +95 55 +95 65 +95 75 +95 85 +95 95 +220 +0 0 0 10 +0 0 10 0 +0 10 0 20 +0 10 10 10 +0 20 0 30 +0 20 10 20 +0 30 0 40 +0 30 10 30 +0 40 0 50 +0 40 10 40 +0 50 0 60 +0 50 10 50 +0 60 0 70 +0 60 10 60 +0 70 0 80 +0 70 10 70 +0 80 0 90 +0 80 10 80 +0 90 0 100 +0 90 10 90 +0 100 10 100 +10 0 10 10 +10 0 20 0 +10 10 10 20 +10 10 20 10 +10 20 10 30 +10 20 20 20 +10 30 10 40 +10 30 20 30 +10 40 10 50 +10 40 20 40 +10 50 10 60 +10 50 20 50 +10 60 10 70 +10 60 20 60 +10 70 10 80 +10 70 20 70 +10 80 10 90 +10 80 20 80 +10 90 10 100 +10 90 20 90 +10 100 20 100 +20 0 20 10 +20 0 30 0 +20 10 20 20 +20 10 30 10 +20 20 20 30 +20 20 30 20 +20 30 20 40 +20 30 30 30 +20 40 20 50 +20 40 30 40 +20 50 20 60 +20 50 30 50 +20 60 20 70 +20 60 30 60 +20 70 20 80 +20 70 30 70 +20 80 20 90 +20 80 30 80 +20 90 20 100 +20 90 30 90 +20 100 30 100 +30 0 30 10 +30 0 40 0 +30 10 30 20 +30 10 40 10 +30 20 30 30 +30 20 40 20 +30 30 30 40 +30 30 40 30 +30 40 30 50 +30 40 40 40 +30 50 30 60 +30 50 40 50 +30 60 30 70 +30 60 40 60 +30 70 30 80 +30 70 40 70 +30 80 30 90 +30 80 40 80 +30 90 30 100 +30 90 40 90 +30 100 40 100 +40 0 40 10 +40 0 50 0 +40 10 40 20 +40 10 50 10 +40 20 40 30 +40 20 50 20 +40 30 40 40 +40 30 50 30 +40 40 40 50 +40 40 50 40 +40 50 40 60 +40 50 50 50 +40 60 40 70 +40 60 50 60 +40 70 40 80 +40 70 50 70 +40 80 40 90 +40 80 50 80 +40 90 40 100 +40 90 50 90 +40 100 50 100 +50 0 50 10 +50 0 60 0 +50 10 50 20 +50 10 60 10 +50 20 50 30 +50 20 60 20 +50 30 50 40 +50 30 60 30 +50 40 50 50 +50 40 60 40 +50 50 50 60 +50 50 60 50 +50 60 50 70 +50 60 60 60 +50 70 50 80 +50 70 60 70 +50 80 50 90 +50 80 60 80 +50 90 50 100 +50 90 60 90 +50 100 60 100 +60 0 60 10 +60 0 70 0 +60 10 60 20 +60 10 70 10 +60 20 60 30 +60 20 70 20 +60 30 60 40 +60 30 70 30 +60 40 60 50 +60 40 70 40 +60 50 60 60 +60 50 70 50 +60 60 60 70 +60 60 70 60 +60 70 60 80 +60 70 70 70 +60 80 60 90 +60 80 70 80 +60 90 60 100 +60 90 70 90 +60 100 70 100 +70 0 70 10 +70 0 80 0 +70 10 70 20 +70 10 80 10 +70 20 70 30 +70 20 80 20 +70 30 70 40 +70 30 80 30 +70 40 70 50 +70 40 80 40 +70 50 70 60 +70 50 80 50 +70 60 70 70 +70 60 80 60 +70 70 70 80 +70 70 80 70 +70 80 70 90 +70 80 80 80 +70 90 70 100 +70 90 80 90 +70 100 80 100 +80 0 80 10 +80 0 90 0 +80 10 80 20 +80 10 90 10 +80 20 80 30 +80 20 90 20 +80 30 80 40 +80 30 90 30 +80 40 80 50 +80 40 90 40 +80 50 80 60 +80 50 90 50 +80 60 80 70 +80 60 90 60 +80 70 80 80 +80 70 90 70 +80 80 80 90 +80 80 90 80 +80 90 80 100 +80 90 90 90 +80 100 90 100 +90 0 90 10 +90 0 100 0 +90 10 90 20 +90 10 100 10 +90 20 90 30 +90 20 100 20 +90 30 90 40 +90 30 100 30 +90 40 90 50 +90 40 100 40 +90 50 90 60 +90 50 100 50 +90 60 90 70 +90 60 100 60 +90 70 90 80 +90 70 100 70 +90 80 90 90 +90 80 100 80 +90 90 90 100 +90 90 100 90 +90 100 100 100 +100 0 100 10 +100 10 100 20 +100 20 100 30 +100 30 100 40 +100 40 100 50 +100 50 100 60 +100 60 100 70 +100 70 100 80 +100 80 100 90 +100 90 100 100
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_040.txt b/src/boost/libs/polygon/example/input_data/primary/primary_040.txt new file mode 100644 index 00000000..bf55be4f --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_040.txt @@ -0,0 +1,11 @@ +10 +858993458 1717986916 +-429496729 1288490187 +-2147483645 -1288490187 +-2147483645 -858993458 +-1717986916 858993458 +-2147483645 -429496729 +429496729 -2147483645 +858993458 -429496729 +-429496729 1717986916 +1717986916 -858993458
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_041.txt b/src/boost/libs/polygon/example/input_data/primary/primary_041.txt new file mode 100644 index 00000000..76ef90de --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_041.txt @@ -0,0 +1,8 @@ +0 +6 +0 0 0 10 +-5 0 -1 0 +-6 2 -1 2 +-4 5 -2 5 +-8 8 -1 8 +-7 -2 -7 7
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_042.txt b/src/boost/libs/polygon/example/input_data/primary/primary_042.txt new file mode 100644 index 00000000..57d7726d --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_042.txt @@ -0,0 +1,5 @@ +0 +3 +-6 -1 -5 3 +-1 0 4 -1 +3 0 4 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_043.txt b/src/boost/libs/polygon/example/input_data/primary/primary_043.txt new file mode 100644 index 00000000..ccddfcb6 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_043.txt @@ -0,0 +1,5 @@ +0 +3 +-5 -2 -4 2 +-5 3 -2 2 +-5 5 -2 2
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_044.txt b/src/boost/libs/polygon/example/input_data/primary/primary_044.txt new file mode 100644 index 00000000..b4cf7e03 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_044.txt @@ -0,0 +1,5 @@ +0 +3 +-9 -8 -4 -3 +-8 -3 -4 -3 +-2 7 -1 3
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_045.txt b/src/boost/libs/polygon/example/input_data/primary/primary_045.txt new file mode 100644 index 00000000..74c4d69f --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_045.txt @@ -0,0 +1,5 @@ +0 +3 +14 76 38 29 +37 47 61 50 +39 37 41 35 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_046.txt b/src/boost/libs/polygon/example/input_data/primary/primary_046.txt new file mode 100644 index 00000000..5ff83ebc --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_046.txt @@ -0,0 +1,5 @@ +2 +2 -5 +3 -3 +1 +0 0 2 -7
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_047.txt b/src/boost/libs/polygon/example/input_data/primary/primary_047.txt new file mode 100644 index 00000000..bd8f67cf --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_047.txt @@ -0,0 +1,5 @@ +1 +-35 -49 +2 +-48 -29 -46 -78 +-46 -46 -45 -42
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_048.txt b/src/boost/libs/polygon/example/input_data/primary/primary_048.txt new file mode 100644 index 00000000..d93dfb4c --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_048.txt @@ -0,0 +1,11 @@ +0 +9 +-50 -29 -49 -73 +-48 -29 -46 -78 +-46 -46 -45 -42 +-35 -49 -34 -49 +-30 -2 -29 3 +-43 16 -40 6 +-36 38 -34 49 +-35 39 -31 37 +-28 34 -27 -9
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_049.txt b/src/boost/libs/polygon/example/input_data/primary/primary_049.txt new file mode 100644 index 00000000..a8b85366 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_049.txt @@ -0,0 +1,11 @@ +0 +9 +-5 4 -7 8 +-5 4 -5 2 +-5 4 -2 7 +-1 -6 -5 -2 +-1 -6 -3 -10 +-1 -6 5 -6 +5 -1 5 -4 +5 -1 3 4 +5 -1 8 6
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_050.txt b/src/boost/libs/polygon/example/input_data/primary/primary_050.txt new file mode 100644 index 00000000..7de80dee --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_050.txt @@ -0,0 +1,5 @@ +0 4 +2134582590 2134582590 2134582590 2141031480 +2134582590 2134582590 2141031480 2134582590 +2141031480 2134582590 2141031480 2141031480 +2134582590 2141031480 2141031480 2141031480
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_051.txt b/src/boost/libs/polygon/example/input_data/primary/primary_051.txt new file mode 100644 index 00000000..61eb7d56 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_051.txt @@ -0,0 +1,5 @@ +0 4 +-1073741800 -1073741800 -687194752 -1159641144 +-1073741800 -1073741800 -408021884 -923417948 +-1073741800 -1073741800 -343597376 -2061584256 +-2147483600 -837518604 -1073741800 -1073741800
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_052.txt b/src/boost/libs/polygon/example/input_data/primary/primary_052.txt new file mode 100644 index 00000000..877def64 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_052.txt @@ -0,0 +1,5 @@ +0 +3 +0 0 0 -1 +0 0 1 1 +0 0 1 -1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_053.txt b/src/boost/libs/polygon/example/input_data/primary/primary_053.txt new file mode 100644 index 00000000..8beb1d51 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_053.txt @@ -0,0 +1,5 @@ +2 +1 0 +0 10 +1 +-2 10 -1 0
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_054.txt b/src/boost/libs/polygon/example/input_data/primary/primary_054.txt new file mode 100644 index 00000000..4ef0f59a --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_054.txt @@ -0,0 +1,4 @@ +0 3 +-1073741800 -1073741800 -687194752 -1159641144 +-1073741800 -1073741800 -408021884 -923417948 +-1073741800 -1073741800 -343597376 -2061584256
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_055.txt b/src/boost/libs/polygon/example/input_data/primary/primary_055.txt new file mode 100644 index 00000000..9f01d2fb --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_055.txt @@ -0,0 +1,5 @@ +0 +3 +-3 -4 -1 -2 +-2 4 4 -1 +0 -2 0 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_056.txt b/src/boost/libs/polygon/example/input_data/primary/primary_056.txt new file mode 100644 index 00000000..886f56df --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_056.txt @@ -0,0 +1,5 @@ +1 +9 72 +2 +-2 0 -1 -50 +-1 -50 0 -99
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_057.txt b/src/boost/libs/polygon/example/input_data/primary/primary_057.txt new file mode 100644 index 00000000..75aa2abc --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_057.txt @@ -0,0 +1,6 @@ +5 +-4 -4 +-6 0 +-2 2 +0 4 +-10 2
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_058.txt b/src/boost/libs/polygon/example/input_data/primary/primary_058.txt new file mode 100644 index 00000000..6b4eda52 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_058.txt @@ -0,0 +1,9 @@ +0 8 +644245092 214748364 858993456 214748364 +-644245092 -214748364 0 644245092 +-858993456 -214748364 -429496728 -644245092 +0 644245092 -214748364 644245092 +644245092 644245092 0 644245092 +858993456 858993456 644245092 644245092 +644245092 214748364 644245092 644245092 +858993456 214748364 644245092 214748364 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_059.txt b/src/boost/libs/polygon/example/input_data/primary/primary_059.txt new file mode 100644 index 00000000..df514ff5 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_059.txt @@ -0,0 +1,12 @@ +0 11 +214748364 -214748364 1073741820 -1073741820 +-858993456 -214748364 -858993456 0 +-214748364 -644245092 -858993456 -214748364 +0 -644245092 -214748364 -644245092 +214748364 -644245092 0 -644245092 +-858993456 0 -858993456 -214748364 +-644245092 214748364 -858993456 0 +-214748364 214748364 -214748364 0 +-214748364 0 429496728 0 +-214748364 0 -214748364 -644245092 +-214748364 -644245092 0 -644245092 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_060.txt b/src/boost/libs/polygon/example/input_data/primary/primary_060.txt new file mode 100644 index 00000000..08389494 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_060.txt @@ -0,0 +1,12 @@ +0 11 +1 -1 5 -5 +-4 -1 -4 0 +-1 -3 -4 -1 +0 -3 -1 -3 +1 -3 0 -3 +-4 0 -4 -1 +-3 1 -4 0 +-1 1 -1 0 +-1 0 2 0 +-1 0 -1 -3 +-1 -3 0 -3 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_061.txt b/src/boost/libs/polygon/example/input_data/primary/primary_061.txt new file mode 100644 index 00000000..eda3d149 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_061.txt @@ -0,0 +1,9 @@ +0 8 +-858993456 644245092 0 -429496728 +644245092 214748364 -214748364 214748364 +0 429496728 214748364 644245092 +214748364 644245092 429496728 644245092 +429496728 644245092 644245092 858993456 +-858993456 644245092 -429496728 214748364 +-429496728 644245092 214748364 644245092 +214748364 644245092 429496728 644245092 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_062.txt b/src/boost/libs/polygon/example/input_data/primary/primary_062.txt new file mode 100644 index 00000000..5e30486b --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_062.txt @@ -0,0 +1,4 @@ +0 3 +644245092 214748364 -214748364 214748364 +0 429496728 214748364 644245092 +-429496728 644245092 214748364 644245092 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_063.txt b/src/boost/libs/polygon/example/input_data/primary/primary_063.txt new file mode 100644 index 00000000..724c6d01 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_063.txt @@ -0,0 +1,4 @@ +0 +2 +-5 0 -1 -1 +-4 0 -6 3 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_064.txt b/src/boost/libs/polygon/example/input_data/primary/primary_064.txt new file mode 100644 index 00000000..29d933ab --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_064.txt @@ -0,0 +1,4 @@ +0 3 +-8 15 24 28 +-37 4 -39 36 +12 -30 44 8 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_065.txt b/src/boost/libs/polygon/example/input_data/primary/primary_065.txt new file mode 100644 index 00000000..1614082b --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_065.txt @@ -0,0 +1,89 @@ +0 +87 +-50061 -49176 -49997 -49195 +-50024 -49880 -49980 -49904 +-50001 -49559 -49983 -49632 +-49990 -49437 -49931 -49440 +-49971 -49300 -49894 -49240 +-49938 -49762 -49923 -49826 +-49938 -49133 -49864 -49064 +-49923 -49874 -49852 -49836 +-49897 -49640 -49866 -49683 +-49895 -49859 -49840 -49829 +-49889 -49210 -49828 -49159 +-49857 -49380 -49795 -49428 +-49841 -49551 -49836 -49502 +-49833 -49320 -49791 -49333 +-49828 -49707 -49779 -49627 +-49821 -49526 -49800 -49565 +-49817 -49714 -49729 -49752 +-49806 -49111 -49733 -49060 +-49796 -49803 -49787 -49787 +-49761 -49652 -49679 -49721 +-49756 -49266 -49727 -49249 +-49754 -49465 -49656 -49532 +-49740 -49146 -49706 -49152 +-49726 -49236 -49710 -49163 +-49717 -49215 -49617 -49303 +-49702 -49809 -49680 -49735 +-49702 -49370 -49678 -49415 +-49677 -49849 -49636 -49917 +-49641 -49057 -49560 -49083 +-49632 -49692 -49548 -49776 +-49627 -49640 -49627 -49572 +-49626 -49932 -49565 -49834 +-49605 -49426 -49547 -49466 +-49597 -49185 -49526 -49250 +-49542 -49652 -49454 -49751 +-49540 -49283 -49471 -49298 +-49537 -49845 -49500 -49927 +-49527 -49420 -49473 -49518 +-49519 -49092 -49483 -49162 +-49517 -49235 -49442 -49292 +-49511 -49972 -49504 -49938 +-49504 -49827 -49458 -49784 +-49494 -49323 -49485 -49413 +-49481 -49509 -49443 -49578 +-49461 -49606 -49427 -49598 +-49435 -49153 -49403 -49183 +-49419 -49762 -49376 -49792 +-49417 -49832 -49334 -49899 +-49408 -49887 -49398 -49973 +-49388 -49221 -49365 -49277 +-49381 -49444 -49374 -49522 +-49379 -49434 -49336 -49457 +-49373 -49220 -49367 -49171 +-49369 -49140 -49317 -49239 +-49367 -49538 -49291 -49562 +-49364 -49102 -49293 -49109 +-49346 -49652 -49332 -49605 +-49343 -49810 -49295 -49850 +-49337 -49198 -49292 -49238 +-49322 -49092 -49309 -49041 +-49317 -49349 -49315 -49396 +-49312 -49203 -49294 -49126 +-49297 -49988 -49256 -49977 +-49295 -49580 -49213 -49491 +-49291 -49641 -49278 -49656 +-49286 -49601 -49250 -49672 +-49283 -49914 -49281 -49847 +-49281 -49590 -49250 -49601 +-49273 -49379 -49232 -49312 +-49257 -49616 -49231 -49621 +-49245 -49884 -49202 -49841 +-49234 -49059 -49156 -49135 +-49225 -49336 -49164 -49360 +-49207 -49354 -49204 -49372 +-49188 -49136 -49160 -49168 +-49171 -49946 -49108 -49855 +-49169 -49415 -49101 -49453 +-49158 -49164 -49136 -49122 +-49130 -49925 -49097 -49841 +-49127 -49675 -49047 -49676 +-49109 -49435 -49011 -49528 +-49104 -49909 -49084 -49859 +-49082 -49602 -48992 -49566 +-49073 -49130 -49002 -49081 +-49064 -49936 -49025 -49978 +-49044 -49020 -49028 -49012 +-49010 -49234 -48949 -49210 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_066.txt b/src/boost/libs/polygon/example/input_data/primary/primary_066.txt new file mode 100644 index 00000000..45f9dd36 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_066.txt @@ -0,0 +1,195 @@ +0 +193 +-50004 -49132 -49976 -49143 +-50000 -49669 -49975 -49629 +-49998 -49048 -49946 -49035 +-49992 -49789 -49931 -49697 +-49987 -49783 -49900 -49859 +-49986 -49922 -49973 -49927 +-49986 -49478 -49972 -49515 +-49984 -49089 -49938 -49107 +-49983 -49675 -49963 -49734 +-49975 -49538 -49940 -49498 +-49971 -49867 -49918 -49886 +-49964 -49980 -49952 -50034 +-49952 -49566 -49904 -49592 +-49952 -49236 -49859 -49215 +-49945 -49509 -49921 -49460 +-49941 -49836 -49865 -49921 +-49940 -49321 -49932 -49403 +-49933 -49797 -49837 -49806 +-49929 -49381 -49858 -49388 +-49928 -49608 -49872 -49696 +-49927 -49805 -49902 -49825 +-49909 -49026 -49858 -48938 +-49898 -49229 -49851 -49251 +-49895 -49633 -49808 -49721 +-49886 -49687 -49837 -49759 +-49878 -49348 -49846 -49395 +-49875 -49084 -49837 -49109 +-49861 -49927 -49842 -49904 +-49857 -49151 -49830 -49181 +-49856 -49372 -49846 -49393 +-49855 -49515 -49784 -49607 +-49851 -49037 -49844 -49073 +-49845 -49220 -49790 -49301 +-49838 -49482 -49826 -49430 +-49836 -49490 -49770 -49397 +-49829 -49370 -49738 -49326 +-49805 -49616 -49781 -49647 +-49802 -49947 -49754 -49975 +-49802 -49824 -49782 -49751 +-49800 -49734 -49712 -49767 +-49795 -49462 -49730 -49430 +-49788 -49139 -49728 -49156 +-49786 -49538 -49747 -49514 +-49783 -49261 -49742 -49187 +-49775 -49133 -49752 -49051 +-49772 -49826 -49770 -49755 +-49770 -49737 -49715 -49701 +-49768 -49969 -49737 -49988 +-49768 -49289 -49708 -49270 +-49756 -49890 -49745 -49906 +-49732 -50045 -49659 -49957 +-49726 -49961 -49689 -49933 +-49725 -49584 -49701 -49520 +-49717 -49454 -49665 -49408 +-49713 -49620 -49696 -49597 +-49705 -49300 -49688 -49280 +-49702 -48946 -49619 -49011 +-49701 -49797 -49672 -49733 +-49699 -49730 -49640 -49673 +-49696 -49538 -49668 -49562 +-49695 -49454 -49644 -49509 +-49683 -49845 -49613 -49847 +-49676 -49455 -49614 -49455 +-49676 -49165 -49665 -49131 +-49669 -49436 -49618 -49397 +-49667 -49273 -49611 -49341 +-49664 -49941 -49644 -49853 +-49655 -49426 -49593 -49405 +-49650 -49039 -49592 -48996 +-49645 -49762 -49558 -49819 +-49642 -49918 -49629 -49925 +-49638 -49409 -49582 -49328 +-49636 -49743 -49559 -49805 +-49629 -49529 -49549 -49487 +-49627 -49096 -49577 -49054 +-49626 -49940 -49562 -50025 +-49612 -49466 -49574 -49398 +-49606 -49583 -49532 -49633 +-49606 -49288 -49556 -49356 +-49600 -49856 -49556 -49907 +-49594 -49166 -49546 -49148 +-49593 -49160 -49557 -49119 +-49586 -49533 -49534 -49534 +-49576 -49655 -49527 -49733 +-49571 -49468 -49564 -49410 +-49555 -49534 -49505 -49544 +-49555 -49314 -49503 -49289 +-49547 -49413 -49535 -49473 +-49543 -49984 -49462 -49886 +-49537 -49835 -49489 -49866 +-49536 -49256 -49515 -49237 +-49530 -49940 -49503 -49875 +-49510 -49342 -49485 -49366 +-49505 -49287 -49455 -49308 +-49499 -49909 -49475 -49880 +-49499 -49648 -49486 -49612 +-49489 -49785 -49482 -49851 +-49488 -49690 -49469 -49624 +-49484 -49727 -49441 -49650 +-49477 -49146 -49461 -49149 +-49474 -49433 -49401 -49411 +-49471 -49873 -49451 -49780 +-49471 -49725 -49415 -49775 +-49460 -49998 -49361 -49980 +-49458 -49621 -49448 -49561 +-49448 -49432 -49420 -49438 +-49443 -49942 -49353 -49975 +-49441 -49662 -49360 -49721 +-49439 -49313 -49375 -49361 +-49438 -49826 -49378 -49771 +-49437 -49884 -49427 -49849 +-49432 -49713 -49416 -49748 +-49423 -49035 -49363 -48938 +-49411 -49201 -49312 -49232 +-49410 -49095 -49399 -49034 +-49399 -49547 -49342 -49497 +-49399 -49230 -49390 -49259 +-49394 -49445 -49361 -49429 +-49393 -49615 -49360 -49660 +-49392 -49185 -49371 -49185 +-49392 -49020 -49390 -49005 +-49369 -49816 -49324 -49864 +-49368 -49828 -49342 -49845 +-49355 -50082 -49274 -49996 +-49354 -49414 -49270 -49512 +-49350 -49378 -49324 -49448 +-49349 -49027 -49317 -49012 +-49345 -49337 -49315 -49263 +-49344 -49983 -49278 -49977 +-49341 -49596 -49321 -49518 +-49338 -49054 -49329 -49121 +-49337 -49788 -49267 -49727 +-49333 -49258 -49320 -49275 +-49329 -49596 -49276 -49520 +-49325 -49228 -49232 -49257 +-49316 -49037 -49266 -49136 +-49313 -49612 -49267 -49604 +-49310 -49276 -49305 -49362 +-49306 -49704 -49294 -49652 +-49302 -49872 -49216 -49849 +-49286 -49089 -49225 -49139 +-49284 -49119 -49278 -49117 +-49276 -49306 -49209 -49406 +-49271 -49927 -49196 -49833 +-49264 -49696 -49176 -49674 +-49253 -49909 -49245 -49992 +-49252 -49804 -49161 -49822 +-49251 -49757 -49177 -49747 +-49249 -49603 -49150 -49595 +-49239 -49989 -49200 -49929 +-49239 -49202 -49205 -49178 +-49233 -49713 -49169 -49751 +-49225 -49327 -49210 -49359 +-49223 -49037 -49158 -48993 +-49219 -49243 -49181 -49336 +-49212 -49235 -49199 -49267 +-49211 -49912 -49138 -49959 +-49210 -49462 -49123 -49497 +-49206 -49814 -49151 -49905 +-49201 -49527 -49188 -49481 +-49190 -49120 -49173 -49206 +-49178 -49656 -49174 -49598 +-49172 -49616 -49110 -49600 +-49164 -49673 -49157 -49768 +-49161 -49414 -49096 -49406 +-49159 -49013 -49077 -49078 +-49154 -49000 -49086 -49047 +-49151 -49787 -49151 -49693 +-49143 -49651 -49123 -49683 +-49141 -49982 -49100 -49949 +-49138 -49607 -49117 -49583 +-49128 -49565 -49115 -49499 +-49123 -49412 -49040 -49426 +-49121 -49732 -49103 -49690 +-49117 -49724 -49102 -49688 +-49114 -49206 -49075 -49124 +-49110 -49937 -49030 -49889 +-49109 -49215 -49071 -49305 +-49092 -49527 -49056 -49604 +-49091 -49133 -49057 -49070 +-49089 -49036 -49022 -49076 +-49079 -49254 -49019 -49331 +-49077 -49768 -49042 -49804 +-49060 -49611 -49029 -49677 +-49060 -49083 -49052 -49170 +-49054 -49751 -49041 -49789 +-49047 -49846 -48991 -49882 +-49045 -49567 -48976 -49528 +-49043 -49787 -49000 -49864 +-49038 -49415 -49028 -49463 +-49033 -49721 -48973 -49756 +-49009 -49823 -48919 -49827 +-49008 -49022 -48959 -49051 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_067.txt b/src/boost/libs/polygon/example/input_data/primary/primary_067.txt new file mode 100644 index 00000000..0278f75b --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_067.txt @@ -0,0 +1,193 @@ +0 +191 +-50042 -49987 -49958 -49945 +-50038 -49880 -49984 -49840 +-50037 -49252 -49945 -49166 +-50037 -49056 -49996 -49148 +-50032 -49217 -49997 -49201 +-50026 -49270 -49960 -49312 +-50015 -49525 -49981 -49615 +-49999 -49338 -49906 -49318 +-49987 -49179 -49967 -49165 +-49979 -49752 -49915 -49671 +-49969 -49530 -49933 -49592 +-49951 -49784 -49879 -49749 +-49951 -49221 -49901 -49194 +-49946 -49228 -49884 -49303 +-49945 -49017 -49892 -49044 +-49942 -49455 -49940 -49549 +-49935 -49727 -49867 -49646 +-49935 -49357 -49857 -49444 +-49929 -49561 -49868 -49576 +-49927 -49909 -49877 -49866 +-49917 -49237 -49913 -49230 +-49914 -49291 -49888 -49357 +-49911 -49876 -49902 -49845 +-49898 -49977 -49854 -49895 +-49898 -49495 -49817 -49490 +-49894 -50000 -49824 -50069 +-49893 -49680 -49865 -49692 +-49882 -49217 -49795 -49150 +-49873 -49323 -49831 -49278 +-49865 -49067 -49777 -49100 +-49859 -49115 -49822 -49170 +-49856 -49764 -49847 -49787 +-49855 -49475 -49796 -49446 +-49847 -49503 -49826 -49601 +-49847 -49227 -49774 -49288 +-49838 -49679 -49810 -49646 +-49821 -49704 -49807 -49760 +-49818 -49528 -49797 -49532 +-49812 -49585 -49753 -49537 +-49805 -49866 -49749 -49911 +-49803 -49243 -49742 -49282 +-49795 -49351 -49763 -49446 +-49790 -49322 -49768 -49409 +-49788 -49759 -49766 -49695 +-49780 -49048 -49765 -49147 +-49773 -49459 -49741 -49530 +-49764 -49068 -49746 -49104 +-49762 -49163 -49758 -49119 +-49760 -49208 -49715 -49126 +-49756 -49583 -49713 -49539 +-49754 -49728 -49690 -49715 +-49752 -49643 -49686 -49622 +-49748 -49983 -49653 -49989 +-49735 -49490 -49710 -49475 +-49733 -49426 -49649 -49404 +-49730 -49073 -49701 -49052 +-49727 -49005 -49681 -48996 +-49722 -49757 -49687 -49773 +-49702 -49179 -49668 -49222 +-49701 -49141 -49666 -49086 +-49698 -49353 -49683 -49290 +-49696 -49526 -49669 -49525 +-49692 -49988 -49637 -50061 +-49691 -49859 -49676 -49844 +-49690 -49445 -49637 -49414 +-49682 -49552 -49675 -49610 +-49679 -49853 -49671 -49918 +-49677 -49383 -49616 -49389 +-49673 -49827 -49666 -49784 +-49663 -49990 -49626 -50052 +-49661 -49742 -49639 -49842 +-49655 -49070 -49627 -48996 +-49650 -49495 -49585 -49491 +-49649 -49907 -49584 -49945 +-49645 -49253 -49640 -49189 +-49644 -49285 -49555 -49253 +-49643 -49740 -49592 -49686 +-49640 -49281 -49602 -49182 +-49630 -49389 -49536 -49479 +-49622 -49335 -49554 -49292 +-49619 -49538 -49606 -49522 +-49606 -49039 -49535 -49096 +-49602 -49383 -49599 -49328 +-49600 -49700 -49596 -49691 +-49599 -49612 -49531 -49514 +-49599 -49560 -49546 -49483 +-49592 -49206 -49563 -49198 +-49588 -49783 -49564 -49811 +-49575 -49789 -49486 -49772 +-49570 -49179 -49482 -49278 +-49557 -49225 -49506 -49269 +-49552 -49621 -49524 -49654 +-49540 -49058 -49532 -49085 +-49534 -49873 -49522 -49964 +-49532 -49626 -49502 -49607 +-49530 -49638 -49432 -49539 +-49527 -49420 -49478 -49505 +-49526 -49716 -49439 -49744 +-49508 -49372 -49498 -49454 +-49508 -49301 -49468 -49382 +-49507 -49275 -49459 -49371 +-49497 -49840 -49422 -49895 +-49494 -49252 -49451 -49251 +-49480 -49732 -49452 -49803 +-49472 -49036 -49460 -49129 +-49459 -49831 -49391 -49775 +-49456 -49427 -49390 -49409 +-49453 -49001 -49452 -48918 +-49441 -48971 -49380 -49025 +-49438 -49914 -49388 -49964 +-49430 -49525 -49342 -49457 +-49427 -49116 -49393 -49180 +-49424 -49378 -49339 -49293 +-49420 -49667 -49378 -49577 +-49419 -49208 -49392 -49286 +-49417 -49885 -49407 -49797 +-49417 -49327 -49345 -49285 +-49404 -49689 -49389 -49637 +-49399 -49430 -49320 -49375 +-49399 -49238 -49370 -49259 +-49394 -49946 -49367 -49866 +-49388 -49703 -49362 -49664 +-49385 -49785 -49311 -49789 +-49382 -49166 -49378 -49154 +-49375 -49211 -49344 -49286 +-49374 -49997 -49313 -50051 +-49367 -49941 -49348 -49969 +-49364 -49787 -49340 -49887 +-49359 -49232 -49315 -49203 +-49351 -49957 -49323 -49869 +-49349 -48969 -49303 -49026 +-49344 -49030 -49342 -49116 +-49333 -49248 -49326 -49316 +-49304 -49695 -49210 -49737 +-49301 -49643 -49244 -49656 +-49300 -49907 -49242 -49908 +-49295 -49272 -49231 -49194 +-49293 -49026 -49291 -48987 +-49290 -49992 -49244 -49950 +-49287 -49539 -49265 -49542 +-49278 -49142 -49261 -49117 +-49277 -49304 -49216 -49313 +-49272 -49800 -49251 -49769 +-49270 -49894 -49239 -49809 +-49269 -49397 -49196 -49319 +-49268 -49911 -49171 -49902 +-49257 -49050 -49208 -49086 +-49250 -49780 -49178 -49731 +-49239 -49113 -49166 -49120 +-49237 -49247 -49203 -49166 +-49230 -49019 -49194 -49061 +-49217 -49465 -49215 -49528 +-49213 -49605 -49116 -49548 +-49212 -49846 -49211 -49815 +-49209 -49912 -49171 -49955 +-49203 -49685 -49188 -49672 +-49203 -49234 -49147 -49333 +-49201 -49854 -49116 -49916 +-49200 -49087 -49190 -49045 +-49188 -49258 -49133 -49220 +-49179 -49615 -49150 -49581 +-49179 -49568 -49137 -49507 +-49168 -49326 -49114 -49385 +-49164 -50078 -49090 -49990 +-49164 -49498 -49157 -49409 +-49160 -49807 -49085 -49875 +-49158 -49601 -49136 -49624 +-49156 -49015 -49063 -49081 +-49155 -49894 -49135 -49907 +-49150 -49949 -49107 -49930 +-49150 -49143 -49147 -49210 +-49149 -49896 -49076 -49946 +-49147 -49219 -49094 -49155 +-49132 -49474 -49113 -49509 +-49129 -49400 -49052 -49347 +-49114 -49721 -49082 -49630 +-49113 -49663 -49106 -49585 +-49109 -49241 -49091 -49330 +-49107 -49230 -49067 -49179 +-49106 -49585 -49097 -49487 +-49104 -49006 -49077 -49043 +-49083 -49910 -49080 -49941 +-49069 -49028 -49010 -48971 +-49068 -49800 -49050 -49796 +-49045 -49223 -49029 -49273 +-49043 -49598 -48998 -49619 +-49037 -49738 -49031 -49678 +-49037 -49062 -49024 -49129 +-49033 -49407 -49023 -49483 +-49008 -49795 -48973 -49798 +-49003 -49428 -48993 -49376 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_068.txt b/src/boost/libs/polygon/example/input_data/primary/primary_068.txt new file mode 100644 index 00000000..0684c815 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_068.txt @@ -0,0 +1,98 @@ +0 +87 +-50021 -49808 -49940 -49833 +-50019 -49363 -49964 -49351 +-49963 -49703 -49912 -49721 +-49948 -49289 -49940 -49212 +-49916 -49137 -49870 -49141 +-49906 -49419 -49873 -49349 +-49903 -49328 -49899 -49307 +-49897 -49741 -49852 -49675 +-49895 -49638 -49828 -49568 +-49893 -49251 -49855 -49313 +-49871 -49502 -49801 -49551 +-49866 -49431 -49834 -49524 +-49861 -49122 -49812 -49030 +-49852 -49901 -49814 -49872 +-49815 -49601 -49716 -49652 +-49799 -49916 -49785 -49916 +-49766 -49501 -49745 -49523 +-49765 -49266 -49672 -49282 +-49763 -49207 -49681 -49170 +-49756 -49650 -49744 -49699 +-49748 -49703 -49663 -49657 +-49736 -49581 -49683 -49534 +-49736 -49463 -49700 -49534 +-49732 -49049 -49674 -49119 +-49722 -49992 -49694 -49963 +-49710 -49415 -49648 -49378 +-49710 -49298 -49670 -49339 +-49688 -49985 -49652 -50004 +-49684 -49416 -49634 -49459 +-49659 -49561 -49573 -49550 +-49654 -49211 -49613 -49161 +-49638 -49058 -49576 -49104 +-49624 -49012 -49543 -49051 +-49621 -49341 -49619 -49317 +-49608 -49406 -49593 -49379 +-49599 -49228 -49538 -49293 +-49598 -49634 -49527 -49534 +-49594 -49713 -49523 -49729 +-49586 -49735 -49580 -49724 +-49564 -49184 -49531 -49109 +-49560 -49651 -49528 -49579 +-49552 -49739 -49457 -49829 +-49549 -49938 -49543 -49953 +-49517 -49670 -49480 -49763 +-49508 -49076 -49493 -49008 +-49507 -49467 -49451 -49459 +-49478 -49308 -49439 -49383 +-49477 -48995 -49393 -49025 +-49468 -49237 -49401 -49183 +-49464 -49517 -49393 -49532 +-49453 -49670 -49395 -49751 +-49448 -49430 -49367 -49380 +-49434 -49371 -49403 -49302 +-49422 -49836 -49384 -49882 +-49408 -49095 -49396 -49110 +-49387 -49237 -49366 -49277 +-49368 -49766 -49365 -49777 +-49366 -49860 -49280 -49911 +-49359 -49526 -49355 -49554 +-49352 -49281 -49275 -49187 +-49346 -49424 -49327 -49370 +-49346 -48957 -49257 -49045 +-49344 -49529 -49311 -49595 +-49344 -49131 -49270 -49077 +-49331 -49505 -49276 -49470 +-49275 -49446 -49269 -49529 +-49274 -48994 -49239 -49083 +-49269 -49530 -49266 -49579 +-49268 -49916 -49229 -49923 +-49254 -49830 -49233 -49777 +-49214 -49820 -49168 -49806 +-49214 -49246 -49207 -49200 +-49209 -49470 -49159 -49503 +-49203 -49239 -49121 -49256 +-49186 -49302 -49156 -49306 +-49185 -49612 -49130 -49664 +-49158 -49718 -49100 -49653 +-49155 -49271 -49056 -49347 +-49138 -49437 -49061 -49374 +-49137 -49475 -49136 -49540 +-49126 -49059 -49069 -49056 +-49113 -49751 -49072 -49794 +-49102 -49977 -49024 -49998 +-49070 -49161 -49052 -49212 +-49053 -49902 -49030 -49948 +-49048 -49413 -49004 -49497 +-49021 -49751 -49015 -49668 +-49478.582149386399 -49780.216848801821 +-49394.596858638746 -49830.083115183246 +-49404.712650811380 -49872.695164891658 +-49392.218561523550 -49808.669479018703 +../../SOC_2010/sweepline/libs/sweepline/test/sweepline_test.cpp(703): error in "segment_random_test2<double>": check verify_output(test_output_small, NO_HALF_EDGE_INTERSECTIONS) == true failed [false != true] +-49478.582149386399 -49780.216848801821 +-49394.596858638746 -49830.083115183246 +-49404.712650811380 -49872.695164891658 +-49392.218561523550 -49808.669479018703 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_069.txt b/src/boost/libs/polygon/example/input_data/primary/primary_069.txt new file mode 100644 index 00000000..0fbf4bcb --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_069.txt @@ -0,0 +1,83 @@ +0 +81 +-50026 -49688 -49978 -49701 +-49998 -49860 -49969 -49782 +-49974 -49744 -49897 -49748 +-49972 -49661 -49971 -49727 +-49971 -49845 -49902 -49789 +-49967 -49338 -49934 -49244 +-49947 -49670 -49896 -49744 +-49939 -49502 -49885 -49564 +-49937 -49150 -49874 -49115 +-49930 -49608 -49885 -49665 +-49925 -48976 -49888 -49019 +-49919 -49430 -49851 -49399 +-49909 -49052 -49908 -49015 +-49902 -49341 -49895 -49344 +-49899 -49717 -49827 -49792 +-49878 -49284 -49790 -49223 +-49844 -49250 -49784 -49171 +-49792 -49805 -49708 -49872 +-49781 -49381 -49727 -49379 +-49772 -49162 -49702 -49126 +-49768 -49290 -49696 -49324 +-49764 -49266 -49705 -49194 +-49737 -49279 -49659 -49200 +-49701 -49846 -49640 -49812 +-49699 -49415 -49670 -49409 +-49694 -49710 -49670 -49623 +-49688 -49732 -49653 -49759 +-49682 -49014 -49675 -49030 +-49679 -49421 -49641 -49428 +-49671 -49124 -49659 -49117 +-49642 -49113 -49599 -49063 +-49639 -49409 -49547 -49439 +-49629 -49070 -49595 -49043 +-49616 -49830 -49532 -49887 +-49616 -49438 -49544 -49519 +-49615 -49093 -49574 -49097 +-49610 -49583 -49587 -49491 +-49608 -49736 -49550 -49812 +-49599 -49403 -49520 -49408 +-49588 -49924 -49576 -49918 +-49579 -50064 -49483 -49994 +-49559 -49800 -49506 -49870 +-49552 -49543 -49534 -49570 +-49541 -49937 -49469 -49920 +-49513 -49782 -49494 -49816 +-49509 -49996 -49472 -49955 +-49509 -49892 -49452 -49796 +-49482 -50051 -49468 -49972 +-49419 -49411 -49371 -49424 +-49411 -49494 -49328 -49567 +-49407 -49584 -49358 -49547 +-49399 -49236 -49341 -49168 +-49370 -49205 -49284 -49121 +-49364 -49032 -49355 -49119 +-49363 -49029 -49302 -49048 +-49340 -49544 -49242 -49472 +-49335 -49800 -49325 -49866 +-49334 -49786 -49282 -49798 +-49323 -49685 -49229 -49765 +-49311 -49777 -49247 -49789 +-49305 -49633 -49283 -49631 +-49300 -49574 -49261 -49601 +-49295 -49245 -49286 -49278 +-49275 -49861 -49223 -49778 +-49261 -49054 -49235 -49029 +-49260 -49355 -49228 -49436 +-49248 -49991 -49198 -49926 +-49236 -49618 -49152 -49637 +-49225 -50042 -49179 -49961 +-49190 -49250 -49108 -49308 +-49189 -49609 -49168 -49578 +-49164 -49936 -49133 -49922 +-49124 -49640 -49057 -49695 +-49117 -49169 -49041 -49213 +-49111 -49802 -49099 -49894 +-49105 -49697 -49053 -49738 +-49082 -49532 -49031 -49559 +-49063 -49321 -49007 -49234 +-49032 -49130 -48987 -49200 +-49025 -49437 -48988 -49427 +-49008 -49119 -48968 -49214 diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_070.txt b/src/boost/libs/polygon/example/input_data/primary/primary_070.txt new file mode 100644 index 00000000..df3e8f92 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_070.txt @@ -0,0 +1,5 @@ +1 +-49400 -49572 +2 +-49431 -49703 -49427 -49798 +-49427 -49798 -49423 -49892
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_071.txt b/src/boost/libs/polygon/example/input_data/primary/primary_071.txt new file mode 100644 index 00000000..a09a125c --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_071.txt @@ -0,0 +1,94 @@ +0 +90 +-50051 -49552 -49991 -49625 +-50042 -49515 -49976 -49442 +-50024 -49188 -49996 -49221 +-50007 -49191 -49933 -49159 +-50000 -49509 -49989 -49549 +-49991 -49047 -49950 -49120 +-49984 -49938 -49909 -49904 +-49959 -49631 -49908 -49568 +-49954 -49626 -49887 -49595 +-49949 -49320 -49859 -49414 +-49916 -49188 -49859 -49241 +-49906 -49611 -49830 -49675 +-49905 -49754 -49847 -49843 +-49892 -49327 -49848 -49239 +-49882 -49416 -49872 -49486 +-49871 -49640 -49797 -49703 +-49846 -49283 -49821 -49368 +-49767 -49927 -49707 -49928 +-49765 -49619 -49762 -49671 +-49764 -49476 -49721 -49531 +-49753 -49486 -49691 -49491 +-49738 -49590 -49712 -49679 +-49736 -49108 -49686 -49138 +-49736 -49008 -49671 -48932 +-49724 -49802 -49627 -49770 +-49717 -49691 -49694 -49699 +-49714 -49152 -49708 -49200 +-49707 -49875 -49621 -49790 +-49700 -49062 -49648 -49109 +-49684 -49680 -49611 -49740 +-49654 -49456 -49562 -49400 +-49611 -49270 -49584 -49339 +-49585 -49234 -49567 -49210 +-49578 -49012 -49527 -49080 +-49561 -49658 -49538 -49670 +-49536 -49144 -49445 -49082 +-49523 -49784 -49500 -49868 +-49509 -49742 -49424 -49733 +-49508 -49070 -49472 -49092 +-49490 -49176 -49439 -49082 +-49477 -49856 -49475 -49779 +-49467 -49051 -49446 -49014 +-49462 -49793 -49457 -49818 +-49460 -49642 -49381 -49620 +-49444 -49977 -49349 -50073 +-49444 -49973 -49396 -49915 +-49425 -49114 -49363 -49182 +-49424 -49002 -49351 -49096 +-49400 -49470 -49311 -49557 +-49392 -49631 -49324 -49704 +-49375 -49195 -49281 -49123 +-49361 -49096 -49314 -49143 +-49345 -49402 -49256 -49437 +-49339 -49476 -49298 -49437 +-49324 -49287 -49242 -49273 +-49290 -49579 -49252 -49548 +-49280 -49601 -49217 -49612 +-49268 -49108 -49169 -49112 +-49257 -49481 -49241 -49480 +-49248 -49521 -49233 -49580 +-49246 -49802 -49245 -49893 +-49236 -49292 -49205 -49336 +-49220 -49157 -49210 -49143 +-49209 -49367 -49171 -49405 +-49205 -49883 -49176 -49926 +-49204 -49128 -49131 -49099 +-49200 -49252 -49128 -49166 +-49194 -49507 -49189 -49496 +-49185 -49344 -49140 -49354 +-49183 -49895 -49144 -49867 +-49183 -49289 -49135 -49213 +-49177 -49192 -49168 -49158 +-49140 -49876 -49120 -49924 +-49140 -49855 -49116 -49874 +-49138 -49132 -49081 -49142 +-49127 -49293 -49090 -49363 +-49096 -49761 -49037 -49744 +-49096 -49101 -49081 -49093 +-49090 -49308 -49083 -49401 +-49086 -49605 -49074 -49539 +-49084 -49865 -49059 -49795 +-49084 -49124 -48989 -49171 +-49077 -49034 -49067 -49009 +-49069 -49979 -49067 -49965 +-49063 -49317 -49050 -49248 +-49036 -49851 -49002 -49942 +-49032 -49126 -49003 -49097 +-49025 -49181 -48951 -49179 +-49022 -49065 -48973 -49118 +-49018 -49876 -48988 -49875 +../../SOC_2010/sweepline/libs/sweepline/test/sweepline_test.cpp(723): error in "segment_random_test2<double>": check test_output_small.num_vertex_records() == test_output_large.num_vertex_records() failed [476 != 526] +../../SOC_2010/sweepline/libs/sweepline/test/sweepline_test.cpp(725): error in "segment_random_test2<double>": check test_output_small.num_edge_records() == test_output_large.num_edge_records() failed [734 != 795] diff --git a/src/boost/libs/polygon/example/input_data/primary/primary_072.txt b/src/boost/libs/polygon/example/input_data/primary/primary_072.txt new file mode 100644 index 00000000..a43fcf3a --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/primary/primary_072.txt @@ -0,0 +1,5 @@ +0 +3 +1403829871 74 1403829871 275 +1403829871 275 1403829741 275 +1403829741 275 1403829744 73
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/random/random_001.txt b/src/boost/libs/polygon/example/input_data/random/random_001.txt new file mode 100644 index 00000000..04742bb0 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_001.txt @@ -0,0 +1,11 @@ +10 +9 1 +4 3 +9 6 +9 8 +3 9 +6 8 +0 5 +9 5 +3 0 +2 1
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/random/random_002.txt b/src/boost/libs/polygon/example/input_data/random/random_002.txt new file mode 100644 index 00000000..72905d18 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_002.txt @@ -0,0 +1,11 @@ +10 +9 9 +2 6 +3 1 +6 4 +9 1 +9 7 +6 2 +2 4 +3 7 +6 7
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/random/random_003.txt b/src/boost/libs/polygon/example/input_data/random/random_003.txt new file mode 100644 index 00000000..395e24d5 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_003.txt @@ -0,0 +1,11 @@ +10 +4 1 +5 4 +5 5 +2 6 +3 4 +0 7 +2 5 +8 9 +0 4 +2 7
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/random/random_004.txt b/src/boost/libs/polygon/example/input_data/random/random_004.txt new file mode 100644 index 00000000..b287e932 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_004.txt @@ -0,0 +1,101 @@ +100 +29 76 +99 94 +74 20 +53 26 +95 55 +94 21 +50 70 +19 93 +31 30 +73 61 +87 23 +60 66 +51 29 +82 51 +74 40 +31 77 +1 82 +43 0 +58 67 +63 32 +19 90 +68 31 +49 63 +76 83 +72 20 +70 11 +80 23 +4 90 +32 56 +63 75 +51 71 +62 10 +80 57 +71 47 +2 8 +67 85 +64 72 +85 6 +53 91 +92 25 +95 79 +24 6 +1 10 +10 85 +11 30 +22 14 +48 55 +82 8 +14 54 +84 60 +33 91 +85 60 +65 81 +60 23 +10 44 +29 32 +21 11 +90 15 +73 71 +41 62 +9 36 +44 80 +27 39 +41 38 +25 23 +86 15 +4 76 +52 6 +39 97 +42 25 +93 93 +97 24 +13 16 +58 62 +48 78 +43 74 +99 85 +13 42 +8 82 +13 9 +51 50 +85 83 +30 11 +58 42 +44 32 +88 74 +37 21 +65 28 +79 94 +50 94 +38 83 +82 13 +30 88 +16 92 +73 66 +24 0 +40 82 +57 25 +55 88 +13 33
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/random/random_005.txt b/src/boost/libs/polygon/example/input_data/random/random_005.txt new file mode 100644 index 00000000..427ee9cf --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_005.txt @@ -0,0 +1,101 @@ +100 +-901943112 1116691472 +2104533928 1889785568 +1030792128 -1288490160 +128849016 -1030792128 +1932735240 214748360 +1889785568 -1245540488 +0 858993440 +-1331439832 1846835896 +-816043768 -858993440 +987842456 472446392 +1589137864 -1159641144 +429496720 687194752 +42949672 -901943112 +1374389504 42949672 +1030792128 -429496720 +-816043768 1159641144 +-2104533928 1374389504 +-300647704 -2147483600 +343597376 730144424 +558345736 -773094096 +-1331439832 1717986880 +773094096 -816043768 +-42949672 558345736 +1116691472 1417339176 +944892784 -1288490160 +858993440 -1675037208 +1288490160 -1159641144 +-1975684912 1717986880 +-773094096 257698032 +558345736 1073741800 +42949672 901943112 +515396064 -1717986880 +1288490160 300647704 +901943112 -128849016 +-2061584256 -1803886224 +730144424 1503238520 +601295408 944892784 +1503238520 -1889785568 +128849016 1760936552 +1803886224 -1073741800 +1932735240 1245540488 +-1116691472 -1889785568 +-2104533928 -1717986880 +-1717986880 1503238520 +-1675037208 -858993440 +-1202590816 -1546188192 +-85899344 214748360 +1374389504 -1803886224 +-1546188192 171798688 +1460288848 429496720 +-730144424 1760936552 +1503238520 429496720 +644245080 1331439832 +429496720 -1159641144 +-1717986880 -257698032 +-901943112 -773094096 +-1245540488 -1675037208 +1717986880 -1503238520 +987842456 901943112 +-386547048 515396064 +-1760936552 -601295408 +-257698032 1288490160 +-987842456 -472446392 +-386547048 -515396064 +-1073741800 -1159641144 +1546188192 -1503238520 +-1975684912 1116691472 +85899344 -1889785568 +-472446392 2018634584 +-343597376 -1073741800 +1846835896 1846835896 +2018634584 -1116691472 +-1589137864 -1460288848 +343597376 515396064 +-85899344 1202590816 +-300647704 1030792128 +2104533928 1503238520 +-1589137864 -343597376 +-1803886224 1374389504 +-1589137864 -1760936552 +42949672 0 +1503238520 1417339176 +-858993440 -1675037208 +343597376 -343597376 +-257698032 -773094096 +1632087536 1030792128 +-558345736 -1245540488 +644245080 -944892784 +1245540488 1889785568 +0 1889785568 +-515396064 1417339176 +1374389504 -1589137864 +-858993440 1632087536 +-1460288848 1803886224 +987842456 687194752 +-1116691472 -2147483600 +-429496720 1374389504 +300647704 -1073741800 +214748360 1632087536 +-1589137864 -730144424
\ No newline at end of file diff --git a/src/boost/libs/polygon/example/input_data/random/random_006.txt b/src/boost/libs/polygon/example/input_data/random/random_006.txt new file mode 100644 index 00000000..700f222b --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_006.txt @@ -0,0 +1,6 @@ +0 +4 +-27 -32 5 -21 +-18 41 27 9 +-17 -25 12 9 +27 0 40 -20 diff --git a/src/boost/libs/polygon/example/input_data/random/random_007.txt b/src/boost/libs/polygon/example/input_data/random/random_007.txt new file mode 100644 index 00000000..f4270e3e --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_007.txt @@ -0,0 +1,6 @@ +0 +4 +-48 10 -17 19 +-35 -30 -33 -2 +13 -45 18 46 +31 -14 47 18 diff --git a/src/boost/libs/polygon/example/input_data/random/random_008.txt b/src/boost/libs/polygon/example/input_data/random/random_008.txt new file mode 100644 index 00000000..5263a53f --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_008.txt @@ -0,0 +1,6 @@ +0 +4 +-34 7 -21 13 +-9 37 39 10 +7 21 26 -18 +8 45 47 22 diff --git a/src/boost/libs/polygon/example/input_data/random/random_009.txt b/src/boost/libs/polygon/example/input_data/random/random_009.txt new file mode 100644 index 00000000..b49d69d8 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_009.txt @@ -0,0 +1,7 @@ +0 +5 +-21 -9 -9 -34 +-20 1 11 43 +-3 -1 21 18 +34 -18 40 15 +47 43 48 -7 diff --git a/src/boost/libs/polygon/example/input_data/random/random_010.txt b/src/boost/libs/polygon/example/input_data/random/random_010.txt new file mode 100644 index 00000000..73e87f80 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_010.txt @@ -0,0 +1,5 @@ +0 +3 +-39 -43 -6 -22 +13 -21 33 38 +24 -42 42 43 diff --git a/src/boost/libs/polygon/example/input_data/random/random_011.txt b/src/boost/libs/polygon/example/input_data/random/random_011.txt new file mode 100644 index 00000000..178dfba3 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_011.txt @@ -0,0 +1,7 @@ +0 +5 +-22 -18 -13 -26 +-16 -36 23 -28 +-12 -11 6 19 +-4 -3 44 -30 +15 -5 47 17 diff --git a/src/boost/libs/polygon/example/input_data/random/random_012.txt b/src/boost/libs/polygon/example/input_data/random/random_012.txt new file mode 100644 index 00000000..c1959b73 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_012.txt @@ -0,0 +1,6 @@ +0 +4 +-27 -24 -20 -45 +-15 29 28 20 +-12 -36 19 -21 +1 -21 3 -1 diff --git a/src/boost/libs/polygon/example/input_data/random/random_013.txt b/src/boost/libs/polygon/example/input_data/random/random_013.txt new file mode 100644 index 00000000..e379eada --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_013.txt @@ -0,0 +1,6 @@ +0 +4 +-47 11 -25 -20 +-17 2 3 -46 +-13 29 32 -35 +25 -3 42 37 diff --git a/src/boost/libs/polygon/example/input_data/random/random_014.txt b/src/boost/libs/polygon/example/input_data/random/random_014.txt new file mode 100644 index 00000000..bb01d6d9 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_014.txt @@ -0,0 +1,7 @@ +0 +5 +-36 -8 -18 24 +-17 44 -2 18 +-16 -7 -9 -28 +-14 5 -2 -20 +31 42 33 36 diff --git a/src/boost/libs/polygon/example/input_data/random/random_015.txt b/src/boost/libs/polygon/example/input_data/random/random_015.txt new file mode 100644 index 00000000..0ae016b0 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_015.txt @@ -0,0 +1,5 @@ +0 +3 +-24 17 -19 -12 +-21 -40 3 -17 +28 1 38 -38 diff --git a/src/boost/libs/polygon/example/input_data/random/random_016.txt b/src/boost/libs/polygon/example/input_data/random/random_016.txt new file mode 100644 index 00000000..7c04741f --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_016.txt @@ -0,0 +1,8 @@ +0 +6 +-44 -29 -36 -40 +-40 0 -5 -43 +-7 37 -3 -23 +-4 18 14 30 +6 39 38 32 +12 -20 27 -15 diff --git a/src/boost/libs/polygon/example/input_data/random/random_017.txt b/src/boost/libs/polygon/example/input_data/random/random_017.txt new file mode 100644 index 00000000..267e5416 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_017.txt @@ -0,0 +1,5 @@ +0 +3 +-46 -50 -36 -14 +-5 46 -4 -40 +21 45 49 -45 diff --git a/src/boost/libs/polygon/example/input_data/random/random_018.txt b/src/boost/libs/polygon/example/input_data/random/random_018.txt new file mode 100644 index 00000000..980c7f61 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_018.txt @@ -0,0 +1,7 @@ +0 +5 +-45 44 -36 -29 +-36 41 -32 -14 +-16 44 23 9 +13 -4 19 -29 +18 -3 48 39 diff --git a/src/boost/libs/polygon/example/input_data/random/random_019.txt b/src/boost/libs/polygon/example/input_data/random/random_019.txt new file mode 100644 index 00000000..011dbaee --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_019.txt @@ -0,0 +1,7 @@ +0 +5 +-29 22 -6 18 +-6 -20 18 19 +-5 28 44 22 +9 -48 22 -15 +11 32 11 39 diff --git a/src/boost/libs/polygon/example/input_data/random/random_020.txt b/src/boost/libs/polygon/example/input_data/random/random_020.txt new file mode 100644 index 00000000..77b69472 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_020.txt @@ -0,0 +1,7 @@ +0 +5 +-14 -43 37 -49 +-12 41 -10 -43 +-7 -20 18 -38 +7 34 47 -38 +23 26 42 -3 diff --git a/src/boost/libs/polygon/example/input_data/random/random_021.txt b/src/boost/libs/polygon/example/input_data/random/random_021.txt new file mode 100644 index 00000000..f959ec61 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_021.txt @@ -0,0 +1,7 @@ +0 +5 +-47 32 0 28 +-20 -22 9 -13 +-13 37 21 30 +-7 47 2 47 +26 47 32 1 diff --git a/src/boost/libs/polygon/example/input_data/random/random_022.txt b/src/boost/libs/polygon/example/input_data/random/random_022.txt new file mode 100644 index 00000000..e8fa87c1 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_022.txt @@ -0,0 +1,5 @@ +0 +3 +-19 17 -10 9 +-1 -50 25 40 +26 15 48 -3 diff --git a/src/boost/libs/polygon/example/input_data/random/random_023.txt b/src/boost/libs/polygon/example/input_data/random/random_023.txt new file mode 100644 index 00000000..1d27d982 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_023.txt @@ -0,0 +1,8 @@ +0 +6 +-41 -46 -20 -48 +-41 -22 10 -46 +-27 36 28 19 +-10 -10 28 -15 +13 -28 48 -19 +41 -20 47 1 diff --git a/src/boost/libs/polygon/example/input_data/random/random_024.txt b/src/boost/libs/polygon/example/input_data/random/random_024.txt new file mode 100644 index 00000000..401f1259 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_024.txt @@ -0,0 +1,7 @@ +0 +5 +-29 26 24 -46 +-24 -48 -15 -19 +-15 -20 -2 -23 +-9 -30 0 -42 +3 21 24 43 diff --git a/src/boost/libs/polygon/example/input_data/random/random_025.txt b/src/boost/libs/polygon/example/input_data/random/random_025.txt new file mode 100644 index 00000000..4d3ca29d --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_025.txt @@ -0,0 +1,4 @@ +0 +2 +-8 -34 29 22 +37 10 48 7 diff --git a/src/boost/libs/polygon/example/input_data/random/random_026.txt b/src/boost/libs/polygon/example/input_data/random/random_026.txt new file mode 100644 index 00000000..c35bfd7c --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_026.txt @@ -0,0 +1,6 @@ +0 +4 +-35 -28 19 26 +-21 16 -19 -4 +9 -34 27 3 +25 48 47 -31 diff --git a/src/boost/libs/polygon/example/input_data/random/random_027.txt b/src/boost/libs/polygon/example/input_data/random/random_027.txt new file mode 100644 index 00000000..ce38d7a8 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_027.txt @@ -0,0 +1,8 @@ +0 +6 +-45 46 -24 24 +-37 30 -36 -7 +-18 -47 -4 -14 +-3 -34 40 -33 +5 17 44 -26 +35 -16 45 9 diff --git a/src/boost/libs/polygon/example/input_data/random/random_028.txt b/src/boost/libs/polygon/example/input_data/random/random_028.txt new file mode 100644 index 00000000..46952bd8 --- /dev/null +++ b/src/boost/libs/polygon/example/input_data/random/random_028.txt @@ -0,0 +1,7 @@ +0 +5 +-30 -27 -18 16 +-14 47 0 -46 +-13 42 13 20 +-10 26 7 -42 +-2 22 22 -42 diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_001.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_001.png Binary files differnew file mode 100644 index 00000000..abb16fac --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_001.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_002.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_002.png Binary files differnew file mode 100644 index 00000000..3e707daf --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_002.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_003.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_003.png Binary files differnew file mode 100644 index 00000000..de62fd7d --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_003.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_004.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_004.png Binary files differnew file mode 100644 index 00000000..a89a4524 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_004.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_005.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_005.png Binary files differnew file mode 100644 index 00000000..2b26dcc3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_005.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_006.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_006.png Binary files differnew file mode 100644 index 00000000..2fbdcb73 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_006.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_007.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_007.png Binary files differnew file mode 100644 index 00000000..74fcec91 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_007.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_008.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_008.png Binary files differnew file mode 100644 index 00000000..17105a1f --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_008.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_009.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_009.png Binary files differnew file mode 100644 index 00000000..b5423620 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_009.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_010.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_010.png Binary files differnew file mode 100644 index 00000000..a1d1984e --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_010.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_011.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_011.png Binary files differnew file mode 100644 index 00000000..3b689b46 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_011.png diff --git a/src/boost/libs/polygon/example/output_data/polygon/polygon_012.png b/src/boost/libs/polygon/example/output_data/polygon/polygon_012.png Binary files differnew file mode 100644 index 00000000..1e3f916d --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/polygon/polygon_012.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_001.png b/src/boost/libs/polygon/example/output_data/primary/primary_001.png Binary files differnew file mode 100644 index 00000000..e84069fc --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_001.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_002.png b/src/boost/libs/polygon/example/output_data/primary/primary_002.png Binary files differnew file mode 100644 index 00000000..384a35c3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_002.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_003.png b/src/boost/libs/polygon/example/output_data/primary/primary_003.png Binary files differnew file mode 100644 index 00000000..66dc11ef --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_003.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_004.png b/src/boost/libs/polygon/example/output_data/primary/primary_004.png Binary files differnew file mode 100644 index 00000000..7d134e28 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_004.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_005.png b/src/boost/libs/polygon/example/output_data/primary/primary_005.png Binary files differnew file mode 100644 index 00000000..9715acbc --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_005.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_006.png b/src/boost/libs/polygon/example/output_data/primary/primary_006.png Binary files differnew file mode 100644 index 00000000..585f29cd --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_006.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_007.png b/src/boost/libs/polygon/example/output_data/primary/primary_007.png Binary files differnew file mode 100644 index 00000000..8d2b31b2 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_007.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_008.png b/src/boost/libs/polygon/example/output_data/primary/primary_008.png Binary files differnew file mode 100644 index 00000000..99c27aa8 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_008.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_009.png b/src/boost/libs/polygon/example/output_data/primary/primary_009.png Binary files differnew file mode 100644 index 00000000..4aff6d9d --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_009.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_010.png b/src/boost/libs/polygon/example/output_data/primary/primary_010.png Binary files differnew file mode 100644 index 00000000..305bade5 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_010.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_011.png b/src/boost/libs/polygon/example/output_data/primary/primary_011.png Binary files differnew file mode 100644 index 00000000..625ef724 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_011.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_012.png b/src/boost/libs/polygon/example/output_data/primary/primary_012.png Binary files differnew file mode 100644 index 00000000..8bd48644 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_012.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_013.png b/src/boost/libs/polygon/example/output_data/primary/primary_013.png Binary files differnew file mode 100644 index 00000000..f4586746 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_013.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_014.png b/src/boost/libs/polygon/example/output_data/primary/primary_014.png Binary files differnew file mode 100644 index 00000000..7c281b7c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_014.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_015.png b/src/boost/libs/polygon/example/output_data/primary/primary_015.png Binary files differnew file mode 100644 index 00000000..e3bf7266 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_015.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_016.png b/src/boost/libs/polygon/example/output_data/primary/primary_016.png Binary files differnew file mode 100644 index 00000000..78b322e3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_016.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_017.png b/src/boost/libs/polygon/example/output_data/primary/primary_017.png Binary files differnew file mode 100644 index 00000000..3c2618f8 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_017.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_018.png b/src/boost/libs/polygon/example/output_data/primary/primary_018.png Binary files differnew file mode 100644 index 00000000..bfdbf2c7 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_018.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_019.png b/src/boost/libs/polygon/example/output_data/primary/primary_019.png Binary files differnew file mode 100644 index 00000000..0a51631c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_019.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_020.png b/src/boost/libs/polygon/example/output_data/primary/primary_020.png Binary files differnew file mode 100644 index 00000000..26c82e8c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_020.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_021.png b/src/boost/libs/polygon/example/output_data/primary/primary_021.png Binary files differnew file mode 100644 index 00000000..abf18bba --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_021.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_022.png b/src/boost/libs/polygon/example/output_data/primary/primary_022.png Binary files differnew file mode 100644 index 00000000..6408bf13 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_022.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_023.png b/src/boost/libs/polygon/example/output_data/primary/primary_023.png Binary files differnew file mode 100644 index 00000000..a91f3a25 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_023.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_024.png b/src/boost/libs/polygon/example/output_data/primary/primary_024.png Binary files differnew file mode 100644 index 00000000..d1643de0 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_024.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_025.png b/src/boost/libs/polygon/example/output_data/primary/primary_025.png Binary files differnew file mode 100644 index 00000000..c45581a5 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_025.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_026.png b/src/boost/libs/polygon/example/output_data/primary/primary_026.png Binary files differnew file mode 100644 index 00000000..6eb9c19e --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_026.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_027.png b/src/boost/libs/polygon/example/output_data/primary/primary_027.png Binary files differnew file mode 100644 index 00000000..e113fd53 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_027.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_028.png b/src/boost/libs/polygon/example/output_data/primary/primary_028.png Binary files differnew file mode 100644 index 00000000..ecc88a28 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_028.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_029.png b/src/boost/libs/polygon/example/output_data/primary/primary_029.png Binary files differnew file mode 100644 index 00000000..46c9235a --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_029.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_030.png b/src/boost/libs/polygon/example/output_data/primary/primary_030.png Binary files differnew file mode 100644 index 00000000..3ec5f6b0 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_030.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_031.png b/src/boost/libs/polygon/example/output_data/primary/primary_031.png Binary files differnew file mode 100644 index 00000000..180e785b --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_031.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_032.png b/src/boost/libs/polygon/example/output_data/primary/primary_032.png Binary files differnew file mode 100644 index 00000000..47077c19 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_032.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_033.png b/src/boost/libs/polygon/example/output_data/primary/primary_033.png Binary files differnew file mode 100644 index 00000000..3fe9c2d1 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_033.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_034.png b/src/boost/libs/polygon/example/output_data/primary/primary_034.png Binary files differnew file mode 100644 index 00000000..88c20830 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_034.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_035.png b/src/boost/libs/polygon/example/output_data/primary/primary_035.png Binary files differnew file mode 100644 index 00000000..d747470a --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_035.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_036.png b/src/boost/libs/polygon/example/output_data/primary/primary_036.png Binary files differnew file mode 100644 index 00000000..16d0dbc3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_036.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_037.png b/src/boost/libs/polygon/example/output_data/primary/primary_037.png Binary files differnew file mode 100644 index 00000000..36dc9ddd --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_037.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_038.png b/src/boost/libs/polygon/example/output_data/primary/primary_038.png Binary files differnew file mode 100644 index 00000000..22b2ada0 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_038.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_039.png b/src/boost/libs/polygon/example/output_data/primary/primary_039.png Binary files differnew file mode 100644 index 00000000..c7721181 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_039.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_040.png b/src/boost/libs/polygon/example/output_data/primary/primary_040.png Binary files differnew file mode 100644 index 00000000..6c22caa9 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_040.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_041.png b/src/boost/libs/polygon/example/output_data/primary/primary_041.png Binary files differnew file mode 100644 index 00000000..3a516466 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_041.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_042.png b/src/boost/libs/polygon/example/output_data/primary/primary_042.png Binary files differnew file mode 100644 index 00000000..3b6f63b0 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_042.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_043.png b/src/boost/libs/polygon/example/output_data/primary/primary_043.png Binary files differnew file mode 100644 index 00000000..e0704cbd --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_043.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_044.png b/src/boost/libs/polygon/example/output_data/primary/primary_044.png Binary files differnew file mode 100644 index 00000000..daec4264 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_044.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_045.png b/src/boost/libs/polygon/example/output_data/primary/primary_045.png Binary files differnew file mode 100644 index 00000000..fccf0b70 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_045.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_046.png b/src/boost/libs/polygon/example/output_data/primary/primary_046.png Binary files differnew file mode 100644 index 00000000..69ec8dce --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_046.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_047.png b/src/boost/libs/polygon/example/output_data/primary/primary_047.png Binary files differnew file mode 100644 index 00000000..d1aca8b4 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_047.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_048.png b/src/boost/libs/polygon/example/output_data/primary/primary_048.png Binary files differnew file mode 100644 index 00000000..49249c21 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_048.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_049.png b/src/boost/libs/polygon/example/output_data/primary/primary_049.png Binary files differnew file mode 100644 index 00000000..b2be7179 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_049.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_050.png b/src/boost/libs/polygon/example/output_data/primary/primary_050.png Binary files differnew file mode 100644 index 00000000..2668f055 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_050.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_051.png b/src/boost/libs/polygon/example/output_data/primary/primary_051.png Binary files differnew file mode 100644 index 00000000..123bb0c3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_051.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_052.png b/src/boost/libs/polygon/example/output_data/primary/primary_052.png Binary files differnew file mode 100644 index 00000000..64a24930 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_052.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_053.png b/src/boost/libs/polygon/example/output_data/primary/primary_053.png Binary files differnew file mode 100644 index 00000000..10419980 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_053.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_054.png b/src/boost/libs/polygon/example/output_data/primary/primary_054.png Binary files differnew file mode 100644 index 00000000..20012376 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_054.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_055.png b/src/boost/libs/polygon/example/output_data/primary/primary_055.png Binary files differnew file mode 100644 index 00000000..eb26248d --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_055.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_056.png b/src/boost/libs/polygon/example/output_data/primary/primary_056.png Binary files differnew file mode 100644 index 00000000..42e0a57b --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_056.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_057.png b/src/boost/libs/polygon/example/output_data/primary/primary_057.png Binary files differnew file mode 100644 index 00000000..5bbadc81 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_057.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_058.png b/src/boost/libs/polygon/example/output_data/primary/primary_058.png Binary files differnew file mode 100644 index 00000000..9d24c0d4 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_058.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_059.png b/src/boost/libs/polygon/example/output_data/primary/primary_059.png Binary files differnew file mode 100644 index 00000000..d31ea60a --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_059.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_060.png b/src/boost/libs/polygon/example/output_data/primary/primary_060.png Binary files differnew file mode 100644 index 00000000..d31ea60a --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_060.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_061.png b/src/boost/libs/polygon/example/output_data/primary/primary_061.png Binary files differnew file mode 100644 index 00000000..1beab62e --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_061.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_062.png b/src/boost/libs/polygon/example/output_data/primary/primary_062.png Binary files differnew file mode 100644 index 00000000..96f5cfb6 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_062.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_063.png b/src/boost/libs/polygon/example/output_data/primary/primary_063.png Binary files differnew file mode 100644 index 00000000..b27ca1a0 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_063.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_064.png b/src/boost/libs/polygon/example/output_data/primary/primary_064.png Binary files differnew file mode 100644 index 00000000..c393c425 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_064.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_065.png b/src/boost/libs/polygon/example/output_data/primary/primary_065.png Binary files differnew file mode 100644 index 00000000..81b2b771 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_065.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_066.png b/src/boost/libs/polygon/example/output_data/primary/primary_066.png Binary files differnew file mode 100644 index 00000000..797192d9 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_066.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_067.png b/src/boost/libs/polygon/example/output_data/primary/primary_067.png Binary files differnew file mode 100644 index 00000000..ee770ea1 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_067.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_068.png b/src/boost/libs/polygon/example/output_data/primary/primary_068.png Binary files differnew file mode 100644 index 00000000..54abfde3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_068.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_069.png b/src/boost/libs/polygon/example/output_data/primary/primary_069.png Binary files differnew file mode 100644 index 00000000..b7b327de --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_069.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_070.png b/src/boost/libs/polygon/example/output_data/primary/primary_070.png Binary files differnew file mode 100644 index 00000000..ecc86870 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_070.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_071.png b/src/boost/libs/polygon/example/output_data/primary/primary_071.png Binary files differnew file mode 100644 index 00000000..af1a4b07 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_071.png diff --git a/src/boost/libs/polygon/example/output_data/primary/primary_072.png b/src/boost/libs/polygon/example/output_data/primary/primary_072.png Binary files differnew file mode 100644 index 00000000..89a06d31 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/primary/primary_072.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_001.png b/src/boost/libs/polygon/example/output_data/random/random_001.png Binary files differnew file mode 100644 index 00000000..70bfd60c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_001.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_002.png b/src/boost/libs/polygon/example/output_data/random/random_002.png Binary files differnew file mode 100644 index 00000000..a0c39abf --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_002.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_003.png b/src/boost/libs/polygon/example/output_data/random/random_003.png Binary files differnew file mode 100644 index 00000000..180d6023 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_003.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_004.png b/src/boost/libs/polygon/example/output_data/random/random_004.png Binary files differnew file mode 100644 index 00000000..1701b36c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_004.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_005.png b/src/boost/libs/polygon/example/output_data/random/random_005.png Binary files differnew file mode 100644 index 00000000..1701b36c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_005.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_006.png b/src/boost/libs/polygon/example/output_data/random/random_006.png Binary files differnew file mode 100644 index 00000000..350b3307 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_006.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_007.png b/src/boost/libs/polygon/example/output_data/random/random_007.png Binary files differnew file mode 100644 index 00000000..f87c6305 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_007.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_008.png b/src/boost/libs/polygon/example/output_data/random/random_008.png Binary files differnew file mode 100644 index 00000000..e03a4ea6 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_008.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_009.png b/src/boost/libs/polygon/example/output_data/random/random_009.png Binary files differnew file mode 100644 index 00000000..9b165918 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_009.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_010.png b/src/boost/libs/polygon/example/output_data/random/random_010.png Binary files differnew file mode 100644 index 00000000..f1fbd7b5 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_010.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_011.png b/src/boost/libs/polygon/example/output_data/random/random_011.png Binary files differnew file mode 100644 index 00000000..3399269f --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_011.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_012.png b/src/boost/libs/polygon/example/output_data/random/random_012.png Binary files differnew file mode 100644 index 00000000..ae4e39f2 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_012.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_013.png b/src/boost/libs/polygon/example/output_data/random/random_013.png Binary files differnew file mode 100644 index 00000000..681af5e1 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_013.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_014.png b/src/boost/libs/polygon/example/output_data/random/random_014.png Binary files differnew file mode 100644 index 00000000..fa460579 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_014.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_015.png b/src/boost/libs/polygon/example/output_data/random/random_015.png Binary files differnew file mode 100644 index 00000000..c1053a4f --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_015.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_016.png b/src/boost/libs/polygon/example/output_data/random/random_016.png Binary files differnew file mode 100644 index 00000000..fae18c3b --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_016.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_017.png b/src/boost/libs/polygon/example/output_data/random/random_017.png Binary files differnew file mode 100644 index 00000000..5434bdd8 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_017.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_018.png b/src/boost/libs/polygon/example/output_data/random/random_018.png Binary files differnew file mode 100644 index 00000000..7e5efd05 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_018.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_019.png b/src/boost/libs/polygon/example/output_data/random/random_019.png Binary files differnew file mode 100644 index 00000000..63025d7a --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_019.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_020.png b/src/boost/libs/polygon/example/output_data/random/random_020.png Binary files differnew file mode 100644 index 00000000..e17f4fb6 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_020.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_021.png b/src/boost/libs/polygon/example/output_data/random/random_021.png Binary files differnew file mode 100644 index 00000000..82262699 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_021.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_022.png b/src/boost/libs/polygon/example/output_data/random/random_022.png Binary files differnew file mode 100644 index 00000000..500134a3 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_022.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_023.png b/src/boost/libs/polygon/example/output_data/random/random_023.png Binary files differnew file mode 100644 index 00000000..756e8d41 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_023.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_024.png b/src/boost/libs/polygon/example/output_data/random/random_024.png Binary files differnew file mode 100644 index 00000000..0c973fca --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_024.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_025.png b/src/boost/libs/polygon/example/output_data/random/random_025.png Binary files differnew file mode 100644 index 00000000..a7072581 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_025.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_026.png b/src/boost/libs/polygon/example/output_data/random/random_026.png Binary files differnew file mode 100644 index 00000000..3f109f2c --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_026.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_027.png b/src/boost/libs/polygon/example/output_data/random/random_027.png Binary files differnew file mode 100644 index 00000000..e4cd1001 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_027.png diff --git a/src/boost/libs/polygon/example/output_data/random/random_028.png b/src/boost/libs/polygon/example/output_data/random/random_028.png Binary files differnew file mode 100644 index 00000000..4b4bb721 --- /dev/null +++ b/src/boost/libs/polygon/example/output_data/random/random_028.png diff --git a/src/boost/libs/polygon/example/voronoi_advanced_tutorial.cpp b/src/boost/libs/polygon/example/voronoi_advanced_tutorial.cpp new file mode 100644 index 00000000..96ad9699 --- /dev/null +++ b/src/boost/libs/polygon/example/voronoi_advanced_tutorial.cpp @@ -0,0 +1,145 @@ +// Boost.Polygon library voronoi_advanced_tutorial.cpp file + +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under 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) + +// See http://www.boost.org for updates, documentation, and revision history. + +#include <cmath> +#include <cstdio> +#include <ctime> +#include <string> + +// This will work properly only with GCC compiler. +#include <ieee754.h> +typedef long double fpt80; + +// Random generators and distributions. +#include <boost/random/mersenne_twister.hpp> +#include <boost/random/uniform_int_distribution.hpp> +#include <boost/timer/timer.hpp> + +#include <boost/polygon/voronoi.hpp> +using namespace boost::polygon; + +struct my_ulp_comparison { + enum Result { + LESS = -1, + EQUAL = 0, + MORE = 1 + }; + + Result operator()(fpt80 a, fpt80 b, unsigned int maxUlps) const { + if (a == b) + return EQUAL; + if (a > b) { + Result res = operator()(b, a, maxUlps); + if (res == EQUAL) return res; + return (res == LESS) ? MORE : LESS; + } + ieee854_long_double lhs, rhs; + lhs.d = a; + rhs.d = b; + if (lhs.ieee.negative ^ rhs.ieee.negative) + return lhs.ieee.negative ? LESS : MORE; + boost::uint64_t le = lhs.ieee.exponent; le = + (le << 32) + lhs.ieee.mantissa0; + boost::uint64_t re = rhs.ieee.exponent; re = + (re << 32) + rhs.ieee.mantissa0; + if (lhs.ieee.negative) { + if (le - 1 > re) + return LESS; + le = (le == re) ? 0 : 1; + le = (le << 32) + lhs.ieee.mantissa1; + re = rhs.ieee.mantissa1; + return (re + maxUlps < le) ? LESS : EQUAL; + } else { + if (le + 1 < re) + return LESS; + le = lhs.ieee.mantissa0; + re = (le == re) ? 0 : 1; + re = (re << 32) + rhs.ieee.mantissa1; + return (le + maxUlps < re) ? LESS : EQUAL; + } + } +}; + +struct my_fpt_converter { + template <typename T> + fpt80 operator()(const T& that) const { + return static_cast<fpt80>(that); + } + + template <std::size_t N> + fpt80 operator()(const typename detail::extended_int<N> &that) const { + fpt80 result = 0.0; + for (std::size_t i = 1; i <= (std::min)((std::size_t)3, that.size()); ++i) { + if (i != 1) + result *= static_cast<fpt80>(0x100000000ULL); + result += that.chunks()[that.size() - i]; + } + return (that.count() < 0) ? -result : result; + } +}; + +// Voronoi diagram traits. +struct my_voronoi_diagram_traits { + typedef fpt80 coordinate_type; + typedef voronoi_cell<coordinate_type> cell_type; + typedef voronoi_vertex<coordinate_type> vertex_type; + typedef voronoi_edge<coordinate_type> edge_type; + typedef class { + public: + enum { ULPS = 128 }; + bool operator()(const vertex_type &v1, const vertex_type &v2) const { + return (ulp_cmp(v1.x(), v2.x(), ULPS) == my_ulp_comparison::EQUAL && + ulp_cmp(v1.y(), v2.y(), ULPS) == my_ulp_comparison::EQUAL); + } + private: + my_ulp_comparison ulp_cmp; + } vertex_equality_predicate_type; +}; + +// Voronoi ctype traits for 48-bit signed integer input coordinates. +struct my_voronoi_ctype_traits { + typedef boost::int64_t int_type; + typedef detail::extended_int<3> int_x2_type; + typedef detail::extended_int<3> uint_x2_type; + typedef detail::extended_int<128> big_int_type; + typedef fpt80 fpt_type; + typedef fpt80 efpt_type; + typedef my_ulp_comparison ulp_cmp_type; + typedef my_fpt_converter to_fpt_converter_type; + typedef my_fpt_converter to_efpt_converter_type; +}; + +const unsigned int GENERATED_POINTS = 100; +const boost::int64_t MAX = 0x1000000000000LL; + +int main() { + boost::mt19937_64 gen(std::time(0)); + boost::random::uniform_int_distribution<boost::int64_t> distr(-MAX, MAX-1); + voronoi_builder<boost::int64_t, my_voronoi_ctype_traits> vb; + for (size_t i = 0; i < GENERATED_POINTS; ++i) { + boost::int64_t x = distr(gen); + boost::int64_t y = distr(gen); + vb.insert_point(x, y); + } + + printf("Constructing Voronoi diagram of %d points...\n", GENERATED_POINTS); + boost::timer::cpu_timer t; + voronoi_diagram<fpt80, my_voronoi_diagram_traits> vd; + t.start(); + vb.construct(&vd); + boost::timer::cpu_times times = t.elapsed(); + std::string ftime = boost::timer::format(times, 5, "%w"); + + printf("Construction done in: %s seconds.\n", ftime.c_str()); + printf("Resulting Voronoi graph has the following stats:\n"); + printf("Number of Voronoi cells: %lu.\n", vd.num_cells()); + printf("Number of Voronoi vertices: %lu.\n", vd.num_vertices()); + printf("Number of Voronoi edges: %lu.\n", vd.num_edges()); + return 0; +} diff --git a/src/boost/libs/polygon/example/voronoi_basic_tutorial.cpp b/src/boost/libs/polygon/example/voronoi_basic_tutorial.cpp new file mode 100644 index 00000000..84f0e468 --- /dev/null +++ b/src/boost/libs/polygon/example/voronoi_basic_tutorial.cpp @@ -0,0 +1,198 @@ +// Boost.Polygon library voronoi_basic_tutorial.cpp file + +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under 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) + +// See http://www.boost.org for updates, documentation, and revision history. + +#include <cstdio> +#include <vector> + +#include <boost/polygon/voronoi.hpp> +using boost::polygon::voronoi_builder; +using boost::polygon::voronoi_diagram; +using boost::polygon::x; +using boost::polygon::y; +using boost::polygon::low; +using boost::polygon::high; + +#include "voronoi_visual_utils.hpp" + +struct Point { + int a; + int b; + Point(int x, int y) : a(x), b(y) {} +}; + +struct Segment { + Point p0; + Point p1; + Segment(int x1, int y1, int x2, int y2) : p0(x1, y1), p1(x2, y2) {} +}; + +namespace boost { +namespace polygon { + +template <> +struct geometry_concept<Point> { + typedef point_concept type; +}; + +template <> +struct point_traits<Point> { + typedef int coordinate_type; + + static inline coordinate_type get( + const Point& point, orientation_2d orient) { + return (orient == HORIZONTAL) ? point.a : point.b; + } +}; + +template <> +struct geometry_concept<Segment> { + typedef segment_concept type; +}; + +template <> +struct segment_traits<Segment> { + typedef int coordinate_type; + typedef Point point_type; + + static inline point_type get(const Segment& segment, direction_1d dir) { + return dir.to_int() ? segment.p1 : segment.p0; + } +}; +} // polygon +} // boost + +// Traversing Voronoi edges using edge iterator. +int iterate_primary_edges1(const voronoi_diagram<double>& vd) { + int result = 0; + for (voronoi_diagram<double>::const_edge_iterator it = vd.edges().begin(); + it != vd.edges().end(); ++it) { + if (it->is_primary()) + ++result; + } + return result; +} + +// Traversing Voronoi edges using cell iterator. +int iterate_primary_edges2(const voronoi_diagram<double> &vd) { + int result = 0; + for (voronoi_diagram<double>::const_cell_iterator it = vd.cells().begin(); + it != vd.cells().end(); ++it) { + const voronoi_diagram<double>::cell_type& cell = *it; + const voronoi_diagram<double>::edge_type* edge = cell.incident_edge(); + // This is convenient way to iterate edges around Voronoi cell. + do { + if (edge->is_primary()) + ++result; + edge = edge->next(); + } while (edge != cell.incident_edge()); + } + return result; +} + +// Traversing Voronoi edges using vertex iterator. +// As opposite to the above two functions this one will not iterate through +// edges without finite endpoints and will iterate only once through edges +// with single finite endpoint. +int iterate_primary_edges3(const voronoi_diagram<double> &vd) { + int result = 0; + for (voronoi_diagram<double>::const_vertex_iterator it = + vd.vertices().begin(); it != vd.vertices().end(); ++it) { + const voronoi_diagram<double>::vertex_type& vertex = *it; + const voronoi_diagram<double>::edge_type* edge = vertex.incident_edge(); + // This is convenient way to iterate edges around Voronoi vertex. + do { + if (edge->is_primary()) + ++result; + edge = edge->rot_next(); + } while (edge != vertex.incident_edge()); + } + return result; +} + +int main() { + // Preparing Input Geometries. + std::vector<Point> points; + points.push_back(Point(0, 0)); + points.push_back(Point(1, 6)); + std::vector<Segment> segments; + segments.push_back(Segment(-4, 5, 5, -1)); + segments.push_back(Segment(3, -11, 13, -1)); + + // Construction of the Voronoi Diagram. + voronoi_diagram<double> vd; + construct_voronoi(points.begin(), points.end(), + segments.begin(), segments.end(), + &vd); + + // Traversing Voronoi Graph. + { + printf("Traversing Voronoi graph.\n"); + printf("Number of visited primary edges using edge iterator: %d\n", + iterate_primary_edges1(vd)); + printf("Number of visited primary edges using cell iterator: %d\n", + iterate_primary_edges2(vd)); + printf("Number of visited primary edges using vertex iterator: %d\n", + iterate_primary_edges3(vd)); + printf("\n"); + } + + // Using color member of the Voronoi primitives to store the average number + // of edges around each cell (including secondary edges). + { + printf("Number of edges (including secondary) around the Voronoi cells:\n"); + for (voronoi_diagram<double>::const_edge_iterator it = vd.edges().begin(); + it != vd.edges().end(); ++it) { + std::size_t cnt = it->cell()->color(); + it->cell()->color(cnt + 1); + } + for (voronoi_diagram<double>::const_cell_iterator it = vd.cells().begin(); + it != vd.cells().end(); ++it) { + printf("%lu ", it->color()); + } + printf("\n"); + printf("\n"); + } + + // Linking Voronoi cells with input geometries. + { + unsigned int cell_index = 0; + for (voronoi_diagram<double>::const_cell_iterator it = vd.cells().begin(); + it != vd.cells().end(); ++it) { + if (it->contains_point()) { + if (it->source_category() == + boost::polygon::SOURCE_CATEGORY_SINGLE_POINT) { + std::size_t index = it->source_index(); + Point p = points[index]; + printf("Cell #%u contains a point: (%d, %d).\n", + cell_index, x(p), y(p)); + } else if (it->source_category() == + boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) { + std::size_t index = it->source_index() - points.size(); + Point p0 = low(segments[index]); + printf("Cell #%u contains segment start point: (%d, %d).\n", + cell_index, x(p0), y(p0)); + } else if (it->source_category() == + boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT) { + std::size_t index = it->source_index() - points.size(); + Point p1 = high(segments[index]); + printf("Cell #%u contains segment end point: (%d, %d).\n", + cell_index, x(p1), y(p1)); + } + } else { + std::size_t index = it->source_index() - points.size(); + Point p0 = low(segments[index]); + Point p1 = high(segments[index]); + printf("Cell #%u contains a segment: ((%d, %d), (%d, %d)). \n", + cell_index, x(p0), y(p0), x(p1), y(p1)); + } + ++cell_index; + } + } + return 0; +} diff --git a/src/boost/libs/polygon/example/voronoi_visual_utils.hpp b/src/boost/libs/polygon/example/voronoi_visual_utils.hpp new file mode 100644 index 00000000..4ef2e9dc --- /dev/null +++ b/src/boost/libs/polygon/example/voronoi_visual_utils.hpp @@ -0,0 +1,186 @@ +// Boost.Polygon library voronoi_graphic_utils.hpp header file + +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under 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) + +// See http://www.boost.org for updates, documentation, and revision history. + +#ifndef BOOST_POLYGON_VORONOI_VISUAL_UTILS +#define BOOST_POLYGON_VORONOI_VISUAL_UTILS + +#include <stack> +#include <vector> + +#include <boost/polygon/isotropy.hpp> +#include <boost/polygon/point_concept.hpp> +#include <boost/polygon/segment_concept.hpp> +#include <boost/polygon/rectangle_concept.hpp> + +namespace boost { +namespace polygon { +// Utilities class, that contains set of routines handful for visualization. +template <typename CT> +class voronoi_visual_utils { + public: + // Discretize parabolic Voronoi edge. + // Parabolic Voronoi edges are always formed by one point and one segment + // from the initial input set. + // + // Args: + // point: input point. + // segment: input segment. + // max_dist: maximum discretization distance. + // discretization: point discretization of the given Voronoi edge. + // + // Template arguments: + // InCT: coordinate type of the input geometries (usually integer). + // Point: point type, should model point concept. + // Segment: segment type, should model segment concept. + // + // Important: + // discretization should contain both edge endpoints initially. + template <class InCT1, class InCT2, + template<class> class Point, + template<class> class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point<InCT1> >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment<InCT2> >::type + >::type + >::type + >::type, + void + >::type discretize( + const Point<InCT1>& point, + const Segment<InCT2>& segment, + const CT max_dist, + std::vector< Point<CT> >* discretization) { + // Apply the linear transformation to move start point of the segment to + // the point with coordinates (0, 0) and the direction of the segment to + // coincide the positive direction of the x-axis. + CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; + + // Compute x-coordinates of the endpoints of the edge + // in the transformed space. + CT projection_start = sqr_segment_length * + get_point_projection((*discretization)[0], segment); + CT projection_end = sqr_segment_length * + get_point_projection((*discretization)[1], segment); + + // Compute parabola parameters in the transformed space. + // Parabola has next representation: + // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). + CT point_vec_x = cast(x(point)) - cast(x(low(segment))); + CT point_vec_y = cast(y(point)) - cast(y(low(segment))); + CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; + CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; + + // Save the last point. + Point<CT> last_point = (*discretization)[1]; + discretization->pop_back(); + + // Use stack to avoid recursion. + std::stack<CT> point_stack; + point_stack.push(projection_end); + CT cur_x = projection_start; + CT cur_y = parabola_y(cur_x, rot_x, rot_y); + + // Adjust max_dist parameter in the transformed space. + const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; + while (!point_stack.empty()) { + CT new_x = point_stack.top(); + CT new_y = parabola_y(new_x, rot_x, rot_y); + + // Compute coordinates of the point of the parabola that is + // furthest from the current line segment. + CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; + CT mid_y = parabola_y(mid_x, rot_x, rot_y); + + // Compute maximum distance between the given parabolic arc + // and line segment that discretize it. + CT dist = (new_y - cur_y) * (mid_x - cur_x) - + (new_x - cur_x) * (mid_y - cur_y); + dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + + (new_x - cur_x) * (new_x - cur_x)); + if (dist <= max_dist_transformed) { + // Distance between parabola and line segment is less than max_dist. + point_stack.pop(); + CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / + sqr_segment_length + cast(x(low(segment))); + CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / + sqr_segment_length + cast(y(low(segment))); + discretization->push_back(Point<CT>(inter_x, inter_y)); + cur_x = new_x; + cur_y = new_y; + } else { + point_stack.push(mid_x); + } + } + + // Update last point. + discretization->back() = last_point; + } + + private: + // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). + static CT parabola_y(CT x, CT a, CT b) { + return ((x - a) * (x - a) + b * b) / (b + b); + } + + // Get normalized length of the distance between: + // 1) point projection onto the segment + // 2) start point of the segment + // Return this length divided by the segment length. This is made to avoid + // sqrt computation during transformation from the initial space to the + // transformed one and vice versa. The assumption is made that projection of + // the point lies between the start-point and endpoint of the segment. + template <class InCT, + template<class> class Point, + template<class> class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point<int> >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment<long> >::type + >::type + >::type + >::type, + CT + >::type get_point_projection( + const Point<CT>& point, const Segment<InCT>& segment) { + CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT point_vec_x = x(point) - cast(x(low(segment))); + CT point_vec_y = y(point) - cast(y(low(segment))); + CT sqr_segment_length = + segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; + CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; + return vec_dot / sqr_segment_length; + } + + template <typename InCT> + static CT cast(const InCT& value) { + return static_cast<CT>(value); + } +}; +} +} + +#endif // BOOST_POLYGON_VORONOI_VISUAL_UTILS diff --git a/src/boost/libs/polygon/example/voronoi_visualizer.cpp b/src/boost/libs/polygon/example/voronoi_visualizer.cpp new file mode 100644 index 00000000..3049c387 --- /dev/null +++ b/src/boost/libs/polygon/example/voronoi_visualizer.cpp @@ -0,0 +1,509 @@ +// Boost.Polygon library voronoi_visualizer.cpp file + +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under 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) + +// See http://www.boost.org for updates, documentation, and revision history. + +#include <iostream> +#include <vector> + +#include <QtOpenGL/QGLWidget> +#include <QtGui/QtGui> + +#include <boost/polygon/polygon.hpp> +#include <boost/polygon/voronoi.hpp> +using namespace boost::polygon; + +#include "voronoi_visual_utils.hpp" + +class GLWidget : public QGLWidget { + Q_OBJECT + + public: + explicit GLWidget(QMainWindow* parent = NULL) : + QGLWidget(QGLFormat(QGL::SampleBuffers), parent), + primary_edges_only_(false), + internal_edges_only_(false) { + startTimer(40); + } + + QSize sizeHint() const { + return QSize(600, 600); + } + + void build(const QString& file_path) { + // Clear all containers. + clear(); + + // Read data. + read_data(file_path); + + // No data, don't proceed. + if (!brect_initialized_) { + return; + } + + // Construct bounding rectangle. + construct_brect(); + + // Construct voronoi diagram. + construct_voronoi( + point_data_.begin(), point_data_.end(), + segment_data_.begin(), segment_data_.end(), + &vd_); + + // Color exterior edges. + for (const_edge_iterator it = vd_.edges().begin(); + it != vd_.edges().end(); ++it) { + if (!it->is_finite()) { + color_exterior(&(*it)); + } + } + + // Update view port. + update_view_port(); + } + + void show_primary_edges_only() { + primary_edges_only_ ^= true; + } + + void show_internal_edges_only() { + internal_edges_only_ ^= true; + } + + protected: + void initializeGL() { + glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glEnable(GL_POINT_SMOOTH); + } + + void paintGL() { + qglClearColor(QColor::fromRgb(255, 255, 255)); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + draw_points(); + draw_segments(); + draw_vertices(); + draw_edges(); + } + + void resizeGL(int width, int height) { + int side = qMin(width, height); + glViewport((width - side) / 2, (height - side) / 2, side, side); + } + + void timerEvent(QTimerEvent* e) { + update(); + } + + private: + typedef double coordinate_type; + typedef point_data<coordinate_type> point_type; + typedef segment_data<coordinate_type> segment_type; + typedef rectangle_data<coordinate_type> rect_type; + typedef voronoi_builder<int> VB; + typedef voronoi_diagram<coordinate_type> VD; + typedef VD::cell_type cell_type; + typedef VD::cell_type::source_index_type source_index_type; + typedef VD::cell_type::source_category_type source_category_type; + typedef VD::edge_type edge_type; + typedef VD::cell_container_type cell_container_type; + typedef VD::cell_container_type vertex_container_type; + typedef VD::edge_container_type edge_container_type; + typedef VD::const_cell_iterator const_cell_iterator; + typedef VD::const_vertex_iterator const_vertex_iterator; + typedef VD::const_edge_iterator const_edge_iterator; + + static const std::size_t EXTERNAL_COLOR = 1; + + void clear() { + brect_initialized_ = false; + point_data_.clear(); + segment_data_.clear(); + vd_.clear(); + } + + void read_data(const QString& file_path) { + QFile data(file_path); + if (!data.open(QFile::ReadOnly)) { + QMessageBox::warning( + this, tr("Voronoi Visualizer"), + tr("Disable to open file ") + file_path); + } + QTextStream in_stream(&data); + std::size_t num_points, num_segments; + int x1, y1, x2, y2; + in_stream >> num_points; + for (std::size_t i = 0; i < num_points; ++i) { + in_stream >> x1 >> y1; + point_type p(x1, y1); + update_brect(p); + point_data_.push_back(p); + } + in_stream >> num_segments; + for (std::size_t i = 0; i < num_segments; ++i) { + in_stream >> x1 >> y1 >> x2 >> y2; + point_type lp(x1, y1); + point_type hp(x2, y2); + update_brect(lp); + update_brect(hp); + segment_data_.push_back(segment_type(lp, hp)); + } + in_stream.flush(); + } + + void update_brect(const point_type& point) { + if (brect_initialized_) { + encompass(brect_, point); + } else { + set_points(brect_, point, point); + brect_initialized_ = true; + } + } + + void construct_brect() { + double side = (std::max)(xh(brect_) - xl(brect_), yh(brect_) - yl(brect_)); + center(shift_, brect_); + set_points(brect_, shift_, shift_); + bloat(brect_, side * 1.2); + } + + void color_exterior(const VD::edge_type* edge) { + if (edge->color() == EXTERNAL_COLOR) { + return; + } + edge->color(EXTERNAL_COLOR); + edge->twin()->color(EXTERNAL_COLOR); + const VD::vertex_type* v = edge->vertex1(); + if (v == NULL || !edge->is_primary()) { + return; + } + v->color(EXTERNAL_COLOR); + const VD::edge_type* e = v->incident_edge(); + do { + color_exterior(e); + e = e->rot_next(); + } while (e != v->incident_edge()); + } + + void update_view_port() { + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + rect_type view_rect = brect_; + deconvolve(view_rect, shift_); + glOrtho(xl(view_rect), xh(view_rect), + yl(view_rect), yh(view_rect), + -1.0, 1.0); + glMatrixMode(GL_MODELVIEW); + } + + void draw_points() { + // Draw input points and endpoints of the input segments. + glColor3f(0.0f, 0.5f, 1.0f); + glPointSize(9); + glBegin(GL_POINTS); + for (std::size_t i = 0; i < point_data_.size(); ++i) { + point_type point = point_data_[i]; + deconvolve(point, shift_); + glVertex2f(point.x(), point.y()); + } + for (std::size_t i = 0; i < segment_data_.size(); ++i) { + point_type lp = low(segment_data_[i]); + lp = deconvolve(lp, shift_); + glVertex2f(lp.x(), lp.y()); + point_type hp = high(segment_data_[i]); + hp = deconvolve(hp, shift_); + glVertex2f(hp.x(), hp.y()); + } + glEnd(); + } + + void draw_segments() { + // Draw input segments. + glColor3f(0.0f, 0.5f, 1.0f); + glLineWidth(2.7f); + glBegin(GL_LINES); + for (std::size_t i = 0; i < segment_data_.size(); ++i) { + point_type lp = low(segment_data_[i]); + lp = deconvolve(lp, shift_); + glVertex2f(lp.x(), lp.y()); + point_type hp = high(segment_data_[i]); + hp = deconvolve(hp, shift_); + glVertex2f(hp.x(), hp.y()); + } + glEnd(); + } + + void draw_vertices() { + // Draw voronoi vertices. + glColor3f(0.0f, 0.0f, 0.0f); + glPointSize(6); + glBegin(GL_POINTS); + for (const_vertex_iterator it = vd_.vertices().begin(); + it != vd_.vertices().end(); ++it) { + if (internal_edges_only_ && (it->color() == EXTERNAL_COLOR)) { + continue; + } + point_type vertex(it->x(), it->y()); + vertex = deconvolve(vertex, shift_); + glVertex2f(vertex.x(), vertex.y()); + } + glEnd(); + } + void draw_edges() { + // Draw voronoi edges. + glColor3f(0.0f, 0.0f, 0.0f); + glLineWidth(1.7f); + for (const_edge_iterator it = vd_.edges().begin(); + it != vd_.edges().end(); ++it) { + if (primary_edges_only_ && !it->is_primary()) { + continue; + } + if (internal_edges_only_ && (it->color() == EXTERNAL_COLOR)) { + continue; + } + std::vector<point_type> samples; + if (!it->is_finite()) { + clip_infinite_edge(*it, &samples); + } else { + point_type vertex0(it->vertex0()->x(), it->vertex0()->y()); + samples.push_back(vertex0); + point_type vertex1(it->vertex1()->x(), it->vertex1()->y()); + samples.push_back(vertex1); + if (it->is_curved()) { + sample_curved_edge(*it, &samples); + } + } + glBegin(GL_LINE_STRIP); + for (std::size_t i = 0; i < samples.size(); ++i) { + point_type vertex = deconvolve(samples[i], shift_); + glVertex2f(vertex.x(), vertex.y()); + } + glEnd(); + } + } + + void clip_infinite_edge( + const edge_type& edge, std::vector<point_type>* clipped_edge) { + const cell_type& cell1 = *edge.cell(); + const cell_type& cell2 = *edge.twin()->cell(); + point_type origin, direction; + // Infinite edges could not be created by two segment sites. + if (cell1.contains_point() && cell2.contains_point()) { + point_type p1 = retrieve_point(cell1); + point_type p2 = retrieve_point(cell2); + origin.x((p1.x() + p2.x()) * 0.5); + origin.y((p1.y() + p2.y()) * 0.5); + direction.x(p1.y() - p2.y()); + direction.y(p2.x() - p1.x()); + } else { + origin = cell1.contains_segment() ? + retrieve_point(cell2) : + retrieve_point(cell1); + segment_type segment = cell1.contains_segment() ? + retrieve_segment(cell1) : + retrieve_segment(cell2); + coordinate_type dx = high(segment).x() - low(segment).x(); + coordinate_type dy = high(segment).y() - low(segment).y(); + if ((low(segment) == origin) ^ cell1.contains_point()) { + direction.x(dy); + direction.y(-dx); + } else { + direction.x(-dy); + direction.y(dx); + } + } + coordinate_type side = xh(brect_) - xl(brect_); + coordinate_type koef = + side / (std::max)(fabs(direction.x()), fabs(direction.y())); + if (edge.vertex0() == NULL) { + clipped_edge->push_back(point_type( + origin.x() - direction.x() * koef, + origin.y() - direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex0()->x(), edge.vertex0()->y())); + } + if (edge.vertex1() == NULL) { + clipped_edge->push_back(point_type( + origin.x() + direction.x() * koef, + origin.y() + direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex1()->x(), edge.vertex1()->y())); + } + } + + void sample_curved_edge( + const edge_type& edge, + std::vector<point_type>* sampled_edge) { + coordinate_type max_dist = 1E-3 * (xh(brect_) - xl(brect_)); + point_type point = edge.cell()->contains_point() ? + retrieve_point(*edge.cell()) : + retrieve_point(*edge.twin()->cell()); + segment_type segment = edge.cell()->contains_point() ? + retrieve_segment(*edge.twin()->cell()) : + retrieve_segment(*edge.cell()); + voronoi_visual_utils<coordinate_type>::discretize( + point, segment, max_dist, sampled_edge); + } + + point_type retrieve_point(const cell_type& cell) { + source_index_type index = cell.source_index(); + source_category_type category = cell.source_category(); + if (category == SOURCE_CATEGORY_SINGLE_POINT) { + return point_data_[index]; + } + index -= point_data_.size(); + if (category == SOURCE_CATEGORY_SEGMENT_START_POINT) { + return low(segment_data_[index]); + } else { + return high(segment_data_[index]); + } + } + + segment_type retrieve_segment(const cell_type& cell) { + source_index_type index = cell.source_index() - point_data_.size(); + return segment_data_[index]; + } + + point_type shift_; + std::vector<point_type> point_data_; + std::vector<segment_type> segment_data_; + rect_type brect_; + VB vb_; + VD vd_; + bool brect_initialized_; + bool primary_edges_only_; + bool internal_edges_only_; +}; + +class MainWindow : public QWidget { + Q_OBJECT + + public: + MainWindow() { + glWidget_ = new GLWidget(); + file_dir_ = QDir(QDir::currentPath(), tr("*.txt")); + file_name_ = tr(""); + + QHBoxLayout* centralLayout = new QHBoxLayout; + centralLayout->addWidget(glWidget_); + centralLayout->addLayout(create_file_layout()); + setLayout(centralLayout); + + update_file_list(); + setWindowTitle(tr("Voronoi Visualizer")); + layout()->setSizeConstraint(QLayout::SetFixedSize); + } + + private slots: + void primary_edges_only() { + glWidget_->show_primary_edges_only(); + } + + void internal_edges_only() { + glWidget_->show_internal_edges_only(); + } + + void browse() { + QString new_path = QFileDialog::getExistingDirectory( + 0, tr("Choose Directory"), file_dir_.absolutePath()); + if (new_path.isEmpty()) { + return; + } + file_dir_.setPath(new_path); + update_file_list(); + } + + void build() { + file_name_ = file_list_->currentItem()->text(); + QString file_path = file_dir_.filePath(file_name_); + message_label_->setText("Building..."); + glWidget_->build(file_path); + message_label_->setText("Double click the item to build voronoi diagram:"); + setWindowTitle(tr("Voronoi Visualizer - ") + file_path); + } + + void print_scr() { + if (!file_name_.isEmpty()) { + QImage screenshot = glWidget_->grabFrameBuffer(true); + QString output_file = file_dir_.absolutePath() + tr("/") + + file_name_.left(file_name_.indexOf('.')) + tr(".png"); + screenshot.save(output_file, 0, -1); + } + } + + private: + QGridLayout* create_file_layout() { + QGridLayout* file_layout = new QGridLayout; + + message_label_ = new QLabel("Double click item to build voronoi diagram:"); + + file_list_ = new QListWidget(); + file_list_->connect(file_list_, + SIGNAL(itemDoubleClicked(QListWidgetItem*)), + this, + SLOT(build())); + + QCheckBox* primary_checkbox = new QCheckBox("Show primary edges only."); + connect(primary_checkbox, SIGNAL(clicked()), + this, SLOT(primary_edges_only())); + + QCheckBox* internal_checkbox = new QCheckBox("Show internal edges only."); + connect(internal_checkbox, SIGNAL(clicked()), + this, SLOT(internal_edges_only())); + + QPushButton* browse_button = + new QPushButton(tr("Browse Input Directory")); + connect(browse_button, SIGNAL(clicked()), this, SLOT(browse())); + browse_button->setMinimumHeight(50); + + QPushButton* print_scr_button = new QPushButton(tr("Make Screenshot")); + connect(print_scr_button, SIGNAL(clicked()), this, SLOT(print_scr())); + print_scr_button->setMinimumHeight(50); + + file_layout->addWidget(message_label_, 0, 0); + file_layout->addWidget(file_list_, 1, 0); + file_layout->addWidget(primary_checkbox, 2, 0); + file_layout->addWidget(internal_checkbox, 3, 0); + file_layout->addWidget(browse_button, 4, 0); + file_layout->addWidget(print_scr_button, 5, 0); + + return file_layout; + } + + void update_file_list() { + QFileInfoList list = file_dir_.entryInfoList(); + file_list_->clear(); + if (file_dir_.count() == 0) { + return; + } + QFileInfoList::const_iterator it; + for (it = list.begin(); it != list.end(); it++) { + file_list_->addItem(it->fileName()); + } + file_list_->setCurrentRow(0); + } + + QDir file_dir_; + QString file_name_; + GLWidget* glWidget_; + QListWidget* file_list_; + QLabel* message_label_; +}; + +int main(int argc, char* argv[]) { + QApplication app(argc, argv); + MainWindow window; + window.show(); + return app.exec(); +} + +#include "voronoi_visualizer.moc" |