Definition
An instance l of the data type d3_line is a directed straight line in three-dimensional space.
#include < LEDA/geo/d3_line.h >
Creation
d3_line | l(const d3_point& p1, const 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(const 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(const 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(const d3_point& p, const d3_point& q, const 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(const vector& v) | |
returns l translated by v.
Precond.: v.dim()=3. |
||
d3_line | l + const vector& v | returns l translated by vector v. |
d3_line | l - const vector& v | returns l translated by vector - v. |
d3_line | l.reflect(const d3_point& p, const d3_point& q, const d3_point& v) | |
returns l reflected across the plane through (p,q,v). | ||
d3_line | l.reflect(const 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(const d3_segment& s) | |
decides, whether l and s intersect in a single point. | ||
bool | l.intersection(const 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(const d3_line& m) | |
decides, whether l and m intersect. | ||
bool | l.intersection(const 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(const d3_point& p) | |
returns the square of the distance between l and p. | ||
double | l.distance(const d3_point& p) | |
returns the distance between l and p. |