An instance of data type Ray_d is a ray in d-dimensional Euclidean space. It starts in a point called the source of r and it goes to infinity.
Ray_d<Kernel>::LA | |
the linear algebra layer.
|
Ray_d<Kernel> r; | |||||
introduces some ray in
d-dimensional space.
| |||||
Ray_d<Kernel> r ( Point_d<Kernel> p, Point_d<Kernel> q); | |||||
introduces a ray
through p and q and starting at p.
| |||||
Ray_d<Kernel> r ( Point_d<Kernel> p, Direction_d<Kernel> dir); | |||||
introduces
a ray starting in p with direction dir.
| |||||
Ray_d<Kernel> r ( Segment_d<Kernel> s); | |||||
introduces a ray through
s.source() and s.target() and starting at
s.source().
|
int | r.dimension () | returns the dimension of the ambient space. | ||
Point_d<Kernel> | r.source () | returns the source point of r. | ||
Point_d<Kernel> | r.point ( int i) |
returns a point on
r. point(0) is the source. point(i), with i>0, is
different from the source.
| ||
Direction_d<Kernel> | r.direction () | returns the direction of r. | ||
Line_d<Kernel> | r.supporting_line () | returns the supporting line of r. | ||
Ray_d<Kernel> | r.opposite () | returns the ray with direction opposite to r and starting in source. | ||
Ray_d<Kernel> | r.transform ( Aff_transformation_d<Kernel> t) | |||
returns t(r).
| ||||
Ray_d<Kernel> | r + Vector_d<Kernel> v |
returns
r+v, i.e., r translated by vector v.
| ||
bool | r.has_on ( Point_d<Kernel> p) |
A point is on r,
iff it is equal to the source of r, or if it is in the interior
of r.
|
bool | parallel ( r1, r2) |
returns true if the unoriented supporting lines of r1 and
r2 are parallel and false otherwise.
|
Rays are implemented by a pair of points as an item type. All operations like creation, initialization, tests, direction calculation, input and output on a ray r take time O(r.dimension()). dimension(), coordinate and point access, and identity test take constant time. The space requirement is O(r.dimension()).