CGAL 6.0 - 2D and 3D Linear Geometry Kernel
Loading...
Searching...
No Matches
CGAL::Direction_2< Kernel > Class Template Reference

#include <CGAL/Direction_2.h>

Definition

template<typename Kernel>
class CGAL::Direction_2< Kernel >

An object d of the class Direction_2 is a vector in the two-dimensional vector space \( \mathbb{R}^2\) where we forget about its length.

They can be viewed as unit vectors, although there is no normalization internally, since this is error prone. Directions are used whenever the length of a vector does not matter. They also characterize a set of parallel oriented lines that have the same orientations. For example, you can ask for the direction orthogonal to an oriented plane, or the direction of an oriented line. Further, they can be used to indicate angles. The slope of a direction is dy()/dx().

Is model of
Kernel::Direction_2

Creation

 Direction_2 (const Vector_2< Kernel > &v)
 introduces the direction d of vector v.
 
 Direction_2 (const Line_2< Kernel > &l)
 introduces the direction d of line l.
 
 Direction_2 (const Ray_2< Kernel > &r)
 introduces the direction d of ray r.
 
 Direction_2 (const Segment_2< Kernel > &s)
 introduces the direction d of segment s.
 
 Direction_2 (const Kernel::RT &x, const Kernel::RT &y)
 introduces a direction d passing through the origin and the point with Cartesian coordinates \( (x, y)\).
 

Operations

There is a total order on directions.

We compare the angles between the positive \( x\)-axis and the directions in counterclockwise order.

Kernel::RT delta (int i) const
 returns values, such that d== Direction_2<Kernel>(delta(0),delta(1)).
 
Kernel::RT dx () const
 returns delta(0).
 
Kernel::RT dy () const
 returns delta(1).
 
bool operator== (const Direction_2< Kernel > &e) const
 
bool operator!= (const Direction_2< Kernel > &e) const
 
bool operator< (const Direction_2< Kernel > &e) const
 
bool operator> (const Direction_2< Kernel > &e) const
 
bool operator<= (const Direction_2< Kernel > &e) const
 
bool operator>= (const Direction_2< Kernel > &e) const
 
bool counterclockwise_in_between (const Direction_2< Kernel > &d1, const Direction_2< Kernel > &d2) const
 returns true, iff d is not equal to d1, and while rotating counterclockwise starting at d1, d is reached strictly before d2 is reached.
 
Direction_2< Kerneloperator- () const
 The direction opposite to d.
 

Miscellaneous

Vector_2< Kernelvector () const
 returns a vector that has the same direction as d.
 
Direction_2< Kerneltransform (const Aff_transformation_2< Kernel > &t) const
 returns the direction obtained by applying t on d.
 

Constructor & Destructor Documentation

◆ Direction_2() [1/2]

template<typename Kernel >
CGAL::Direction_2< Kernel >::Direction_2 ( const Vector_2< Kernel > &  v)

introduces the direction d of vector v.

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

◆ Direction_2() [2/2]

template<typename Kernel >
CGAL::Direction_2< Kernel >::Direction_2 ( const Kernel::RT &  x,
const Kernel::RT &  y 
)

introduces a direction d passing through the origin and the point with Cartesian coordinates \( (x, y)\).

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

Member Function Documentation

◆ counterclockwise_in_between()

template<typename Kernel >
bool CGAL::Direction_2< Kernel >::counterclockwise_in_between ( const Direction_2< Kernel > &  d1,
const Direction_2< Kernel > &  d2 
) const

returns true, iff d is not equal to d1, and while rotating counterclockwise starting at d1, d is reached strictly before d2 is reached.

Note that true is returned if d1 == d2, unless also d == d1.

◆ delta()

template<typename Kernel >
Kernel::RT CGAL::Direction_2< Kernel >::delta ( int  i) const

returns values, such that d== Direction_2<Kernel>(delta(0),delta(1)).

Precondition
0 <= i <= 1.
Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

◆ dx()

template<typename Kernel >
Kernel::RT CGAL::Direction_2< Kernel >::dx ( ) const

returns delta(0).

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

◆ dy()

template<typename Kernel >
Kernel::RT CGAL::Direction_2< Kernel >::dy ( ) const

returns delta(1).

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.