Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

mlib::XYline Class Reference
["XY" Coordinate System]

A line in XY coordinates. More...

#include <points.H>

Inheritance diagram for mlib::XYline:

Inheritance graph
[legend]
Collaboration diagram for mlib::XYline:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Line ()
 Default constructor. Creates a line with the results of the default constructors for the point and vector classes used.
 Line (const XYpt &p, const XYvec &v)
 Constructor that creates a line containing the point p and moving along the direction of vector v. Alternately creates a line segment with p as one endpoint and ( p + v ) as the other endpoint.
 Line (const XYpt &p1, const XYpt &p2)
 Constructor that creates the line going through points p1 and p2. Alternately creates a line segment with endpoints p1 and p2.
const XYptpoint () const
XYptpoint ()
const XYvecvector () const
XYvecvector ()
bool is_valid () const
 Is the line valid (i.e. has a vector with non-zero length).
XYpt endpt () const
 Returns the second endpoint of the line when treated as a line segment.
XYpt midpt () const
 Returns the midpoint of the line when treated as a line segment.
double length () const
 Returns the length of the line when treated as a line segment.
bool operator== (const Line< XYline, XYpt, XYvec > &l) const
 Are the two line's points and vectors exactly equal?
double dist (const XYpt &p) const
 Returns the distance from the point to the line.
XYpt project (const XYpt &p) const
 Returns closest point on line to given point p.
XYpt project_to_seg (const XYpt &p) const
 Finds the nearest point on this line segment to the given point.
XYpt project_to_seg (const XYline &l) const
 Finds the nearest point on this line segment to the given line.
XYpt reflection (const XYpt &p) const
XYpt intersect (const XYline &l) const
 Returns the closest point on this line to the given line l.
bool intersect_segs (const XYline &l, XYpt &inter) const
 Returns true if this line, treated as a segment, intersects the given line, also treated as a segment.
bool intersect_segs (const XYline &l) const
 Same as Line<L,P,V>::intersect_segLine(const L& l, P& inter) except without the argument to return the intersection point.
bool intersect_seg_line (const XYline &l, XYpt &inter) const
 Returns true if this line, treated as a segment, intersects the given line, also treated as a line.
Constructors
 XYline ()
 XYline (CXYpt &p, CXYvec &v)
 XYline (CXYpt &p1, CXYpt &p2)

Protected Attributes

XYpt _point
XYvec _vector

Detailed Description

A line in XY coordinates.

Definition at line 602 of file points.H.


Constructor & Destructor Documentation

mlib::XYline::XYline  )  [inline]
 

Definition at line 609 of file points.H.

mlib::XYline::XYline CXYpt p,
CXYvec v
[inline]
 

Definition at line 610 of file points.H.

mlib::XYline::XYline CXYpt p1,
CXYpt p2
[inline]
 

Definition at line 611 of file points.H.


Member Function Documentation

double mlib::Line< XYline , XYpt , XYvec >::dist const XYpt p  )  const [inline, inherited]
 

Returns the distance from the point to the line.

If vector is null (line is not valid) returns distance to _point.

Definition at line 104 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::endpt  )  const [inline, inherited]
 

Returns the second endpoint of the line when treated as a line segment.

Definition at line 77 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::intersect const XYline l  )  const [inline, inherited]
 

Returns the closest point on this line to the given line l.

For 3D lines it's rare that the 2 lines actually intersect, so this is not really named well.

Definition at line 162 of file line.H.

bool mlib::Line< XYline , XYpt , XYvec >::intersect_seg_line const XYline l,
XYpt inter
const [inline, inherited]
 

Returns true if this line, treated as a segment, intersects the given line, also treated as a line.

On success, also fills in the intersection point.

Definition at line 210 of file line.H.

bool mlib::Line< XYline , XYpt , XYvec >::intersect_segs const XYline l  )  const [inline, inherited]
 

Same as Line<L,P,V>::intersect_segLine(const L& l, P& inter) except without the argument to return the intersection point.

Definition at line 229 of file line.H.

bool mlib::Line< XYline , XYpt , XYvec >::intersect_segs const XYline l,
XYpt inter
const [inline, inherited]
 

Returns true if this line, treated as a segment, intersects the given line, also treated as a segment.

On success, also fills in the intersection point.

Definition at line 187 of file line.H.

bool mlib::Line< XYline , XYpt , XYvec >::is_valid  )  const [inline, inherited]
 

Is the line valid (i.e. has a vector with non-zero length).

Definition at line 73 of file line.H.

double mlib::Line< XYline , XYpt , XYvec >::length  )  const [inline, inherited]
 

Returns the length of the line when treated as a line segment.

Definition at line 84 of file line.H.

mlib::Line< XYline , XYpt , XYvec >::Line const XYpt p1,
const XYpt p2
[inline, inherited]
 

Constructor that creates the line going through points p1 and p2. Alternately creates a line segment with endpoints p1 and p2.

Definition at line 55 of file line.H.

mlib::Line< XYline , XYpt , XYvec >::Line const XYpt p,
const XYvec v
[inline, inherited]
 

Constructor that creates a line containing the point p and moving along the direction of vector v. Alternately creates a line segment with p as one endpoint and ( p + v ) as the other endpoint.

Definition at line 50 of file line.H.

mlib::Line< XYline , XYpt , XYvec >::Line  )  [inline, inherited]
 

Default constructor. Creates a line with the results of the default constructors for the point and vector classes used.

This most likely creates an invalid line (i.e. has a zero length vector) at the origin.

Definition at line 44 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::midpt  )  const [inline, inherited]
 

Returns the midpoint of the line when treated as a line segment.

Definition at line 81 of file line.H.

bool mlib::Line< XYline , XYpt , XYvec >::operator== const Line< XYline , XYpt , XYvec > &  l  )  const [inline, inherited]
 

Are the two line's points and vectors exactly equal?

Definition at line 92 of file line.H.

XYpt & mlib::Line< XYline , XYpt , XYvec >::point  )  [inline, inherited]
 

Definition at line 63 of file line.H.

const XYpt & mlib::Line< XYline , XYpt , XYvec >::point  )  const [inline, inherited]
 

Definition at line 62 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::project const XYpt p  )  const [inline, inherited]
 

Returns closest point on line to given point p.

If vector is null (line is not valid) returns _point.

Definition at line 116 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::project_to_seg const XYline l  )  const [inline, inherited]
 

Finds the nearest point on this line segment to the given line.

If this line is invalid, returns first endpoint.

Definition at line 134 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::project_to_seg const XYpt p  )  const [inline, inherited]
 

Finds the nearest point on this line segment to the given point.

If this line is invalid, returns first endpoint.

Definition at line 124 of file line.H.

XYpt mlib::Line< XYline , XYpt , XYvec >::reflection const XYpt p  )  const [inline, inherited]
 

Definition at line 144 of file line.H.

XYvec & mlib::Line< XYline , XYpt , XYvec >::vector  )  [inline, inherited]
 

Definition at line 65 of file line.H.

const XYvec & mlib::Line< XYline , XYpt , XYvec >::vector  )  const [inline, inherited]
 

Definition at line 64 of file line.H.


Member Data Documentation

XYpt mlib::Line< XYline , XYpt , XYvec >::_point [protected, inherited]
 

Definition at line 238 of file line.H.

XYvec mlib::Line< XYline , XYpt , XYvec >::_vector [protected, inherited]
 

Definition at line 239 of file line.H.


The documentation for this class was generated from the following file:
Generated on Mon Sep 18 11:48:16 2006 for jot by  doxygen 1.4.4