FunctionObjectConcept

SphericalKernel::MakeThetaMonotone_3

A model fo of this concept must provide:

template<class OutputIterator>
OutputIterator fo ( 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 14.2 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.

template<class OutputIterator>
OutputIterator fo ( 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 14.2 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.

See Also

SphericalKernel::IsThetaMonotone_3