#include <CGAL/Cartesian.h>
#include <CGAL/Arr_circle_segment_traits_2.h>
#include <CGAL/Arrangement_2.h>
typedef Traits_2::CoordNT CoordNT;
typedef Traits_2::Point_2 Point_2;
typedef Traits_2::Curve_2 Curve_2;
int main()
{
std::list<Curve_2> curves;
curves.push_back(Curve_2(circ1));
Segment_2 seg3 = Segment_2(s3, t3);
curves.push_back(Curve_2(seg3));
CoordNT sqrt_15 = CoordNT(0, 1, 15);
Point_2 s4 = Point_2(3, 3);
Point_2 t4 = Point_2(sqrt_15, sqrt_15);
curves.push_back(Curve_2(seg3.supporting_line(), s4, t4));
CoordNT one_minus_sqrt_3 = CoordNT(1, -1, 3);
CoordNT one_plus_sqrt_3 = CoordNT(1, 1, 3);
Point_2 s5 = Point_2(one_minus_sqrt_3, CoordNT(1));
Point_2 t5 = Point_2(one_plus_sqrt_3, CoordNT(1));
curves.push_back(Curve_2(circ5, s5, t5));
curves.push_back(Curve_2(s7, mid7, t7));
Arrangement_2 arr;
insert(arr, curves.begin(), curves.end());
std::cout << "The arrangement size:" << std::endl
<< " V = " << arr.number_of_vertices()
<< ", E = " << arr.number_of_edges()
<< ", F = " << arr.number_of_faces() << std::endl;
return 0;
}