Ticket #13382: boost_collinear_points_error.cpp

File boost_collinear_points_error.cpp, 1.9 KB (added by k.daloukas@…, 5 years ago)

Example replicating the bug

Line 
1#include <boost_install_dir/install/boost-1.66.0/64/include/boost/polygon/polygon.hpp>
2using namespace boost::polygon::operators;
3
4int main() {
5
6 typedef boost::polygon::polygon_traits< boost::polygon::polygon_data<long long> >::point_type Point;
7 typedef std::vector<Point> PointVector;
8 typedef boost::polygon::polygon_90_data<long long> BoostPolygon90;
9 typedef std::vector<BoostPolygon90> PolygonVector;
10 typedef BoostPolygon90::iterator_type Polygon_iterator;
11 typedef boost::polygon::polygon_90_set_data<long long> BoostPolygonSet90;
12
13 PointVector pv1,pv2;
14 BoostPolygon90 p1,p2;
15 BoostPolygonSet90 set1,set2;
16
17 pv1.push_back(Point(1082615,247880));
18 pv1.push_back(Point(1067615,247880));
19 pv1.push_back(Point(1067615,232880));
20 pv1.push_back(Point(1067615,208880));
21 pv1.push_back(Point(1082615,208880));
22 pv1.push_back(Point(1082615,232880));
23 p1.set(pv1.begin(), pv1.end());
24 set1 += p1;
25
26 pv2.push_back(Point(1137615,247880));
27 pv2.push_back(Point(1122615,247880));
28 pv2.push_back(Point(1122615,232880));
29 pv2.push_back(Point(1122615,208880));
30 pv2.push_back(Point(1137615,208880));
31 pv2.push_back(Point(1137615,232880));
32 p2.set(pv2.begin(), pv2.end());
33 set2 += p2;
34
35 BoostPolygonSet90 set = set1 | set2;
36
37 PolygonVector setOutContainer;
38 set.get( setOutContainer );
39 std::cout << "Size " << setOutContainer.size() << std::endl;
40
41 for( PolygonVector::iterator it = setOutContainer.begin();
42 it != setOutContainer.end(); ++it )
43 {
44 std::cout << "-------------\n";
45 for( Polygon_iterator startPoint = it->begin(); startPoint != it->end(); ++startPoint )
46 {
47 std::cout << "Point: " << boost::polygon::x(*startPoint) << " " << boost::polygon::y(*startPoint) << "\n";
48 }
49 }
50 return 0;
51}