Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

irr::core::line2d< T > Class Template Reference

2D line between two points with intersection methods. More...

#include <line2d.h>

List of all members.

Public Member Functions

f64 getAngleWith (const line2d< T > &l) const
 Get angle between this line and given line.
vector2d< T > getClosestPoint (const vector2d< T > &point) const
 Get the closest point on this line to a point.
f64 getLength () const
 Get length of line.
getLengthSQ () const
 Get squared length of the line.
vector2d< T > getMiddle () const
 Get middle of the line.
getPointOrientation (const vector2d< T > &point) const
 Tells us if the given point lies to the left, right, or on the line.
vector2d< T > getUnitVector () const
 Get unit vector of the line.
vector2d< T > getVector () const
 Get the vector of the line.
bool intersectWith (const line2d< T > &l, vector2d< T > &out) const
 Tests if this line intersects with another line.
bool isPointBetweenStartAndEnd (const vector2d< T > &point) const
 Check if the given point is between start and end of the line.
bool isPointOnLine (const vector2d< T > &point) const
 Check if the given point is a member of the line.
 line2d (const line2d< T > &other)
 Copy constructor.
 line2d (const vector2d< T > &start, const vector2d< T > &end)
 Constructor for line between the two points given as vectors.
 line2d (T xa, T ya, T xb, T yb)
 Constructor for line between the two points.
 line2d ()
 Default constructor for line going from (0,0) to (1,1).
bool operator!= (const line2d< T > &other) const
line2d< T > operator+ (const vector2d< T > &point) const
line2d< T > & operator+= (const vector2d< T > &point)
line2d< T > operator- (const vector2d< T > &point) const
line2d< T > & operator-= (const vector2d< T > &point)
bool operator== (const line2d< T > &other) const
void setLine (const line2d< T > &line)
 Set this line to new line given as parameter.
void setLine (const vector2d< T > &nstart, const vector2d< T > &nend)
 Set this line to new line going through the two points.
void setLine (const T &xa, const T &ya, const T &xb, const T &yb)
 Set this line to new line going through the two points.

Public Attributes

vector2d< T > end
 End point of the line.
vector2d< T > start
 Start point of the line.

Detailed Description

template<class T>
class irr::core::line2d< T >

2D line between two points with intersection methods.

Definition at line 18 of file line2d.h.


Constructor & Destructor Documentation

template<class T>
irr::core::line2d< T >::line2d (  )  [inline]

Default constructor for line going from (0,0) to (1,1).

Definition at line 22 of file line2d.h.

template<class T>
irr::core::line2d< T >::line2d ( xa,
ya,
xb,
yb 
) [inline]

Constructor for line between the two points.

Definition at line 24 of file line2d.h.

template<class T>
irr::core::line2d< T >::line2d ( const vector2d< T > &  start,
const vector2d< T > &  end 
) [inline]

Constructor for line between the two points given as vectors.

Definition at line 26 of file line2d.h.

template<class T>
irr::core::line2d< T >::line2d ( const line2d< T > &  other  )  [inline]

Copy constructor.

Definition at line 28 of file line2d.h.


Member Function Documentation

template<class T>
f64 irr::core::line2d< T >::getAngleWith ( const line2d< T > &  l  )  const [inline]

Get angle between this line and given line.

Parameters:
l Other line for test.
Returns:
Angle in degrees.

Definition at line 179 of file line2d.h.

References irr::core::vector2d< T >::getAngleWith(), and irr::core::line2d< T >::getVector().

template<class T>
vector2d<T> irr::core::line2d< T >::getClosestPoint ( const vector2d< T > &  point  )  const [inline]

Get the closest point on this line to a point.

Definition at line 211 of file line2d.h.

References irr::core::vector2d< T >::dotProduct(), irr::core::line2d< T >::end, irr::core::vector2d< T >::getLength(), and irr::core::line2d< T >::start.

template<class T>
f64 irr::core::line2d< T >::getLength (  )  const [inline]

Get length of line.

Returns:
Length of the line.

Definition at line 53 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

Referenced by irr::core::line2d< T >::getUnitVector().

template<class T>
T irr::core::line2d< T >::getLengthSQ (  )  const [inline]

Get squared length of the line.

Returns:
Squared length of line.

Definition at line 57 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
vector2d<T> irr::core::line2d< T >::getMiddle (  )  const [inline]

