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 representation type.
| |
| |
the ring type.
| |
| |
the field type.
| |
| |
the linear algebra layer.
|
| |
introduces some ray in
-dimensional space.
| |
| |
introduces a ray
through p and q and starting at p. Precondition: and are distinct and have the same dimension. Precondition: p.dimension()==q.dimension().
| |
| |
introduces
a ray starting in p with direction dir. Precondition: p and dir have the same dimension and dir is not degenerate. Precondition: p.dimension()==dir.dimension().
| |
| |
introduces a ray through
s.source() and s.target() and starting at
s.source(). Precondition: is not degenerate.
|
|
| 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. Precondition: . |
| ||
| returns the direction of r. | |
|
| |
returns the supporting line of r. | ||
|
| returns the ray with direction opposite to r and starting in source. |
|
| |
returns . Precondition: r.dimension()==t.dimension(). | ||
|
| |
returns
r+v, i.e., r translated by vector . Precondition: r.dimension()==v.dimension(). | ||
|
| |
A point is on r,
iff it is equal to the source of r, or if it is in the interior
of r. Precondition: r.dimension()==p.dimension(). |
|
| |
returns true if the unoriented supporting lines of r1 and
r2 are parallel and false otherwise. Precondition: r1.dimension()==r2.dimension(). |
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 .