1 | #include <boost_install_dir/install/boost-1.66.0/64/include/boost/polygon/polygon.hpp>
|
---|
2 | using namespace boost::polygon::operators;
|
---|
3 |
|
---|
4 | int 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 | }
|
---|