| 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 | }
|
|---|