 CGAL 5.3 - 3D Spherical Geometry Kernel
Geometric Global Functions

## Functions

template<class SphericalKernel >
CGAL::Circle_type CGAL::classify (const CGAL::Circle_3< SphericalKernel > &c, const CGAL::Sphere_3< SphericalKernel > &sphere)
Classify a circle according to sphere, as defined in Section Spherical Kernel Objects. More...

template<class SphericalKernel >
Comparison_result CGAL::compare_theta (const CGAL::Circular_arc_point_3< SphericalKernel > &p, const CGAL::Circular_arc_point_3< SphericalKernel > &q, const CGAL::Sphere_3< SphericalKernel > &sphere)
Compares the $$\theta$$-coordinates of p and q relatively to sphere. More...

template<class SphericalKernel >
Comparison_result CGAL::compare_theta (const CGAL::Circular_arc_point_3< SphericalKernel > &p, const CGAL::Vector_3< SphericalKernel > &m, const CGAL::Sphere_3< SphericalKernel > &sphere)
Compares the $$\theta$$-coordinates of p and of the meridian defined by m (see Section Spherical Kernel Objects) in the cylindrical coordinate system relative to sphere. More...

template<class SphericalKernel >
Comparison_result CGAL::compare_theta (const CGAL::Vector_3< SphericalKernel > &m, const CGAL::Circular_arc_point_3< SphericalKernel > &p, const CGAL::Sphere_3< SphericalKernel > &sphere)
Compares the $$\theta$$-coordinates of the meridian defined by m and of p (see Section Spherical Kernel Objects) in the cylindrical coordinate system relative to sphere. More...

template<class SphericalKernel >
bool CGAL::compare_theta_z (const CGAL::Circular_arc_point_3< SphericalKernel > &p, const CGAL::Circular_arc_point_3< SphericalKernel > &q, const CGAL::Sphere_3< SphericalKernel > &sphere)
Compares p and q according to the lexicographic ordering on $$\theta$$ and $$z$$-coordinates in the cylindrical coordinate system relative to sphere. More...

template<class SphericalKernel >
bool CGAL::is_theta_monotone (const CGAL::Circular_arc_3< SphericalKernel > &a, const CGAL::Sphere_3< SphericalKernel > &sphere)
Tests whether the arc a is $$\theta$$-monotone, i.e. the intersection of any meridian anchored at the poles sphere and the arc a is reduced to at most one point in general, and two points if a pole of sphere is an endpoint of the arc. More...

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::theta_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, const CGAL::Sphere_3< SphericalKernel > sphere, bool b)
Returns the point on the circle that is extremal in $$\theta$$ using the cylindrical coordinate system relative to sphere, and that has the smallest (resp. largest) $$\theta$$-coordinate of the two points if b is true (resp. false). More...

template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::theta_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, const CGAL::Sphere_3< SphericalKernel > &sphere, OutputIterator res)
Copies in the output iterator the $$\theta$$-extremal points of the circle relatively to sphere. More...

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::x_extremal_point (const CGAL::Sphere_3< SphericalKernel > &c, bool b)
Returns the point on the sphere that is extremal in the $$x$$-direction, and that is the smallest (resp. largest) of the two $$x$$-extremal points for the lexicographic order if b is true (resp. false).

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::x_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, bool b)
Same for a circle. More...

template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::x_extremal_points (const CGAL::Sphere_3< SphericalKernel > &c, OutputIterator res)
Copies in the output iterator the $$x$$-extremal points of the sphere. More...

template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::x_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, OutputIterator res)
Copies in the output iterator the $$x$$-extremal points of the circle. More...

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::y_extremal_point (const CGAL::Sphere_3< SphericalKernel > &c, bool b)
Returns the point on the sphere that is extremal in the $$y$$-direction, and that is the smallest (resp. largest) of the two $$y$$-extremal points for the lexicographic order if b is true (resp. false).

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::y_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, bool b)
Same for a circle. More...

template<class SphericalKernel class OutputIterator>
OutputIterator CGAL::y_extremal_points (const CGAL::Sphere_3< SphericalKernel > &c, OutputIterator res)
Copies in the output iterator the $$y$$-extremal points of the sphere. More...

template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::y_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, OutputIterator res)
Copies in the output iterator the $$y$$-extremal points of the circle. More...

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::z_extremal_point (const CGAL::Sphere_3< SphericalKernel > &c, bool b)
Returns the point on the sphere that is extremal in the $$z$$-direction, and that is the smallest (resp. largest) of the two $$z$$-extremal points for the lexicographic order if b is true (resp. false).

template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::z_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, bool b)
Same for a circle. More...

