#include #include #include #include #include using namespace std; #define ADD(X,Y) append(all_points_in_radius,make >(X,Y)) int main() { using boost::geometry::model::d2::point_xy; using boost::geometry::append; using boost::geometry::make; boost::geometry::model::polygon > all_points_in_radius; ADD(0,0); ADD(0,2); cout << "num inner rings in poly: " << all_points_in_radius.inners().size() << endl; typedef vector > pointvector; pointvector &r = all_points_in_radius.outer(); cout << "points in poly:" << endl; for (pointvector::iterator pi = r.begin(); pi!=r.end(); ++pi) cout << pi->x() << "," << pi->y() << endl; boost::geometry::model::polygon > hull; boost::geometry::convex_hull(all_points_in_radius,hull); pointvector &p = hull.outer(); cout << "points in hull:" << endl; for (pointvector::iterator pi = p.begin(); pi!=p.end(); ++pi) cout << pi->x() << "," << pi->y() << endl; cout << "hull perimiter:" << endl; cout << boost::geometry::perimeter(hull) << endl; cout << "hull area:" << endl; cout << boost::geometry::area(hull) << endl; return 0; }