An instance of data type Line_d is an oriented line in -dimensional Euclidean space.
| |
the linear algebra layer.
|
| |||
introduces a variable l of
type Line_d<Kernel>.
| |||
| |||
introduces a
line through p and q and oriented from p to
q.
| |||
| |||
introduces
a line through p with direction dir.
| |||
| |||
introduces a variable
l of type Line_d<Kernel> and initializes it to the line through
s.source() and s.target() with direction from
s.source() to s.target().
| |||
| |||
introduces a variable l of
type Line_d<Kernel> and initializes it to the line through
r.point(1) and r.point(2).
|
|
| returns the dimension of the ambient space. | ||
|
| returns an arbitrary point on l. It holds that point(i) == point(j), iff i==j. Furthermore, l is directed from point(i) to point(j), for all i < j. | ||
|
| returns the line (point(2),point(1)) of opposite direction. | ||
|
| returns the direction of l. | ||
|
| |||
returns .
| ||||
|
|
returns
l+v, i.e., l translated by vector .
| ||
|
| |||
returns the
point of intersection of l with the hyperplane that is
orthogonal to l and that contains p.
| ||||
|
|
returns true if lies
on l and false otherwise.
|
Lines are implemented by a pair of points as an item type. All operations like creation, initialization, tests, direction calculation, input and output on a line take time . dimension(), coordinate and point access, and identity test take constant time. The operations for intersection calculation also take time . The space requirement is .