\( \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.1 - 2D and 3D Linear Geometry Kernel

template<typename SphericalType1 , typename SphericalType1 , typename OutputIterator >
OutputIterator CGAL::intersection (const SphericalType1 &obj1, const SphericalType2 &obj2, OutputIterator intersections)
 Copies in the output iterator the intersection elements between the two objects. More...
 
template<typename Type1 , typename Type2 , typename Type3 , typename OutputIterator >
OutputIterator CGAL::intersection (const Type1 &obj1, const Type2 &obj2, const Type3 &obj3, OutputIterator intersections)
 Copies in the output iterator the intersection elements between the three objects. More...
 

Function Documentation

◆ intersection() [1/2]

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

#include <CGAL/Spherical_kernel_intersections.h>

Copies in the output iterator the intersection elements between the two objects.

See Chapter Chapter_3D_Spherical_Geometry_Kernel for details on a spherical kernel instantiation.

When using a spherical 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<Kernel::Intersect_3(Type1, Type2)>::type, as presented below.

intersections iterates on elements of type result_of< Intersect_3(SphericalType1, SphericalType2) >, in lexicographic order, when this ordering is defined on the computed objects,

where SphericalType1 and SphericalType2 can both be one of:

and depending on the types SphericalType1 and SphericalType2, the computed type can be

◆ intersection() [2/2]

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

#include <CGAL/Spherical_kernel_intersections.h>

Copies in the output iterator the intersection elements between the three objects.

intersections iterates on elements of type boost::variant< Circle_3, Plane_3, Sphere_3, std::pair< Circular_arc_point_3, unsigned > >, in lexicographic order when this ordering is defined on the computed objects

where Type1, Type2 and Type3 can be either

and depending of these types, the computed return value