#include #include #include #include #include #include int main() { typedef boost::geometry::model::d2::point_xy point; typedef boost::geometry::model::polygon polygon; polygon green, blue; boost::geometry::read_wkt( "POLYGON((0 65536, 0 131072, 65536 131072, 131072 131072, 131072 65536, 65536 65536, 0 65536))", green); boost::geometry::read_wkt( "POLYGON((65536 0, 65536 65536, 65536 131072, 65536 196608, 196608 196608, 196608 0, 65536 0))", blue); boost::geometry::correct(green); boost::geometry::correct(blue); std::deque output; boost::geometry::intersection(blue, green, output); int i = 0; std::cout << "green && blue:" << std::endl; BOOST_FOREACH(polygon const& p, output) { std::cout << i++ << ": " << boost::geometry::dsv(p) << std::endl; } return 0; }