An instance of data type Line_d is an oriented line in d-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 t(l).
| ||||
|
|
returns
l+v, i.e., l translated by vector v.
| ||
|
| |||
returns the
point of intersection of l with the hyperplane that is
orthogonal to l and that contains p.
| ||||
|
|
returns true if p 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 l take time O(l.dimension()). dimension(), coordinate and point access, and identity test take constant time. The operations for intersection calculation also take time O(l.dimension()). The space requirement is O(l.dimension()).