template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::z_extremal_points (const CGAL::Sphere_3< SphericalKernel > &c, OutputIterator res)
Copies in the output iterator the $$z$$-extremal points of the sphere. More...

template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::z_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, OutputIterator res)
Copies in the output iterator the $$z$$-extremal points of the circle. More...

## ◆ classify()

template<class SphericalKernel >
 CGAL::Circle_type CGAL::classify ( const CGAL::Circle_3< SphericalKernel > & c, const CGAL::Sphere_3< SphericalKernel > & sphere )

#include <CGAL/global_functions_spherical_kernel_3.h>

Classify a circle according to sphere, as defined in Section Spherical Kernel Objects.

Precondition
c lies on sphere.
CGAL::Circle_type

## ◆ compare_theta() [1/3]

template<class SphericalKernel >
 Comparison_result CGAL::compare_theta ( const CGAL::Circular_arc_point_3< SphericalKernel > & p, const CGAL::Circular_arc_point_3< SphericalKernel > & q, const CGAL::Sphere_3< SphericalKernel > & sphere )

#include <CGAL/global_functions_spherical_kernel_3.h>

Compares the $$\theta$$-coordinates of p and q relatively to sphere.

Precondition
p and q lie on sphere, but do not coincide with the poles of sphere.
CGAL::compare_x()
CGAL::compare_xy()
CGAL::compare_xy()
CGAL::compare_x_at_y()
CGAL::compare_y()
CGAL::compare_yx()
CGAL::compare_y_at_x()
CGAL::compare_z()
CGAL::compare_theta_z()

## ◆ compare_theta() [2/3]

template<class SphericalKernel >
 Comparison_result CGAL::compare_theta ( const CGAL::Circular_arc_point_3< SphericalKernel > & p, const CGAL::Vector_3< SphericalKernel > & m, const CGAL::Sphere_3< SphericalKernel > & sphere )

#include <CGAL/global_functions_spherical_kernel_3.h>

Compares the $$\theta$$-coordinates of p and of the meridian defined by m (see Section Spherical Kernel Objects) in the cylindrical coordinate system relative to sphere.

Precondition
p lies on sphere, but does not coincide with its poles. m $$\neq(0,0,0)$$ and the $$z$$-coordinate of m is $$0$$.
CGAL::compare_x()
CGAL::compare_xy()
CGAL::compare_xy()
CGAL::compare_x_at_y()
CGAL::compare_y()
CGAL::compare_yx()
CGAL::compare_y_at_x()
CGAL::compare_z()
CGAL::compare_theta_z()

## ◆ compare_theta() [3/3]

template<class SphericalKernel >
 Comparison_result CGAL::compare_theta ( const CGAL::Vector_3< SphericalKernel > & m, const CGAL::Circular_arc_point_3< SphericalKernel > & p, const CGAL::Sphere_3< SphericalKernel > & sphere )

#include <CGAL/global_functions_spherical_kernel_3.h>

Compares the $$\theta$$-coordinates of the meridian defined by m and of p (see Section Spherical Kernel Objects) in the cylindrical coordinate system relative to sphere.

Precondition
p lies on sphere, but does not coincide with its poles. m $$\neq(0,0,0)$$ and the $$z$$-coordinate of m is $$0$$.
CGAL::compare_x()
CGAL::compare_xy()
CGAL::compare_x_at_y()
CGAL::compare_y()
CGAL::compare_yx()
CGAL::compare_y_at_x()
CGAL::compare_z()
CGAL::compare_theta_z()

## ◆ compare_theta_z()

template<class SphericalKernel >
 bool CGAL::compare_theta_z ( const CGAL::Circular_arc_point_3< SphericalKernel > & p, const CGAL::Circular_arc_point_3< SphericalKernel > & q, const CGAL::Sphere_3< SphericalKernel > & sphere )

#include <CGAL/global_functions_spherical_kernel_3.h>

Compares p and q according to the lexicographic ordering on $$\theta$$ and $$z$$-coordinates in the cylindrical coordinate system relative to sphere.

Precondition
p and q lie on sphere, but do not coincide with the poles of sphere.
CGAL::compare_x()
CGAL::compare_xy()
CGAL::compare_xy()
CGAL::compare_x_at_y()
CGAL::compare_y()
CGAL::compare_yx()
CGAL::compare_y_at_x()
CGAL::compare_z()
CGAL::compare_theta()

## ◆ is_theta_monotone()

template<class SphericalKernel >
 bool CGAL::is_theta_monotone ( const CGAL::Circular_arc_3< SphericalKernel > & a, const CGAL::Sphere_3< SphericalKernel > & sphere )

#include <CGAL/global_functions_spherical_kernel_3.h>

Tests whether the arc a is $$\theta$$-monotone, i.e. the intersection of any meridian anchored at the poles sphere and the arc a is reduced to at most one point in general, and two points if a pole of sphere is an endpoint of the arc.

Note that a bipolar circle has no such arcs.

Precondition
a lies on sphere, and the supporting circle of a is not bipolar.

## ◆ theta_extremal_point()

template<class SphericalKernel >
 CGAL::Circular_arc_point_3 CGAL::theta_extremal_point ( const CGAL::Circle_3< SphericalKernel > & c, const CGAL::Sphere_3< SphericalKernel > sphere, bool b )

#include <CGAL/global_functions_spherical_kernel_3.h>

Returns the point on the circle that is extremal in $$\theta$$ using the cylindrical coordinate system relative to sphere, and that has the smallest (resp. largest) $$\theta$$-coordinate of the two points if b is true (resp. false).

See Section Spherical Kernel Objects for definitions.

Precondition
c lies on sphere and is a normal circle.

## ◆ theta_extremal_points()

template<class SphericalKernel , class OutputIterator >
 OutputIterator CGAL::theta_extremal_points ( const CGAL::Circle_3< SphericalKernel > & c, const CGAL::Sphere_3< SphericalKernel > & sphere, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$\theta$$-extremal points of the circle relatively to sphere.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted in the cylindrical coordinate system relative to sphere. See Section Spherical Kernel Objects for definitions.

Precondition
c lies on sphere and is a normal circle.
Examples:
Circular_kernel_3/functor_compare_theta_3.cpp.

## ◆ x_extremal_point()

template<class SphericalKernel >
 CGAL::Circular_arc_point_3 CGAL::x_extremal_point ( const CGAL::Circle_3< SphericalKernel > & c, bool b )

#include <CGAL/global_functions_spherical_kernel_3.h>

Same for a circle.

Precondition
The circle is not contained in a plane orthogonal to the $$x$$-axis.

## ◆ x_extremal_points() [1/2]

template<class SphericalKernel , class OutputIterator >
 OutputIterator CGAL::x_extremal_points ( const CGAL::Sphere_3< SphericalKernel > & c, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$x$$-extremal points of the sphere.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted.

## ◆ x_extremal_points() [2/2]

template<class SphericalKernel , class OutputIterator >
 OutputIterator CGAL::x_extremal_points ( const CGAL::Circle_3< SphericalKernel > & c, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$x$$-extremal points of the circle.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted.

Precondition
The circle is not contained in a plane orthogonal to the $$x$$-axis.

## ◆ y_extremal_point()

template<class SphericalKernel >
 CGAL::Circular_arc_point_3 CGAL::y_extremal_point ( const CGAL::Circle_3< SphericalKernel > & c, bool b )

#include <CGAL/global_functions_spherical_kernel_3.h>

Same for a circle.

Precondition
The circle is not contained in a plane orthogonal to the $$y$$-axis.

## ◆ y_extremal_points() [1/2]

template<class SphericalKernel class OutputIterator>
 OutputIterator CGAL::y_extremal_points ( const CGAL::Sphere_3< SphericalKernel > & c, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$y$$-extremal points of the sphere.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted.

## ◆ y_extremal_points() [2/2]

template<class SphericalKernel , class OutputIterator >
 OutputIterator CGAL::y_extremal_points ( const CGAL::Circle_3< SphericalKernel > & c, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$y$$-extremal points of the circle.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted.

Precondition
The circle is not contained in a plane orthogonal to the $$y$$-axis.

## ◆ z_extremal_point()

template<class SphericalKernel >
 CGAL::Circular_arc_point_3 CGAL::z_extremal_point ( const CGAL::Circle_3< SphericalKernel > & c, bool b )

#include <CGAL/global_functions_spherical_kernel_3.h>

Same for a circle.

Precondition
The circle is not contained in a plane orthogonal to the $$z$$-axis.

## ◆ z_extremal_points() [1/2]

template<class SphericalKernel , class OutputIterator >
 OutputIterator CGAL::z_extremal_points ( const CGAL::Sphere_3< SphericalKernel > & c, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$z$$-extremal points of the sphere.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted.

## ◆ z_extremal_points() [2/2]

template<class SphericalKernel , class OutputIterator >
 OutputIterator CGAL::z_extremal_points ( const CGAL::Circle_3< SphericalKernel > & c, OutputIterator res )

#include <CGAL/global_functions_spherical_kernel_3.h>

Copies in the output iterator the $$z$$-extremal points of the circle.

res iterates on elements of type Circular_arc_point_3<SphericalKernel>, lexicographically sorted.

Precondition
The circle is not contained in a plane orthogonal to the $$z$$-axis.