\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.3 - 2D and 3D Linear Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Direction_3< Kernel > Class Template Reference
3D Kernel Objects

`#include <CGAL/Direction_3.h>`

## Definition

An object of the class `Direction_3` is a vector in the three-dimensional vector space \( \mathbb{R}^3\) where we forget about their 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 lines that have the same orientation or the direction normal to parallel planes that have the same orientation. For example, you can ask for the direction orthogonal to an oriented plane, or the direction of an oriented line.

See Also
  `Kernel::Direction_3`

## Creation
| Direction_3 (const Vector_3< Kernel > &v)
| introduces a direction `d` initialized with the direction of vector `v`.
| Direction_3 (const Line_3< Kernel > &l)
| introduces the direction `d` of line `l`.
| Direction_3 (const Ray_3< Kernel > &r)
| introduces the direction `d` of ray `r`.
| Direction_3 (const Segment_3< Kernel > &s)
| introduces the direction `d` of segment `s`.
| Direction_3 (const Kernel::RT &x, const Kernel::RT &y, const Kernel::RT &z)
| introduces a direction `d` initialized with the direction from the origin to the point with Cartesian coordinates \( (x, y, z)\).

## Operations
Kernel::RT | delta (int i) const
| returns values, such that `d``== Direction_3<Kernel>(delta(0),delta(1),delta(2))`. More...
Kernel::RT | dx () const
| returns `delta(0)`.
Kernel::RT | dy () const
| returns `delta(1)`.
Kernel::RT | dz () const
| returns `delta(2)`.
bool | operator== (const Direction_3< Kernel > &e) const
| Test for equality.
bool | operator!= (const Direction_3< Kernel > &e) const
| Test for inequality.
Direction_3< Kernel > | operator- () const
| The direction opposite to `d`.
Vector_3< Kernel > | vector () const
| returns a vector that has the same direction as `d`.
Direction_3< Kernel > | transform (const Aff_transformation_3< Kernel > &t) const
| returns the direction obtained by applying `t` on `d`.

## Member Function Documentation

template<typename Kernel >

Kernel::RT CGAL::Direction_3< Kernel >::delta | ( | int | i) |  | const

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

Precondition
  \( 0 \leq i \leq2\).