#include "arr_rational_nt.h"
#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;
Circle_2 circ1 = Circle_2 (c1, Number_type (2));
curves.push_back (Curve_2 (circ1));
curves.push_back (Curve_2 (c2, Number_type(3, 2)));
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));
CoordNT sqrt_3_div_2 = CoordNT (Number_type(0), Number_type(1,2), Number_type(3));
Point_2 s6 = Point_2 (Number_type (-1, 2), sqrt_3_div_2);
Point_2 t6 = Point_2 (Number_type (1, 2), sqrt_3_div_2);
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;
}