CGAL 4.12.1 - 2D Circular Geometry Kernel
CircularKernel::Intersect_2 Concept Reference

Definition

Refines:
Kernel::Intersect_2
CGAL::intersection()

Operations

A model of this concept must provide:

template<class OutputIterator >
OutputIterator operator() (const Type1 &obj1, const Type2 &obj2, OutputIterator intersections)
Copies in the output iterator the intersection elements between the two objects. More...

◆ operator()()

template<class OutputIterator >
 OutputIterator CircularKernel::Intersect_2::operator() ( const Type1 & obj1, const Type2 & obj2, OutputIterator intersections )

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

intersections iterates on elements of type CGAL::Object, in lexicographic order.

Type_1 and Type_2 can both be either:

• CircularKernel::Line_2
• CircularKernel::Line_arc_2
• CircularKernel::Circle_2
• CircularKernel::Circular_arc_2.

Depending on the types Type_1 and Type_2, these elements can be assigned to

• std::pair<CircularKernel::Circular_arc_point_2, unsigned>, where the unsigned integer is the multiplicity of the corresponding intersection point between obj_1 and obj_2,
• CircularKernel::Circular_arc_2 in case of an overlap of two circular arcs,
• CircularKernel::Line_arc_2 in case of an overlap of two line segments or
• CircularKernel::Line_2 or CircularKernel::Circle_2 in case of two equal input lines or circles.