CGAL 5.5 - 2D Arrangements
|
#include <CGAL/Arr_geodesic_arc_on_sphere_traits_2.h>
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 deafult, \(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.
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 . | |