BWAPI
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Friends
Arr_geodesic_arc_on_sphere_traits_2< T_Kernel > Class Template Reference

#include <Arr_geodesic_arc_on_sphere_traits_2.h>

Inheritance diagram for Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >:
Inheritance graph
[legend]

List of all members.

Classes

class  Approximate_2
class  Are_mergeable_2
class  Clockwise_in_between_2
class  Compare_endpoints_xy_2
class  Compare_x_2
class  Compare_x_near_boundary_2
class  Compare_x_on_boundary_2
class  Compare_xy_2
class  Compare_y_at_x_2
class  Compare_y_at_x_left_2
class  Compare_y_at_x_right_2
class  Compare_y_near_boundary_2
class  Compare_y_on_boundary_2
class  Construct_max_vertex_2
class  Construct_min_vertex_2
class  Construct_opposite_2
class  Construct_x_monotone_curve_2
class  Equal_2
class  Intersect_2
class  Is_on_x_identification_2
class  Is_on_y_identification_2
class  Is_vertical_2
class  Make_x_monotone_2
class  Merge_2
class  Parameter_space_in_x_2
class  Parameter_space_in_y_2
class  Split_2

Public Types

typedef T_Kernel Kernel
typedef Tag_true Has_left_category
typedef Tag_true Has_merge_category
typedef Arr_identified_side_tag Arr_left_side_tag
typedef Arr_contracted_side_tag Arr_bottom_side_tag
typedef Arr_contracted_side_tag Arr_top_side_tag
typedef Arr_identified_side_tag Arr_right_side_tag
typedef
Arr_extended_direction_3
< Kernel
Point_2
typedef
Arr_x_monotone_geodesic_arc_on_sphere_3
< Kernel
X_monotone_curve_2
typedef
Arr_geodesic_arc_on_sphere_3
< Kernel
Curve_2
typedef unsigned int Multiplicity

Public Member Functions

 Arr_geodesic_arc_on_sphere_traits_2 ()
Comparison_result compare_y (const Direction_3 &d1, const Direction_3 &d2) const
Comparison_result compare_x (const Direction_2 &d1, const Direction_2 &d2) const
Comparison_result compare_x (const Direction_3 &d1, const Direction_3 &d2) const
Comparison_result compare_xy (const Direction_3 &d1, const Direction_3 &d2) const
Basic functor definitions
Compare_x_2 compare_x_2_object () const
Compare_xy_2 compare_xy_2_object () const
Construct_min_vertex_2 construct_min_vertex_2_object () const
Construct_max_vertex_2 construct_max_vertex_2_object () const
Is_vertical_2 is_vertical_2_object () const
Compare_y_at_x_2 compare_y_at_x_2_object () const
Compare_y_at_x_left_2 compare_y_at_x_left_2_object () const
Compare_y_at_x_right_2 compare_y_at_x_right_2_object () const
Equal_2 equal_2_object () const
Functor definitions to handle boundaries
Parameter_space_in_x_2 parameter_space_in_x_2_object () const
Parameter_space_in_y_2 parameter_space_in_y_2_object () const
Compare_x_near_boundary_2 compare_x_near_boundary_2_object () const
Compare_y_near_boundary_2 compare_y_near_boundary_2_object () const
Is_on_x_identification_2 is_on_x_identification_2_object () const
Is_on_y_identification_2 is_on_y_identification_2_object () const
Compare_x_on_boundary_2 compare_x_on_boundary_2_object () const
Compare_y_on_boundary_2 compare_y_on_boundary_2_object () const
Functor definitions for supporting intersections.
Make_x_monotone_2 make_x_monotone_2_object () const
Split_2 split_2_object () const
Clockwise_in_between_2 clockwise_in_between_2_object () const
Intersect_2 intersect_2_object () const
Are_mergeable_2 are_mergeable_2_object () const
Merge_2 merge_2_object () const
Functor definitions for the Boolean set-operation traits.
Compare_endpoints_xy_2 compare_endpoints_xy_2_object () const
Construct_opposite_2 construct_opposite_2_object () const

Protected Types

typedef Kernel::FT FT
typedef Kernel::Direction_3 Direction_3
typedef Kernel::Vector_3 Vector_3
typedef Kernel::Direction_2 Direction_2
typedef Kernel::Vector_2 Vector_2
typedef Direction_2(* Project )(const Direction_3 &d)

Protected Member Functions

Oriented_side oriented_side (const Direction_3 &normal, const Direction_3 dir) const
bool has_on (const Direction_3 &normal, const Direction_3 &dir) const

