#include #include #include #include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Partition_traits_2 Traits; typedef Traits::Point_2 Point_2; typedef Traits::Polygon_2 Polygon_2; typedef std::list Polygon_list; void make_polygon(Polygon_2& polygon) { polygon.push_back(Point_2(391, 374)); polygon.push_back(Point_2(240, 431)); polygon.push_back(Point_2(252, 340)); polygon.push_back(Point_2(374, 320)); polygon.push_back(Point_2(289, 214)); polygon.push_back(Point_2(134, 390)); polygon.push_back(Point_2( 68, 186)); polygon.push_back(Point_2(154, 259)); polygon.push_back(Point_2(161, 107)); polygon.push_back(Point_2(435, 108)); polygon.push_back(Point_2(208, 148)); polygon.push_back(Point_2(295, 160)); polygon.push_back(Point_2(421, 212)); polygon.push_back(Point_2(441, 303)); } int main() { Polygon_2 polygon; Polygon_list partition_polys; make_polygon(polygon); CGAL::approx_convex_partition_2(polygon.vertices_begin(), polygon.vertices_end(), std::back_inserter(partition_polys)); assert(CGAL::convex_partition_is_valid_2(polygon.vertices_begin(), polygon.vertices_end(), partition_polys.begin(), partition_polys.end())); return 0; }