Represents a 2D line segment using two points. More...
#include <vgl_line_segment_2d.h>
Public Member Functions | |
| vgl_line_segment_2d () | |
| Default constructor - does not initialise!. | |
| vgl_line_segment_2d (vgl_line_segment_2d< Type > const &l) | |
| Copy constructor. | |
| vgl_line_segment_2d (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2) | |
| Construct from two end points. | |
| ~vgl_line_segment_2d () | |
| Destructor. | |
| vgl_point_2d< Type > | point1 () const |
| One end-point of the line segment. | |
| vgl_point_2d< Type > | point2 () const |
| The other end-point of the line segment. | |
| bool | operator== (vgl_line_segment_2d< Type > const &l) const |
| The equality comparison operator. | |
| bool | operator!= (vgl_line_segment_2d< Type >const &other) const |
| The inequality comparison operator. | |
| Type | a () const |
| Parameter a of line a*x + b*y + c = 0. | |
| Type | b () const |
| Parameter b of line a*x + b*y + c = 0. | |
| Type | c () const |
| Parameter c of line a*x + b*y + c = 0. | |
| vgl_vector_2d< Type > | direction () const |
| unit vector describing line direction. | |
| vgl_vector_2d< Type > | normal () const |
| unit vector orthogonal to line. | |
| double | slope_radians () const |
| angle with the oriented horizontal line y=0, measured in radians. | |
| double | slope_degrees () const |
| angle with the oriented horizontal line y=0, measured in 360-degrees. | |
| void | set (vgl_point_2d< Type > const &p1, vgl_point_2d< Type > const &p2) |
| Assignment. | |
| vgl_point_2d< Type > | point_t (const double t) const |
| Return a point on the line defined by a scalar parameter t. | |
Private Attributes | |
| vgl_point_2d< Type > | point1_ |
| One end of line segment. | |
| vgl_point_2d< Type > | point2_ |
| The other end of the line segment. | |
Related Functions | |
(Note that these are not member functions.) | |
| template<class T > | |
| vgl_point_2d< T > | vgl_closest_point (vgl_line_segment_2d< T > const &l, vgl_point_2d< T > const &p) |
| Return the closest point on a line segment l to a point p in 2D. | |
| template<class T > | |
| double | vgl_distance (vgl_line_segment_2d< T > const &l, vgl_point_2d< T > const &p) |
| Closest distance from a point p to a line segment l in 2D. | |
| template<class T > | |
| unsigned | vgl_intersection (vgl_box_2d< T > const &box, vgl_line_segment_2d< T > const &line, vgl_point_2d< T > &p0, vgl_point_2d< T > &p1) |
| Returns the number of intersections of a line segment with a box, up to two are returned in p0 and p1. | |
| template<class Type > | |
| vcl_ostream & | operator<< (vcl_ostream &s, const vgl_line_segment_2d< Type > &p) |
| Write to stream. | |
| template<class Type > | |
| vcl_istream & | operator>> (vcl_istream &is, vgl_line_segment_2d< Type > &p) |
| Read from stream. | |
| template<class T > | |
| bool | vgl_lineseg_test_line (vgl_line_2d< T > const &l1, vgl_line_segment_2d< T > const &l2) |
| true if the line meets the linesegment. | |
| template<class T > | |
| export bool | vgl_lineseg_test_point (vgl_point_2d< T > const &p, vgl_line_segment_2d< T > const &lseg) |
| true if the point lies on the line segment and is between the endpoints. | |
| template<class T > | |
| bool | vgl_lineseg_test_lineseg (vgl_line_segment_2d< T > const &l1, vgl_line_segment_2d< T > const &l2) |
| return true if the two linesegments meet. | |
Represents a 2D line segment using two points.
Definition at line 23 of file vgl_line_segment_2d.h.
| vgl_line_segment_2d< Type >::vgl_line_segment_2d | ( | ) | [inline] |
Default constructor - does not initialise!.
Definition at line 32 of file vgl_line_segment_2d.h.
| vgl_line_segment_2d< Type >::vgl_line_segment_2d | ( | vgl_line_segment_2d< Type > const & | l | ) | [inline] |
Copy constructor.
Definition at line 35 of file vgl_line_segment_2d.h.
| vgl_line_segment_2d< Type >::vgl_line_segment_2d | ( | vgl_point_2d< Type > const & | p1, |
| vgl_point_2d< Type > const & | p2 | ||
| ) | [inline] |
Construct from two end points.
Definition at line 39 of file vgl_line_segment_2d.h.
| vgl_line_segment_2d< Type >::~vgl_line_segment_2d | ( | ) | [inline] |
Destructor.
Definition at line 44 of file vgl_line_segment_2d.h.
| Type vgl_line_segment_2d< Type >::a | ( | ) | const |
Parameter a of line a*x + b*y + c = 0.
Definition at line 25 of file vgl_line_segment_2d.txx.
| Type vgl_line_segment_2d< Type >::b | ( | ) | const |
Parameter b of line a*x + b*y + c = 0.
Definition at line 31 of file vgl_line_segment_2d.txx.
| Type vgl_line_segment_2d< Type >::c | ( | ) | const |
Parameter c of line a*x + b*y + c = 0.
Definition at line 37 of file vgl_line_segment_2d.txx.
| vgl_vector_2d< Type > vgl_line_segment_2d< Type >::direction | ( | ) | const |
unit vector describing line direction.
Definition at line 43 of file vgl_line_segment_2d.txx.
| vgl_vector_2d< Type > vgl_line_segment_2d< Type >::normal | ( | ) | const |
unit vector orthogonal to line.
Definition at line 50 of file vgl_line_segment_2d.txx.
| bool vgl_line_segment_2d< Type >::operator!= | ( | vgl_line_segment_2d< Type >const & | other | ) | const [inline] |
The inequality comparison operator.
Definition at line 58 of file vgl_line_segment_2d.h.
| bool vgl_line_segment_2d< Type >::operator== | ( | vgl_line_segment_2d< Type > const & | l | ) | const [inline] |
The equality comparison operator.
Definition at line 53 of file vgl_line_segment_2d.h.
| vgl_point_2d<Type> vgl_line_segment_2d< Type >::point1 | ( | ) | const [inline] |
One end-point of the line segment.
Definition at line 47 of file vgl_line_segment_2d.h.
| vgl_point_2d<Type> vgl_line_segment_2d< Type >::point2 | ( | ) | const [inline] |
The other end-point of the line segment.
Definition at line 50 of file vgl_line_segment_2d.h.
| vgl_point_2d<Type> vgl_line_segment_2d< Type >::point_t | ( | const double | t | ) | const [inline] |
Return a point on the line defined by a scalar parameter t.
t=0.0 corresponds to point1 and t=1.0 to point2. 0<t<1 for points on the segment between point1 and point2. t<0 for points on the (infinite) line, outside the segment, and closer to point1 than to point2. t>1 for points on the (infinite) line, outside the segment, and closer to point2 than to point1.
Definition at line 94 of file vgl_line_segment_2d.h.
| void vgl_line_segment_2d< Type >::set | ( | vgl_point_2d< Type > const & | p1, |
| vgl_point_2d< Type > const & | p2 | ||
| ) | [inline] |
Assignment.
Definition at line 86 of file vgl_line_segment_2d.h.
| double vgl_line_segment_2d< Type >::slope_degrees | ( | ) | const |
angle with the oriented horizontal line y=0, measured in 360-degrees.
Returns values between -180 and 180.
Definition at line 57 of file vgl_line_segment_2d.txx.
| double vgl_line_segment_2d< Type >::slope_radians | ( | ) | const |
angle with the oriented horizontal line y=0, measured in radians.
Returns values between -pi and pi.
Definition at line 72 of file vgl_line_segment_2d.txx.
| vcl_ostream & operator<< | ( | vcl_ostream & | s, |
| const vgl_line_segment_2d< Type > & | p | ||
| ) | [related] |
Write to stream.
| vcl_istream & operator>> | ( | vcl_istream & | is, |
| vgl_line_segment_2d< Type > & | p | ||
| ) | [related] |
Read from stream.
| vgl_point_2d< T > vgl_closest_point | ( | vgl_line_segment_2d< T > const & | l, |
| vgl_point_2d< T > const & | p | ||
| ) | [related] |
Return the closest point on a line segment l to a point p in 2D.
| double vgl_distance | ( | vgl_line_segment_2d< T > const & | l, |
| vgl_point_2d< T > const & | p | ||
| ) | [related] |
Closest distance from a point p to a line segment l in 2D.
| unsigned vgl_intersection | ( | vgl_box_2d< T > const & | box, |
| vgl_line_segment_2d< T > const & | line, | ||
| vgl_point_2d< T > & | p0, | ||
| vgl_point_2d< T > & | p1 | ||
| ) | [related] |
Returns the number of intersections of a line segment with a box, up to two are returned in p0 and p1.
| bool vgl_lineseg_test_line | ( | vgl_line_2d< T > const & | l1, |
| vgl_line_segment_2d< T > const & | l2 | ||
| ) | [related] |
true if the line meets the linesegment.
End points are considered to belong to a line segment.
Definition at line 39 of file vgl_lineseg_test.h.
| bool vgl_lineseg_test_lineseg | ( | vgl_line_segment_2d< T > const & | l1, |
| vgl_line_segment_2d< T > const & | l2 | ||
| ) | [related] |
return true if the two linesegments meet.
End points are considered to belong to a line segment.
Definition at line 61 of file vgl_lineseg_test.h.
| bool vgl_lineseg_test_point | ( | vgl_point_2d< T > const & | p, |
| vgl_line_segment_2d< T > const & | lseg | ||
| ) | [related] |
true if the point lies on the line segment and is between the endpoints.
Definition at line 88 of file vgl_lineseg_test.txx.
vgl_point_2d<Type> vgl_line_segment_2d< Type >::point1_ [private] |
One end of line segment.
Definition at line 26 of file vgl_line_segment_2d.h.
vgl_point_2d<Type> vgl_line_segment_2d< Type >::point2_ [private] |
The other end of the line segment.
Definition at line 28 of file vgl_line_segment_2d.h.
1.7.5.1