Loading...
Searching...
No Matches
irr::core::line2d< T > Class Template Reference

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

`#include <line2d.h>`

## Public Member Functions

| line2d ()
| Default constructor for line going from (0,0) to (1,1).
| 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.
f64 | getAngleWith (const line2d< T > &l) const
| Get angle between this line and given line.
vector2d< T > | getClosestPoint (const vector2d< T > &point, bool checkOnlySegments=true) const
| Get the closest point on this line to a point.
vector2df | getClosestPoint (const vector2df &point, bool checkOnlySegments) const
T | getLength () const
| Get length of line.
T | getLengthSQ () const
| Get squared length of the line.
vector2d< T > | getMiddle () const
| Get middle of the line.
T | 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, bool checkOnlySegments=true) 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.
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 T &xa, const T &ya, const T &xb, const T &yb)
| Set this line to new line going through the two points.
void | setLine (const vector2d< T > &nstart, const vector2d< T > &nend)
| 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

## line2d() [1/4]

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.

Referenced by irr::core::line2d< f32 >::operator+(), and irr::core::line2d< f32 >::operator-().

## line2d() [2/4]

template<class T>

irr::core::line2d< T >::line2d | ( | T | xa,
|  | T | ya,
|  | T | xb,
|  | T | yb )

inline

Constructor for line between the two points.

Definition at line 24 of file line2d.h.

## line2d() [3/4]

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.

## line2d() [4/4]

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

## getAngleWith()

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 182 of file line2d.h.

## getClosestPoint() [1/2]

template<class T>

vector2d< T > irr::core::line2d< T >::getClosestPoint | ( | const vector2d< T > & | point,
|  | bool | checkOnlySegments = true ) const

inline

Get the closest point on this line to a point.

Parameters

  point | Starting search at this point
  checkOnlySegments | Default (true) is to return a point on the line-segment (between begin and end) of the line. When set to false the function will check for the first the closest point on the the line even when outside the segment.

Definition at line 217 of file line2d.h.

## getClosestPoint() [2/2]

vector2df irr::core::line2d< irr::f32 >::getClosestPoint | ( | const vector2df & | point,
|  | bool | checkOnlySegments ) const

inline

Definition at line 245 of file line2d.h.

## getLength()

template<class T>

T irr::core::line2d< T >::getLength | ( |  | ) | const

inline

Get length of line.

Returns
  Length of the line.

Definition at line 53 of file line2d.h.

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

## getLengthSQ()

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.

## getMiddle()

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.

## getPointOrientation()

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 192 of file line2d.h.

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

## getUnitVector()

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 173 of file line2d.h.

## getVector()

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.

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

## intersectWith()

template<class T>

bool irr::core::line2d< T >::intersectWith | ( | const line2d< T > & | l,
|  | vector2d< T > & | out,
|  | bool | checkOnlySegments = true ) const

inline

Tests if this line intersects with another line.

Parameters

  l | Other line to test intersection with.
  checkOnlySegments | Default is to check intersection between the begin and endpoints. When set to false the function will check for the first intersection point when extending the lines.
  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 77 of file line2d.h.

## isPointBetweenStartAndEnd()

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 208 of file line2d.h.

## isPointOnLine()

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 200 of file line2d.h.

## operator!=()

template<class T>

bool irr::core::line2d< T >::operator!= | ( | const line2d< T > & | other | ) | const

inline

Definition at line 40 of file line2d.h.

## operator+()

template<class T>

line2d< T > irr::core::line2d< T >::operator+ | ( | const vector2d< T > & | point | ) | const

inline

Definition at line 32 of file line2d.h.

## operator+=()

template<class T>

line2d< T > & irr::core::line2d< T >::operator+= | ( | const vector2d< T > & | point | ) |

inline

Definition at line 33 of file line2d.h.

## operator-()

template<class T>

line2d< T > irr::core::line2d< T >::operator- | ( | const vector2d< T > & | point | ) | const

inline

Definition at line 35 of file line2d.h.

## operator-=()

template<class T>

line2d< T > & irr::core::line2d< T >::operator-= | ( | const vector2d< T > & | point | ) |

inline

Definition at line 36 of file line2d.h.

## operator==()

template<class T>

bool irr::core::line2d< T >::operator== | ( | const line2d< T > & | other | ) | const

inline

Definition at line 38 of file line2d.h.

## setLine() [1/3]

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.

## setLine() [2/3]

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.

## setLine() [3/3]

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.

## Member Data Documentation

## end

template<class T>

vector2d<T> irr::core::line2d< T >::end

End point of the line.

Definition at line 240 of file line2d.h.

Referenced by irr::core::line2d< f32 >::intersectWith(), irr::core::line2d< f32 >::operator!=(), irr::core::line2d< f32 >::operator==(), and irr::core::line2d< f32 >::setLine().

## start

template<class T>

vector2d<T> irr::core::line2d< T >::start

Start point of the line.

Definition at line 238 of file line2d.h.

Referenced by irr::core::line2d< f32 >::intersectWith(), irr::core::line2d< f32 >::operator!=(), irr::core::line2d< f32 >::operator==(), and irr::core::line2d< f32 >::setLine().

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

- line2d.h

- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0