CGAL 5.1 - 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)
 
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)
 
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)
 
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)
 
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)
 
template<class SphericalKernel >
bool CGAL::is_theta_monotone (const CGAL::Circular_arc_3< SphericalKernel > &a, const CGAL::Sphere_3< SphericalKernel > &sphere)
 
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)
 
template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::theta_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, const CGAL::Sphere_3< SphericalKernel > &sphere, OutputIterator res)
 
template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::x_extremal_point (const CGAL::Sphere_3< SphericalKernel > &c, bool b)
 
template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::x_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, bool b)
 
template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::x_extremal_points (const CGAL::Sphere_3< SphericalKernel > &c, OutputIterator res)
 
template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::x_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, OutputIterator res)
 
template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::y_extremal_point (const CGAL::Sphere_3< SphericalKernel > &c, bool b)
 
template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::y_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, bool b)
 
template<class SphericalKernel class OutputIterator>
OutputIterator CGAL::y_extremal_points (const CGAL::Sphere_3< SphericalKernel > &c, OutputIterator res)
 
template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::y_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, OutputIterator res)
 
template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::z_extremal_point (const CGAL::Sphere_3< SphericalKernel > &c, bool b)
 
template<class SphericalKernel >
CGAL::Circular_arc_point_3< SphericalKernelCGAL::z_extremal_point (const CGAL::Circle_3< SphericalKernel > &c, bool b)
 
template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::z_extremal_points (const CGAL::Sphere_3< SphericalKernel > &c, OutputIterator res)
 
template<class SphericalKernel , class OutputIterator >
OutputIterator CGAL::z_extremal_points (const CGAL::Circle_3< SphericalKernel > &c, OutputIterator res)
 

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() [1/2]

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_point() [2/2]

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

#include <CGAL/global_functions_spherical_kernel_3.h>

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).

◆ x_extremal_points() [1/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.

◆ x_extremal_points() [2/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.

◆ y_extremal_point() [1/2]

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_point() [2/2]

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

#include <CGAL/global_functions_spherical_kernel_3.h>

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).

◆ y_extremal_points() [1/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.

◆ y_extremal_points() [2/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.

◆ z_extremal_point() [1/2]

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_point() [2/2]

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

#include <CGAL/global_functions_spherical_kernel_3.h>

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).

◆ z_extremal_points() [1/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.

◆ z_extremal_points() [2/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.