The function insert_non_intersecting_curve inserts a given x-monotone curve into a given arrangement, where the interior of the given curve is disjoint from all existing arrangement vertices and edges. Under this assumption, it is possible to locate the endpoints of the given curve in the arrangement, and use one of the specialized insertion member-functions of the arrangement according to the results. The insertion operations creates a single new edge, that is, two twin halfedges, and the function returns a handle for the one directed lexicographically in increasing order (from left to right).

A given point-location object is used for answering the two point-location queries on the given curve endpoints. By default, the function uses the ``walk along line'' point-location strategy - namely, an instance of the class Arr_walk_along_line_point_location<Arrangement_2<Traits,Dcel> >.

#include <CGAL/Arrangement_2.h>

template<typename Traits, typename Dcel, typename PointLocation>
typename Arrangement_2<Traits,Dcel>::Halfedge_handle
insert_non_intersecting_curve ( Arrangement_2<Traits,Dcel>& arr,
typename Traits::X_monotone_curve_2 xc,
PointLocation pl = walk_pl)


If provided, pl must be attached to the given arrangement arr.