Static Protected Member Functions

static const Direction_3pos_pole ()
static const Direction_3neg_pole ()
static const Direction_2identification_xy ()
static const Direction_3identification_normal ()
static const Direction_2neg_x_2 ()
static const Direction_2neg_y_2 ()
static Sign x_sign (Direction_3 d)
static Sign y_sign (Direction_3 d)
static Sign z_sign (Direction_3 d)
static Direction_2 project_xy (const Direction_3 &d)
static Direction_2 project_yz (const Direction_3 &d)
static Direction_2 project_xz (const Direction_3 &d)
static Orientation orientation (const Direction_2 &d1, const Direction_2 &d2)

Friends

class Arr_x_monotone_geodesic_arc_on_sphere_3< T_Kernel >
class Arr_geodesic_arc_on_sphere_3< T_Kernel >
class Arr_extended_direction_3< T_Kernel >

Functor definitions for the landmarks point-location strategy.

typedef double Approximate_number_type
Approximate_2 approximate_2_object () const
Construct_x_monotone_curve_2 construct_x_monotone_curve_2_object () const

Detailed Description

template<typename T_Kernel>
class Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >

A traits class-template for constructing and maintaining arcs of great circles embedded on spheres. It is parameterized from a (linear) geometry kernel, which it also derives from


Member Typedef Documentation

template<typename T_Kernel >
typedef double Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Approximate_number_type
template<typename T_Kernel >
typedef Arr_contracted_side_tag Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Arr_bottom_side_tag
template<typename T_Kernel >
typedef Arr_identified_side_tag Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Arr_left_side_tag
template<typename T_Kernel >
typedef Arr_identified_side_tag Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Arr_right_side_tag
template<typename T_Kernel >
typedef Arr_contracted_side_tag Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Arr_top_side_tag
template<typename T_Kernel >
typedef Arr_geodesic_arc_on_sphere_3<Kernel> Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Curve_2
template<typename T_Kernel >
typedef Kernel::Direction_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Direction_2 [protected]
template<typename T_Kernel >
typedef Kernel::Direction_3 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Direction_3 [protected]
template<typename T_Kernel >
typedef Kernel::FT Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::FT [protected]
template<typename T_Kernel >
typedef Tag_true Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Has_left_category
template<typename T_Kernel >
typedef Tag_true Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Has_merge_category
template<typename T_Kernel >
typedef T_Kernel Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Kernel
template<typename T_Kernel >
typedef unsigned int Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Multiplicity
template<typename T_Kernel >
typedef Arr_extended_direction_3<Kernel> Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Point_2
template<typename T_Kernel >
typedef Direction_2(* Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Project)(const Direction_3 &d) [protected]
template<typename T_Kernel >
typedef Kernel::Vector_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Vector_2 [protected]
template<typename T_Kernel >
typedef Kernel::Vector_3 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Vector_3 [protected]

Constructor & Destructor Documentation

template<typename T_Kernel >
Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::Arr_geodesic_arc_on_sphere_traits_2 ( ) [inline]

Default constructor


Member Function Documentation

template<typename T_Kernel >
Approximate_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::approximate_2_object ( ) const [inline]

Obtain an Approximate_2 function object

template<typename T_Kernel >
Are_mergeable_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::are_mergeable_2_object ( ) const [inline]

Obtain an Are_mergeable_2 function object

Here is the caller graph for this function:

template<typename T_Kernel >
Clockwise_in_between_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::clockwise_in_between_2_object ( ) const [inline]

Obtain a Clockwise_in_between function object

Here is the caller graph for this function:

template<typename T_Kernel >
Compare_endpoints_xy_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_endpoints_xy_2_object ( ) const [inline]

Obtain a Compare_endpoints_xy_2 function object

template<typename T_Kernel >
Comparison_result Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_x ( const Direction_2 d1,
const Direction_2 d2 
) const [inline]

Compare two directions contained in the xy plane by u.

Parameters:
d1the first direction.
d2the second direction.
Returns:
SMALLER - u(d1) < u(d2); EQUAL - u(d1) = u(d2); LARGER - u(d1) > u(d2).

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T_Kernel >
Comparison_result Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_x ( const Direction_3 d1,
const Direction_3 d2 
) const [inline]

Compare two endpoint directions by u.

Parameters:
d1the first enpoint direction.
d2the second endpoint direction.
Returns:
SMALLER - u(d1) < u(d2); EQUAL - u(d1) = u(d2); LARGER - u(d1) > u(d2).
Precondition:
d1 does not coincide with any pole.
d2 does not coincide with any pole.

Here is the call graph for this function:

