An instance of data type Line_d is an oriented line in $$ddimensional Euclidean space.
 
the representation type.
 
 
the ring type.
 
 
the field type.
 
 
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. Precondition: $$p and $$q are distinct and have the same dimension.
 
 
introduces
a line through p with direction dir. Precondition: p.dimension()==dir.dimension(), dir is not degenerate.
 
 
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(). Precondition: $$s is not degenerate.
 
 
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). Precondition: l.dimension()==t.dimension().  

 
returns
l+v, i.e., l translated by vector $$v. Precondition: l.dimension()==v.dimension().  

 
returns the
point of intersection of l with the hyperplane that is
orthogonal to l and that contains p. Precondition: l.dimension()==p.dimension().  

 
returns true if $$p lies
on l and false otherwise. Precondition: l.dimension()==p.dimension(). 

 
Test for equality as unoriented lines. Precondition: l1.dimension()==l2.dimension().  

 
returns true if l1 and l2 are parallel as unoriented
lines and false otherwise. Precondition: l1.dimension()==l2.dimension(). 
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()).