CGAL 6.1 - 2D Arrangements

Loading...
Searching...
No Matches
List of all members | Classes | Public Member Functions
CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y > Class Template Reference
Reference Manual » Geometry Traits Classes

`#include <CGAL/Arr_geodesic_arc_on_sphere_traits_2.h>`

## Definition

template<typename Kernel, typename X, typename Y>
class CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >

The traits class `Arr_geodesic_arc_on_sphere_traits_2` is a model of the `AosTraits_2` concept.

It enables the construction and maintenance of arrangements of arcs of great circles (also known as geodesic arcs) that lie on the sphere (centered at the origin). Almost all operations on arrangements require a kernel that supports exact predicates. Most operations also require a kernel that supports exact constructions. However, all operations on such arrangements can be computed efficiently, since all calculations are performed with rational arithmetic.

There is an analogy between this class of arrangements and the class of planar arrangements induced by linear curves (i.e., segments, rays, and lines), as properties of linear curves in the plane often, but not always, hold for geodesic arcs on the sphere. For example, given any two non-antipodal points on the sphere there exists a unique great circle connecting the two points.

We use the following parameterization of the unit sphere \(S = \phi_S(\Phi)\): \(\Phi = [\alpha, 2\pi + \alpha] \times [-\frac{\pi}{2}, \frac{\pi}{2}]\), \(\phi_S(x, y) = (\cos y \cos x, \sin y \cos x, \sin x)\), where \(\alpha = \arctan(X, Y)\). By default, \(X = -1, Y = 0\), which implies \(\alpha = \pi\), and a default parameterization \(\Phi = [-\pi, \pi] \times [-\frac{\pi}{2}, \frac{\pi}{2}]\). The equator curve, for example, is given by \(\gamma(t) = (\pi(2t - 1) + \alpha, 0)\), for \(t \in [0,1]\). This parameterization induces two contraction points \(p_s = (0, 0, -1) = \phi_S(y,-\frac{\pi}{2})\) and \(p_n = (0, 0, 1) = \phi_S(y,\frac{\pi}{2})\), referred to as the south and north poles, respectively, and an identification curve \(\{\phi_S(\pi + \alpha,x)\,|\,-\frac{\pi}{2} \leq v \leq \frac{\pi}{2}\}\), as \(\phi_S(-\pi + \alpha,v) = \phi_S(+\pi + \alpha,v)\) for all \(x\) (which coincides with the opposite Prime (Greenwich) Meridian when \(\alpha = \pi\)). The elements that substitutes the template parameters `X` and `Y` when `Arr_geodesic_arc_on_sphere_traits_2<Kernel, X, Y>` is instantiated must be integral values that define a not necessarily normalized vector \((x,y)\) in the \(xy\)-plane that bisects the identification curve.

Is model of
  `AosTraits_2`
  `AosLandmarkTraits_2`
  `AosApproximateTraits_2`
  `AosSphericalBoundaryTraits_2`

Examples
  Arrangement_on_surface_2/count_and_trace.cpp.

## Classes
class | Construct_curve_2
| Construction functor of geodesic arcs. More...
class | Construct_point_2
| Construction functor of a point. More...
class | Construct_x_monotone_curve_2
| Construction functor of \(x\)-monotone geodesic arcs. More...
class | Curve_2
class | Point_2
| The `Point_2` class nested within the traits is used to represent a point on a sphere centered at the origin. More...
class | X_monotone_curve_2
| The `X_monotone_curve_2` class nested within the traits is used to represent an \(x\)-monotone geodesic arc on the a sphere centered at the origin. More...

## Public Member Functions
Construct_point_2 | construct_point_2_object () const
| returns an instance of `Construct_point_2`.
Construct_x_monotone_curve_2 | construct_x_monotone_curve_2_object () const
| returns an instance of `Construct_x_monotone_curve_2`.
Construct_curve_2 | construct_curve_2_object () const
| returns an instance of `Construct_curve_2`.