An instance of data type Ray_d is a ray in -dimensional Euclidean space. It starts in a point called the source of r and it goes to infinity.
| |
the linear algebra layer.
|
| |||||
introduces some ray in
-dimensional space.
| |||||
| |||||
introduces a ray
through p and q and starting at p.
| |||||
| |||||
introduces
a ray starting in p with direction dir.
| |||||
| |||||
introduces a ray through
s.source() and s.target() and starting at
s.source().
|
|
| returns the dimension of the ambient space. | ||
|
| returns the source point of r. | ||
|
|
returns a point on
r. point(0) is the source. point(i), with , is
different from the source.
| ||
|
| returns the direction of r. | ||
|
| returns the supporting line of r. | ||
|
| returns the ray with direction opposite to r and starting in source. | ||
|
| |||
returns .
| ||||
|
|
returns
r+v, i.e., r translated by vector .
| ||
|
|
A point is on r,
iff it is equal to the source of r, or if it is in the interior
of r.
|
|
|
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 take time . dimension(), coordinate and point access, and identity test take constant time. The space requirement is .