\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12 - 2D and 3D Linear Geometry Kernel

template<typename Type1 , typename Type2 , typename OutputIterator >
OutputIterator CGAL::intersection (const Type1 &obj1, const Type2 &obj2, OutputIterator intersections)
 Constructs the intersection elements between the two input objects and stores them in the OutputIterator in lexicographic order, where both, Type1 and Type2, can be either. More...
 

Function Documentation

◆ intersection()

template<typename Type1 , typename Type2 , typename OutputIterator >
OutputIterator CGAL::intersection ( const Type1 &  obj1,
const Type2 &  obj2,
OutputIterator  intersections 
)

#include <CGAL/Circular_kernel_intersections.h>

Constructs the intersection elements between the two input objects and stores them in the OutputIterator in lexicographic order, where both, Type1 and Type2, can be either.

See Chapter Chapter_2D_Circular_Geometry_Kernel for details on a circular kernel instantiation.

When using a circular kernel, in addition to the function overloads documented here, the following function overloads are also available.

The iterator versions of those functions can be used in conjunction with Dispatch_output_iterator.

Since both the number of intersections, if any, and their types, depend on the arguments, the function expects an output iterator on cpp11::result_of<K::Intersect_2(Type1, Type2)>::type, as presented below.

Depending on the types Type1 and Type2, these elements can be assigned to