 CGAL 4.12 - 3D Spherical Geometry Kernel
SphericalKernel::MakeThetaMonotone_3 Concept Reference

## Definition

SphericalKernel::IsThetaMonotone_3

## Operations

A model of this concept must provide:

template<class OutputIterator >
OutputIterator operator() (const SphericalKernel::Circular_arc_3 &a, OutputIterator res)
Copies in the output iterator the results of the split of arc a at the $$\theta$$-extremal point(s) of its supporting circle relatively to the context sphere used by the function SphericalKernel::make_theta_monotone_3_object (Refer to Section Spherical Kernel Objects for the definition of these points.) The output iterator may contain no arc (if the supporting circle is a bipolar circle), one arc (if a is already $$\theta$$-monotone), two arcs (if only one $$\theta$$-extremal point is on a), or three arcs (if two $$\theta$$-extremal points are on a). More...

template<class OutputIterator >
OutputIterator operator() (const SphericalKernel::Circle_3 &c, OutputIterator res)
Copies in the output iterator the results of the split of circle c at its $$\theta$$-extremal point(s) relatively to the context sphere used by the function SphericalKernel::make_theta_monotone_3_object. More...

## ◆ operator()() [1/2]

template<class OutputIterator >
 OutputIterator SphericalKernel::MakeThetaMonotone_3::operator() ( const SphericalKernel::Circular_arc_3 & a, OutputIterator res )

Copies in the output iterator the results of the split of arc a at the $$\theta$$-extremal point(s) of its supporting circle relatively to the context sphere used by the function SphericalKernel::make_theta_monotone_3_object (Refer to Section Spherical Kernel Objects for the definition of these points.) The output iterator may contain no arc (if the supporting circle is a bipolar circle), one arc (if a is already $$\theta$$-monotone), two arcs (if only one $$\theta$$-extremal point is on a), or three arcs (if two $$\theta$$-extremal points are on a).

Precondition
a lies on the context sphere used by the function SphericalKernel::make_theta_monotone_3_object, and the supporting circle of a is not bipolar.

## ◆ operator()() [2/2]

template<class OutputIterator >
 OutputIterator SphericalKernel::MakeThetaMonotone_3::operator() ( const SphericalKernel::Circle_3 & c, OutputIterator res )

Copies in the output iterator the results of the split of circle c at its $$\theta$$-extremal point(s) relatively to the context sphere used by the function SphericalKernel::make_theta_monotone_3_object.

(Refer to Section Spherical Kernel Objects for the definition of these points.) The output iterator may contain no arc (if the circle is bipolar), one arc (if the circle is polar or threaded), or two arcs (if the circle is normal).

The source and target are such that the circular arc is the set of points of the circle that lie between the source and the target when traversing the circle counterclockwise seen from the positive side of the plane of the circle.

In this definition, we say that a normal vector $$(a,b,c)$$ is positive if $$(a>0) || (a==0) \&\& (b>0) || (a==0)\&\&(b==0)\&\&(c>0)$$.

For a threaded circle, the arc returned the one built using the full circle.

For a polar circle, the arc returned is the full circle, the source and target correspond to the pole the circle goes through.

Precondition
c lies on the context sphere used by the function SphericalKernel::make_theta_monotone_3_object, and c is not bipolar.