Definition
An instance l of the data type d3_line is a directed straight line in three-dimensional space.
#include < LEDA/d3 _line.h >
Creation
d3_line | l(d3_point p1, d3_point p2) | |
introduces a variable l of type d3_line. l is initialized to the line through
points p1,p2.
Precondition: p1 != p2. |
||
d3_line | l(d3_segment s) | introduces a variable l of type d3_line. l is initialized to the line supporting
segment s.
Precondition: s is not trivial. |
d3_line | l | introduces a variable l of type d3_line. l is initialized to the line through points (0,0,0) and (1,0,0). |
Operations
bool | l.contains(d3_point p) | returns true if p lies on l. |
d3_point | l.point1() | returns a point on l. |
d3_point | l.point2() | returns a second point on l. |
d3_segment | l.seg() | returns a non-trivial segment on l with the same direction. |
bool | l.project_xy(line& m) | if the projection of l into the xy plane is not a point, the function returns true and assignes the projection to m. Otherwise false is returned. |
bool | l.project_xz(line& m) | if the projection of l into the xz plane is not a point, the function returns true and assignes the projection to m. Otherwise false is returned. |
bool | l.project_yz(line& m) | if the projection of l into the yz plane is not a point, the function returns true and assignes the projection to m. Otherwise false is returned. |
bool | l.project(d3_point p, d3_point q, d3_point v, d3_line& m) | |
if the projection of l into the plane through (p,q,v) is not a point, the function returns true and assignes the projection to m. Otherwise false is returned. | ||
d3_line | l.translate(double dx, double dy, double dz) | |
returns l translated by vector (dx,dy,dz). | ||
d3_line | l.translate(vector v) | returns l translated by v.
Precond.: v.dim()=3. |
d3_line | l + vector v | returns l translated by vector v. |
d3_line | l - vector v | returns l translated by vector - v. |
d3_line | l.reflect(d3_point p, d3_point q, d3_point v) | |
returns l reflected across the plane through (p,q,v). | ||
d3_line | l.reflect(d3_point p) | returns l reflected across point p. |
d3_line | l.reverse() | returns l reversed. |
vector | l.to_vector() | returns point2()-point1(). |
bool | l.intersection(d3_segment s) | |
decides, whether l and s intersect in a single point. | ||
bool | l.intersection(d3_segment s, d3_point& p) | |
decides, whether l and s intersect in a single point. If so, the point of intersection is assigned to p. | ||
bool | l.intersection(d3_line m) | decides, whether l and m intersect. |
bool | l.intersection(d3_line m, d3_point& p) | |
decides, whether l and m intersect in a single point. If so, the point of intersection is assigned to p. | ||
double | l.sqr_dist(d3_point p) | returns the square of the distance between l and p. |
double | l.distance(d3_point p) | returns the distance between l and p. |