|
CGAL 6.0 - dD Geometry Kernel
|
#include <CGAL/Kernel_d/Direction_d.h>
A Direction_d is a vector in the \( d\)-dimensional vector space where we forget about its length.
We represent directions in \( d\)-dimensional space as a tuple \( (h_0,\ldots,h_d)\) of variables of type RT which we call the homogeneous coordinates of the direction. The coordinate \( h_d\) must be positive. The Cartesian coordinates of a direction are \( c_i = h_i/h_d\) for \( 0 \le i < d\), which are of type FT. Two directions are equal if their Cartesian coordinates are positive multiples of each other. Directions are in one-to-one correspondence to points on the unit sphere.
Downward compatibility
We provide the operations of the lower dimensional interface dx(), dy(), dz().
Implementation
Directions are implemented by arrays of integers as an item type. All operations like creation, initialization, tests, inversion, input and output on a direction \( d\) take time \(O(d.\mathit{dimension}())\). dimension(), coordinate access and conversion take constant time. The space requirement is \(O(d.\mathit{dimension}())\).
Types | |
| typedef unspecified_type | LA |
| the linear algebra layer. | |
| typedef unspecified_type | Delta_const_iterator |
a read-only iterator for the deltas of dir. | |
| typedef unspecified_type | Base_direction |
| construction tag. | |
Creation | |
| Direction_d () | |
introduces a variable dir of type Direction_d<Kernel>. | |
| Direction_d (Vector_d< Kernel > v) | |
introduces a variable dir of type Direction_d<Kernel> initialized to the direction of v. | |
| template<class InputIterator > | |
| Direction_d (int d, InputIterator first, InputIterator last) | |
introduces a variable dir of type Direction_d<Kernel> in dimension d with representation tuple set [first,last). | |
| Direction_d (int d, Base_direction, int i) | |
returns a variable dir of type Direction_d<Kernel> initialized to the direction of the \( i\)-th base vector of dimension \( d\). | |
| Direction_d (RT x, RT y) | |
introduces a variable dir of type Direction_d<Kernel> in \( 2\)-dimensional space. | |
| Direction_d (RT x, RT y, RT z) | |
introduces a variable dir of type Direction_d<Kernel> in \( 3\)-dimensional space. | |
Operations | |
| int | dimension () |
returns the dimension of dir. | |
| RT | delta (int i) |
returns the \( i\)-th component of dir. | |
| RT | operator[] (int i) |
returns the \( i\)-th delta of dir. | |
| Delta_const_iterator | deltas_begin () |
returns an iterator pointing to the first delta of dir. | |
| Delta_const_iterator | deltas_end () |
returns an iterator pointing beyond the last delta of dir. | |
| Vector_d< Kernel > | vector () |
returns a vector pointing in direction dir. | |
| bool | is_degenerate () |
returns true iff dir.delta(i)==0 for all \( 0\leq i < d\). | |
| Direction_d< Kernel > | transform (const Aff_transformation_d< Kernel > &t) |
| returns \( t(p)\). | |
| Direction_d< Kernel > | opposite () |
returns the direction opposite to dir. | |
| Direction_d< Kernel > | operator- () |
returns the direction opposite to dir. | |
| CGAL::Direction_d< Kernel >::Direction_d | ( | int | d, |
| InputIterator | first, | ||
| InputIterator | last | ||
| ) |
introduces a variable dir of type Direction_d<Kernel> in dimension d with representation tuple set [first,last).
d is nonnegative, [first,last) has d elements. | InputIterator | has RT as value type. |
| CGAL::Direction_d< Kernel >::Direction_d | ( | int | d, |
| Base_direction | , | ||
| int | i | ||
| ) |
returns a variable dir of type Direction_d<Kernel> initialized to the direction of the \( i\)-th base vector of dimension \( d\).
| RT CGAL::Direction_d< Kernel >::delta | ( | int | i | ) |
returns the \( i\)-th component of dir.
| RT CGAL::Direction_d< Kernel >::operator[] | ( | int | i | ) |
returns the \( i\)-th delta of dir.