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

Kernel::RT  d.delta ( int i) const 
returns values, such that d== Direction_2<Kernel>(delta(0),delta(1)).
 
Kernel::RT  d.dx () const  returns delta(0).  
Kernel::RT  d.dy () const  returns delta(1). 
There is a total order on directions. We compare the angles between the positive xaxis and the directions in counterclockwise order.
bool  d.operator== ( e) const  
bool  d.operator!= ( e) const  
bool  d.operator< ( e) const  
bool  d.operator> ( e) const  
bool  d.operator<= ( e) const  
bool  d.operator>= ( e) const 
Furthermore, we have
bool  d.counterclockwise_in_between ( d1, 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.  
Direction_2<Kernel>  d.operator () const  The direction opposite to d. 
Vector_2<Kernel>  d.vector () const  returns a vector that has the same direction as d. 
Direction_2<Kernel>  d.transform ( Aff_transformation_2<Kernel> t) const  
returns the direction obtained by applying t on d. 