CGAL::get_intersection_points

#include <CGAL/Sweep_line_2_algorithms.h>

template <class InputIterator, class OutputIterator, class Traits>
OutputIterator
get_intersection_points ( InputIterator curves_begin,
InputIterator curves_end,
OutputIterator points,
bool report_endpoints = false,
Traits traits = Default_traits())
given a range of curves, compute all intersection points between two (or more) input curves. If the flag report_endpoints is true, then the curve endpoints are reported as well. The Traits type must be a model of the ArrangementTraits_2 concept, such that the value-type of InputIterator is Traits::Curve_2, and the value-type of OutputIterator is Traits::Point_2. The output points are reported in an increasing xy-lexicographical order.