CGAL 6.1.1 - 3D Spherical Geometry Kernel

Loading...
Searching...
No Matches
Functions
Geometric Global Functions
Reference Manual

##

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

## 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_xyz()`
  `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::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()

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

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