CGAL::compute_intersection_points

#include <CGAL/Sweep_line_2_algorithms.h>

template <class InputIterator, class OutputIterator, class Traits>
OutputIterator
compute_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. When the flag report_endpoints is true, this function reports all the curve endpoints as well. If a curve endpoint is also an intersection point, it is reported once (regardless of the value of the report_endpoints flag). 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.