#include #include #include #include #include #include #include #include #include #include ///////////////////////////////////////////////////////////////////////// // Type definitions ///////////////////////////////////////////////////////////////////////// typedef leda_rational NT; typedef CGAL::Cartesian R; typedef CGAL::Arr_segment_traits_2 Traits; typedef Traits::Curve_2 Curve; typedef Traits::X_monotone_curve_2 X_curve; typedef Traits::Point_2 Point; typedef CGAL::Arr_base_node Base_node; typedef CGAL::Polygon_traits_2 Polygon_traits; typedef std::list Polygon_Container; typedef CGAL::Polygon_2 Polygon; typedef std::list Polygon_list; //a face with a counter for overlapping polygons (counter is initialized to -1) struct Face_with_counter : public CGAL::Arr_2_face_base { Face_with_counter() : CGAL::Arr_2_face_base(), counter(-1) {} int counter; }; //a DCEL with Face_with_counter typedef CGAL::Pm_dcel, CGAL::Arr_2_halfedge_base, Face_with_counter > Dcel; typedef CGAL::Arrangement_2 Arr_2; typedef CGAL::Pm_naive_point_location Arr_naive_pl; typedef Arr_2::Ccb_halfedge_circulator Ccb_halfedge_circulator; typedef Arr_2::Face_handle Face_handle; typedef Arr_2::Face_iterator Face_iterator; typedef Arr_2::Holes_iterator Holes_iterator; typedef std::list ArrCurvesList; ///////////////////////////////////////////////////////////////////////// // Function Prototypes ///////////////////////////////////////////////////////////////////////// bool intersect_polygons(Polygon_list &in_poly_list, Polygon_list &out_poly_list);