The function do_intersect checks if a given curve or $$xmonotone curve intersects an existing arrangement's edges or vertices.
If the give curve is not an $$xmonotone curve then the function subdivides the given curve into $$xmonotone subcurves and isolated vertices . Each subcurve is in turn checked for intersection. The function uses the zone algorithm to check if the curve intersects the arrangement. First, the curve's left endpoint is located. Then, its zone is computed starting from its left endpoint location. The zone computation terminates when an intersection with an arrangement's edge/vertex is found or when the right endpoint is reached.
A given pointlocation object is used for locating the left endpoint of the given curve in the existing arrangement. 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> >.
#include <CGAL/Arrangement_2.h>
 


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