Get middle of the line.

Returns:
center of the line.

Definition at line 61 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
T irr::core::line2d< T >::getPointOrientation ( const vector2d< T > &  point  )  const [inline]

Tells us if the given point lies to the left, right, or on the line.

Returns:
0 if the point is on the line <0 if to the left, or >0 if to the right.

Definition at line 189 of file line2d.h.

References irr::core::line2d< T >::end, irr::core::line2d< T >::start, irr::core::vector2d< T >::X, and irr::core::vector2d< T >::Y.

Referenced by irr::core::line2d< T >::isPointOnLine().

template<class T>
vector2d<T> irr::core::line2d< T >::getUnitVector (  )  const [inline]

Get unit vector of the line.

Returns:
Unit vector of this line.

Definition at line 170 of file line2d.h.

References irr::core::line2d< T >::end, irr::core::line2d< T >::getLength(), and irr::core::line2d< T >::start.

template<class T>
vector2d<T> irr::core::line2d< T >::getVector (  )  const [inline]

Get the vector of the line.

Returns:
The vector of the line.

Definition at line 68 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

Referenced by irr::core::line2d< T >::getAngleWith().

template<class T>
bool irr::core::line2d< T >::intersectWith ( const line2d< T > &  l,
vector2d< T > &  out 
) const [inline]

Tests if this line intersects with another line.

Parameters:
l,: Other line to test intersection with.
out,: If there is an intersection, the location of the intersection will be stored in this vector.
Returns:
True if there is an intersection, false if not.

Definition at line 75 of file line2d.h.

References irr::core::line2d< T >::end, irr::core::equals(), irr::core::line2d< T >::start, irr::core::vector2d< T >::X, and irr::core::vector2d< T >::Y.

template<class T>
bool irr::core::line2d< T >::isPointBetweenStartAndEnd ( const vector2d< T > &  point  )  const [inline]

Check if the given point is between start and end of the line.

Assumes that the point is already somewhere on the line.

Definition at line 205 of file line2d.h.

References irr::core::line2d< T >::end, irr::core::vector2d< T >::isBetweenPoints(), and irr::core::line2d< T >::start.

template<class T>
bool irr::core::line2d< T >::isPointOnLine ( const vector2d< T > &  point  )  const [inline]

Check if the given point is a member of the line.

Returns:
True if point is between start and end, else false.

Definition at line 197 of file line2d.h.

References irr::core::line2d< T >::end, irr::core::line2d< T >::getPointOrientation(), irr::core::vector2d< T >::isBetweenPoints(), and irr::core::line2d< T >::start.

template<class T>
bool irr::core::line2d< T >::operator!= ( const line2d< T > &  other  )  const [inline]

Definition at line 40 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
line2d<T> irr::core::line2d< T >::operator+ ( const vector2d< T > &  point  )  const [inline]

Definition at line 32 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
line2d<T>& irr::core::line2d< T >::operator+= ( const vector2d< T > &  point  )  [inline]

Definition at line 33 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
line2d<T> irr::core::line2d< T >::operator- ( const vector2d< T > &  point  )  const [inline]

Definition at line 35 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
line2d<T>& irr::core::line2d< T >::operator-= ( const vector2d< T > &  point  )  [inline]

Definition at line 36 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
bool irr::core::line2d< T >::operator== ( const line2d< T > &  other  )  const [inline]

Definition at line 38 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
void irr::core::line2d< T >::setLine ( const line2d< T > &  line  )  [inline]

Set this line to new line given as parameter.

Definition at line 49 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
void irr::core::line2d< T >::setLine ( const vector2d< T > &  nstart,
const vector2d< T > &  nend 
) [inline]

Set this line to new line going through the two points.

Definition at line 47 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.

template<class T>
void irr::core::line2d< T >::setLine ( const T &  xa,
const T &  ya,
const T &  xb,
const T &  yb 
) [inline]

Set this line to new line going through the two points.

Definition at line 45 of file line2d.h.

References irr::core::line2d< T >::end, and irr::core::line2d< T >::start.


Member Data Documentation

template<class T>
vector2d<T> irr::core::line2d< T >::end
template<class T>
vector2d<T> irr::core::line2d< T >::start

The documentation for this class was generated from the following file:

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:42:03 2010 by Doxygen (1.6.2)