CGAL 4.7 - 3D Spherical Geometry Kernel: Geometric Global Functions

\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.7 - 3D Spherical Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions
Geometric Global Functions
3D Spherical Geometry Kernel Reference

##

## 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 < SphericalKernel > | CGAL::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 < SphericalKernel > | CGAL::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 < SphericalKernel > | CGAL::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 < SphericalKernel > | CGAL::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 < SphericalKernel > | CGAL::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 < SphericalKernel > | CGAL::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 < SphericalKernel > | CGAL::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

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.

Precondition
  `c` lies on `sphere`.

See Also
  `CGAL::Circle_type`

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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

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()`

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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

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()`

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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

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()`

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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

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()`

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

Note that a bipolar circle has no such arcs.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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

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.

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

Examples:
  Circular_kernel_3/functor_compare_theta_3.cpp.

template<class SphericalKernel >

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

Same for a circle.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

template<class SphericalKernel >

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

Same for a circle.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

template<class SphericalKernel >

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

Same for a circle.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`

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.

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

`#include <CGAL/global_functions_spherical_kernel_3.h>`