template<typename T_Kernel >
Compare_x_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_x_2_object ( ) const [inline]

Obtain a Compare_x_2 function object

Reimplemented in Arr_geodesic_arc_on_sphere_partition_traits_2< T_Kernel, Container_P >.

Here is the caller graph for this function:

template<typename T_Kernel >
Compare_x_near_boundary_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_x_near_boundary_2_object ( ) const [inline]

Obtain a Compare_x_near_boundary_2 function object

template<typename T_Kernel >
Compare_x_on_boundary_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_x_on_boundary_2_object ( ) const [inline]

Obtain a Compare_x_on_boundary_2 function object

template<typename T_Kernel >
Comparison_result Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_xy ( const Direction_3 d1,
const Direction_3 d2 
) const [inline]

Compare two endpoint directions lexigoraphically: by u, then by v.

Parameters:
d1the first enpoint direction.
d2the second endpoint direction.
Returns:
SMALLER - u(d1) < u(d2); SMALLER - u(d1) = u(d2) and v(d1) < v(d2); EQUAL - u(d1) = u(d2) and v(d1) = v(d2); LARGER - u(d1) = u(d2) and v(d1) > v(d2); LARGER - u(d1) > u(d2).
Precondition:
d1 does not lie on the discontinuity arc.
d2 does not lie on the discontinuity arc.

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T_Kernel >
Compare_xy_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_xy_2_object ( ) const [inline]

Obtain a Compare_xy_2 function object

template<typename T_Kernel >
Comparison_result Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_y ( const Direction_3 d1,
const Direction_3 d2 
) const [inline]

Compare two endpoint directions by v.

Parameters:
d1the first enpoint direction.
d2the second endpoint direction.
Returns:
SMALLER - v(d1) < v(d2); EQUAL - v(d1) = v(d2); LARGER - v(d1) > v(d2).

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T_Kernel >
Compare_y_at_x_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_y_at_x_2_object ( ) const [inline]

Obtain a Compare_y_at_x_2 function object

template<typename T_Kernel >
Compare_y_at_x_left_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_y_at_x_left_2_object ( ) const [inline]

Obtain a Compare_y_at_x_left_2 function object

template<typename T_Kernel >
Compare_y_at_x_right_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_y_at_x_right_2_object ( ) const [inline]

Obtain a Compare_y_at_x_right_2 function object

template<typename T_Kernel >
Compare_y_near_boundary_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_y_near_boundary_2_object ( ) const [inline]

Obtain a Compare_y_near_boundary_2 function object

template<typename T_Kernel >
Compare_y_on_boundary_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::compare_y_on_boundary_2_object ( ) const [inline]

Obtain a Compare_y_on_boundary_2 function object

template<typename T_Kernel >
Construct_max_vertex_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::construct_max_vertex_2_object ( ) const [inline]

Obtain a Construct_max_vertex_2 function object

template<typename T_Kernel >
Construct_min_vertex_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::construct_min_vertex_2_object ( ) const [inline]

Obtain a Construct_min_vertex_2 function object

template<typename T_Kernel >
Construct_opposite_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::construct_opposite_2_object ( ) const [inline]

Obtain a Construct_opposite_2 function object

Obtain a Construct_x_monotone_curve_2 function object

template<typename T_Kernel >
Equal_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::equal_2_object ( ) const [inline]

Obtain an Equal_2 function object

template<typename T_Kernel >
bool Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::has_on ( const Direction_3 normal,
const Direction_3 dir 
) const [inline, protected]

Determined whether a direction is contained in a plane given by its normal

Parameters:
normalthe direction of the 3D plane.
dirthe 3D direction.
Returns:
true if dir is contained in plane; false otherwise.
Precondition:
the plane contains the origin.

Here is the call graph for this function:

template<typename T_Kernel >
static const Direction_3& Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::identification_normal ( ) [inline, static, protected]

Obtain the normal of the plane that contains the identification arc. By default, it is the vector directed along the positive y axis (y = infinity).

Returns:
the normal of the plane that contains the identification arc.
template<typename T_Kernel >
static const Direction_2& Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::identification_xy ( ) [inline, static, protected]

Obtain the intersection of the identification arc and the xy plane. By default, it is the vector directed along the negative x axis (x = -infinity).

Returns:
the intersection of the identification arc and the xy plane.

Here is the caller graph for this function:

template<typename T_Kernel >
Intersect_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::intersect_2_object ( ) const [inline]

Obtain an Intersect_2 function object

template<typename T_Kernel >
Is_on_x_identification_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::is_on_x_identification_2_object ( ) const [inline]

