CGAL 6.2 - 2D Arrangements: CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Construct_curve_2 Class Reference

CGAL 6.2 - 2D Arrangements

Loading...
Searching...
No Matches
List of all members
CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Construct_curve_2 Class 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 >::Construct_curve_2

Construction functor of geodesic arcs.

Is model of
  `Assignable`
  `CopyConstructible`
  `AdaptableUnaryFunction`
  `AdaptableBinaryFunction`
  `AdaptableTernaryFunction`

## Types
typedef Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Point_2 | Point_2
typedef Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Curve_2 | result_type
typedef Kernel::Direction_3 | Direction_3
typedef Direction_3 | argument_type

## Operations
X_monotone_curve_2 | operator() (const Direction_3 &normal)
| constructs a full great circle from a normal to a plane.
Curve_2 | operator() (const Point_2 &p, const Point_2 &q)
| constructs the minor geodesic arc from two endpoints.
Curve_2 | operator() (const Point_2 &p, const Point_2 &q, const Direction_3 &normal)
| constructs a geodesic arc from two endpoints and a normal to the plane containing the arc.

## Member Function Documentation

## ◆ operator()() [1/3]

template<typename Kernel , typename X , typename Y >

X_monotone_curve_2 CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Construct_curve_2::operator() | ( | const Direction_3 & | normal | ) |

constructs a full great circle from a normal to a plane.

Parameters

  normal | the normal to the plane containing the great circle.

## ◆ operator()() [2/3]

template<typename Kernel , typename X , typename Y >

Curve_2 CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Construct_curve_2::operator() | ( | const Point_2 & | p,
|  | const Point_2 & | q
| ) |  |

constructs the minor geodesic arc from two endpoints.

The minor arc is the one with the smaller angle among the two geodesic arcs with the given endpoints.

1. Find out whether the arc is \(x\)-monotone.
2. If it is \(x\)-monotone,
   1. Find out whether it is vertical, and
   2. whether the target is larger than the source (directed right).

An arc is vertical, iff

1. one of its endpoint direction pierces a pole, or
2. the projections of the endpoint directions onto the \(xy\)-plane coincide.

Parameters

  [in] | p | the first endpoint.
  [in] | q | the second endpoint.

Precondition
  p and q must not coincide.
  p and q cannot be antipodal.

## ◆ operator()() [3/3]

template<typename Kernel , typename X , typename Y >

Curve_2 CGAL::Arr_geodesic_arc_on_sphere_traits_2< Kernel, X, Y >::Construct_curve_2::operator() | ( | const Point_2 & | p,
|  | const Point_2 & | q,
|  | const Direction_3 & | normal
| ) |  |

constructs a geodesic arc from two endpoints and a normal to the plane containing the arc.

The two endpoints determine the plane. The normal determines the orientation of the plane and the final arc (whether its the minor arc or the major arc). The right-hand rule can be used to select the appropriate normal.

Parameters

  [in] | p | the first endpoint.
  [in] | q | the second endpoint.
  [in] | normal | the normal to the oriented plane containing the arc.

Precondition
  Both endpoints lie on the given oriented plane.