CGAL 6.0.1 - 2D Arrangements
Loading...
Searching...
No Matches
CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y > Class Template Reference

#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 ArrangementTraits_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
ArrangementTraits_2
ArrangementLandmarkTraits_2
ArrangementSphericalBoundaryTraits_2

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.