|
CGAL 6.0 - 2D and 3D Linear Geometry Kernel
|
| template<typename SphericalType1 , typename SphericalType1 , typename OutputIterator > | |
| OutputIterator | CGAL::intersection (const SphericalType1 &obj1, const SphericalType2 &obj2, OutputIterator intersections) |
Constructs the intersection elements between the two input objects and stores them in the OutputIterator in lexicographic order, where both, SphericalType1 and SphericalType2, can be either. | |
| 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. | |
| OutputIterator CGAL::intersection | ( | const SphericalType1 & | obj1, |
| const SphericalType2 & | obj2, | ||
| OutputIterator | intersections | ||
| ) |
#include <CGAL/Spherical_kernel_intersections.h>
Constructs the intersection elements between the two input objects and stores them in the OutputIterator in lexicographic order, where both, SphericalType1 and SphericalType2, can be either.
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 types of the intersection results depend on the arguments, the function expects an output iterator on Kernel::Intersect_3(Type1, Type2) as presented below.
Sphere_3<SphericalKernel>,Plane_3<SphericalKernel>,Line_3<SphericalKernel>,Circle_3<SphericalKernel>,Line_arc_3<SphericalKernel> orCircular_arc_3<SphericalKernel>,and depending on the types SphericalType1 and SphericalType2, the computed type can be
std::pair<Circular_arc_point_3<SphericalKernel>, unsigned>, where the unsigned integer is the multiplicity of the corresponding intersection point between obj1 and obj2,SphericalType1, when SphericalType1 and SphericalType2 are equal, and if the two objects obj1 and obj2 are equal,Line_3<SphericalKernel> or Circle_3<SphericalKernel> when SphericalType1 and SphericalType2 are two-dimensional objects intersecting along a curve (2 planes, or 2 spheres, or one plane and one sphere),Circular_arc_3<SphericalKernel> in case of an overlap of two circular arcs orLine_arc_3<SphericalKernel> in case of an overlap of two line segments. | 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 std::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
std::pair<Circular_arc_point_3<SphericalKernel>, unsigned>, where the unsigned integer is the multiplicity of the corresponding intersection point,Circle_3<SphericalKernel> orType1, when Type1, Type2 and Type3 are equal, and if the three objects obj1 and obj2 and obj3 are equal.