// file: examples/Arrangement_2/example3.C #include "short_names.h" #include #ifndef CGAL_USE_CORE // To enable compilation without core: int main () { return (0); } #else #include #include #include #include #include #include typedef CORE::BigInt CfNT; typedef CGAL::Cartesian Int_kernel; typedef Int_kernel::Point_2 Int_point_2; typedef Int_kernel::Circle_2 Int_circle_2; typedef CORE::Expr CoNT; typedef CGAL::Cartesian Alg_kernel; typedef CGAL::Arr_conic_traits_2 Traits_2; typedef Traits_2::Point_2 Point_2; typedef Traits_2::Curve_2 Curve_2; typedef Traits_2::X_monotone_curve_2 X_monotone_curve_2; typedef CGAL::Arr_2_default_dcel Dcel; typedef CGAL::Arrangement_2 Arr_2; int main() { Arr_2 arr; // 2 ccw circles with radius 5 and center (0,0) and (6,0) resp. Int_circle_2 c1 (Int_point_2(0,0), 5*5); Int_circle_2 c2 (Int_point_2(6,0), 5*5); Arr_2::Curve_iterator cit = arr.insert(Curve_2 (c1)); cit = arr.insert(Curve_2 (c2)); // upward vertical ray shooting Arr_2::Locate_type lt; Arr_2::Halfedge_handle e = arr.vertical_ray_shoot(Point_2(-1, 0), lt, true); CGAL_assertion(e->source()->point() == Point_2(3, 4)); CGAL_assertion(e->target()->point() == Point_2(-5, 0)); return 0; } #endif