The function insert inserts one or more curves or xmonotone curves into a given arrangement, where no restrictions are imposed on the inserted curves. If an inserted curve is not xmonotone curve, it is subdivided into xmonotone subcurves (and perhaps isolated points), which are inserted into the arrangement.
#include <CGAL/Arrangement_2.h>
template<class Traits, class Dcel, class Curve, class PointLocation>  
void  insert ( Arrangement_2<Traits,Dcel>& arr, Curve c, PointLocation pl = walk_pl) 
The given pointlocation object pl is used to locate the left endpoints of the xmonotone curves. By default, the function uses the ``walk along line'' pointlocation strategy  namely an instance of the class Arr_walk_along_line_point_location<Arrangement_2<Traits,Dcel> >.
Precondition
If provided, pl must be attached to the given arrangement arr.
template<typename Traits, typename Dcel>  
void  insert ( Arrangement_2<Traits,Dcel>& arr, typename Traits::X_monotone_curve_2 xc, Object obj) 
template<class Traits, class Dcel, class InputIterator>  
void  insert ( Arrangement_2<Traits,Dcel>& arr, InputIterator first, InputIterator last) 
#include <CGAL/Arrangement_with_history_2.h>
template<typename Traits, typename Dcel, typename PointLocation>  
typename Arrangement_with_history_2<Traits,Dcel>::Curve_handle  

The given pointlocation object pl is used to locate the left endpoints of the xmonotone curves. By default, the function uses the ``walk along line'' pointlocation strategy  namely an instance of the class Arr_walk_along_line_point_location<Arrangement_2<Traits,Dcel> >.
Precondition
If provided, pl is attached to the given arrangement arr.
template<class Traits, class Dcel, InputIterator>  
void  insert ( Arrangement_with_history_2<Traits,Dcel>& arr, InputIterator first, InputIterator last) 