Obtain a Is_on_x_identification_2 function object

template<typename T_Kernel >
Is_on_y_identification_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::is_on_y_identification_2_object ( ) const [inline]

Obtain a Is_on_y_identification_2 function object

template<typename T_Kernel >
Is_vertical_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::is_vertical_2_object ( ) const [inline]

Obtain an Is_vertical_2 function object

template<typename T_Kernel >
Make_x_monotone_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::make_x_monotone_2_object ( ) const [inline]

Obtain a Make_x_monotone_2 function object

template<typename T_Kernel >
Merge_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::merge_2_object ( ) const [inline]

Obtain a Merge_2 function object

template<typename T_Kernel >
static const Direction_3& Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::neg_pole ( ) [inline, static, protected]

Obtain the negative (south) pole

Returns:
the negative (south) pole

Here is the caller graph for this function:

template<typename T_Kernel >
static const Direction_2& Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::neg_x_2 ( ) [inline, static, protected]

Obtain the 2D direction directed along the negative x axis

Returns:
the direction directed at x = -infinity
template<typename T_Kernel >
static const Direction_2& Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::neg_y_2 ( ) [inline, static, protected]

Obtain the 2D direction directed along the negative y axis

Returns:
the direction directed at y = -infinity

Here is the caller graph for this function:

template<typename T_Kernel >
static Orientation Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::orientation ( const Direction_2 d1,
const Direction_2 d2 
) [inline, static, protected]

Compute the orientation of two directions.

Parameters:
d1the first direction.
d2the second direction.
Returns:
the relative orientation of d1 and d2.
template<typename T_Kernel >
Oriented_side Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::oriented_side ( const Direction_3 normal,
const Direction_3  dir 
) const [inline, protected]

Compare the relative position of a direction and a plane given by its normal.

Parameters:
normalthe direction of the plane.
dirthe direction.

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T_Kernel >
Parameter_space_in_x_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::parameter_space_in_x_2_object ( ) const [inline]

Obtain a Parameter_space_in_x_2 function object

template<typename T_Kernel >
Parameter_space_in_y_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::parameter_space_in_y_2_object ( ) const [inline]

Obtain a Parameter_space_in_y_2 function object

template<typename T_Kernel >
static const Direction_3& Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::pos_pole ( ) [inline, static, protected]

Obtain the possitive (north) pole

Returns:
the possitive (north) pole

Here is the caller graph for this function:

template<typename T_Kernel >
static Direction_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::project_xy ( const Direction_3 d) [inline, static, protected]

Project a 3D direction onto the xy-plane

Parameters:
dthe 3D direction
Returns:
the projection onto the xy-plane

Here is the caller graph for this function:

template<typename T_Kernel >
static Direction_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::project_xz ( const Direction_3 d) [inline, static, protected]

Project a 3D direction onto the zx-plane

Parameters:
dthe 3D direction
Returns:
the projection onto the xz-plane

Here is the caller graph for this function:

template<typename T_Kernel >
static Direction_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::project_yz ( const Direction_3 d) [inline, static, protected]

Project a 3D direction onto the yz-plane

Parameters:
dthe 3D direction
Returns:
the projection onto the yz-plane

Here is the caller graph for this function:

template<typename T_Kernel >
Split_2 Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::split_2_object ( ) const [inline]

Obtain a Split_2 function object

template<typename T_Kernel >
static Sign Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::x_sign ( Direction_3  d) [inline, static, protected]

Obtain the sign of the x-coordinate of a direction in space

Parameters:
dthe direction in space
Returns:
the sign of the x-coordinate of d

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T_Kernel >
static Sign Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::y_sign ( Direction_3  d) [inline, static, protected]

Obtain the sign of the y-coordinate of a direction in space

Parameters:
dthe direction in space
Returns:
the sign of the y-coordinate of d

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T_Kernel >
static Sign Arr_geodesic_arc_on_sphere_traits_2< T_Kernel >::z_sign ( Direction_3  d) [inline, static, protected]

Obtain the sign of the z-coordinate of a direction in space

Parameters:
dthe direction in space
Returns:
the sign of the z-coordinate of d

Here is the call graph for this function:

Here is the caller graph for this function:


Friends And Related Function Documentation

template<typename T_Kernel >
friend class Arr_extended_direction_3< T_Kernel > [friend]
template<typename T_Kernel >
friend class Arr_geodesic_arc_on_sphere_3< T_Kernel > [friend]
template<typename T_Kernel >
friend class Arr_x_monotone_geodesic_arc_on_sphere_3< T_Kernel > [friend]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines