CGAL 5.2 - 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...
 

Function Documentation

◆ 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.
See also
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.
See also
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\).
See also
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\).
See also
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.
See also
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<SphericalKernel> 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<SphericalKernel> 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<SphericalKernel> 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<SphericalKernel> 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.