CGAL 4.5.1 - 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... | |
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.
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.
Line_2<CircularKernel>
orLine_arc_2<CircularKernel>
orCircle_2<CircularKernel>
orCircular_arc_2<CircularKernel>
Depending on the types Type1
and Type2
, these elements can be assigned to
std::pair<Circular_arc_point_2<CircularKernel>, unsigned>
, where the unsigned integer is the multiplicity of the corresponding intersection point between obj1
and obj2
,Circular_arc_2<CircularKernel>
in case of an overlap of two circular arcs,Line_arc_2<CircularKernel>
in case of an overlap of two line segments orLine_2<CircularKernel>
or Circle_2<CircularKernel>
in case of two equal input lines or circles. #include <CGAL/Circular_kernel_intersections.h>