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

# irr::core::vector2d< T > Class Template Reference

2d vector template class with lots of operators and methods. More...

`#include <vector2d.h>`

List of all members.

## Public Member Functions
T | dotProduct (const vector2d< T > &other) const
| Get the dot product of this vector with another.
bool | equals (const vector2d< T > &other) const
| Checks if this vector equals the other one.
f64 | getAngle () const
| Calculates the angle of this vector in degrees in the counter trigonometric sense.
f64 | getAngleTrig () const
| Calculates the angle of this vector in degrees in the trigonometric sense.
f64 | getAngleWith (const vector2d< T > &b) const
| Calculates the angle between this vector and another one in degree.
T | getDistanceFrom (const vector2d< T > &other) const
| Gets distance from another point.
T | getDistanceFromSQ (const vector2d< T > &other) const
| Returns squared distance from another point.
vector2d< T > | getInterpolated (const vector2d< T > &other, f64 d) const
| Creates an interpolated vector between this vector and another vector.
vector2d< T > | getInterpolated_quadratic (const vector2d< T > &v2, const vector2d< T > &v3, f64 d) const
| Creates a quadratically interpolated vector between this and two other vectors.
T | getLength () const
| Gets the length of the vector.
T | getLengthSQ () const
| Get the squared length of this vector.
vector2d< T > & | interpolate (const vector2d< T > &a, const vector2d< T > &b, f64 d)
| Sets this vector to the linearly interpolated vector between a and b.
bool | isBetweenPoints (const vector2d< T > &begin, const vector2d< T > &end) const
| Returns if this vector interpreted as a point is on a line between two other points.
vector2d< T > & | normalize ()
| Normalize the vector.
bool | operator!= (const vector2d< T > &other) const
vector2d< T > | operator* (const T v) const
vector2d< T > | operator* (const vector2d< T > &other) const
vector2d< T > & | operator*= (const T v)
vector2d< T > & | operator*= (const vector2d< T > &other)
vector2d< T > | operator+ (const T v) const
vector2d< T > | operator+ (const dimension2d< T > &other) const
vector2d< T > | operator+ (const vector2d< T > &other) const
vector2d< T > & | operator+= (const dimension2d< T > &other)
vector2d< T > & | operator+= (const T v)
vector2d< T > & | operator+= (const vector2d< T > &other)
vector2d< T > | operator- (const T v) const
vector2d< T > | operator- (const dimension2d< T > &other) const
vector2d< T > | operator- (const vector2d< T > &other) const
vector2d< T > | operator- () const
vector2d< T > & | operator-= (const dimension2d< T > &other)
vector2d< T > & | operator-= (const T v)
vector2d< T > & | operator-= (const vector2d< T > &other)
vector2d< T > | operator/ (const T v) const
vector2d< T > | operator/ (const vector2d< T > &other) const
vector2d< T > & | operator/= (const T v)
vector2d< T > & | operator/= (const vector2d< T > &other)
bool | operator< (const vector2d< T > &other) const
| sort in order X, Y. Difference must be above rounding tolerance.
bool | operator<= (const vector2d< T > &other) const
| sort in order X, Y. Equality with rounding tolerance.
vector2d< T > & | operator= (const dimension2d< T > &other)
vector2d< T > & | operator= (const vector2d< T > &other)
bool | operator== (const vector2d< T > &other) const
bool | operator> (const vector2d< T > &other) const
| sort in order X, Y. Difference must be above rounding tolerance.
bool | operator>= (const vector2d< T > &other) const
| sort in order X, Y. Equality with rounding tolerance.
vector2d< T > & | rotateBy (f64 degrees, const vector2d< T > &center=vector2d< T >())
| rotates the point anticlockwise around a center by an amount of degrees.
vector2d< T > & | set (const vector2d< T > &p)
vector2d< T > & | set (T nx, T ny)
| vector2d (const dimension2d< T > &other)
| vector2d (const vector2d< T > &other)
| Copy constructor.
| vector2d (T n)
| Constructor with the same value for both members.
| vector2d (T nx, T ny)
| Constructor with two different values.
| vector2d ()
| Default constructor (null vector).
## Public Attributes
T | X
| X coordinate of vector.
T | Y
| Y coordinate of vector.

## Detailed Description

### template<class T>
class irr::core::vector2d< T >

2d vector template class with lots of operators and methods.

As of Irrlicht 1.6, this class supercedes position2d, which should be considered deprecated.

Definition at line 21 of file vector2d.h.

## Constructor & Destructor Documentation

template<class T>

irr::core::vector2d< T >::vector2d | ( |  | ) | `[inline]`

Default constructor (null vector).

Definition at line 25 of file vector2d.h.

template<class T>

irr::core::vector2d< T >::vector2d | ( | T | nx,
|  | T | ny |
| ) |  |  | `[inline]`

Constructor with two different values.

Definition at line 27 of file vector2d.h.

template<class T>

irr::core::vector2d< T >::vector2d | ( | T | n | ) | `[inline, explicit]`

Constructor with the same value for both members.

Definition at line 29 of file vector2d.h.

template<class T>

irr::core::vector2d< T >::vector2d | ( | const vector2d< T > & | other | ) | `[inline]`

Copy constructor.

Definition at line 31 of file vector2d.h.

template<class T>

irr::core::vector2d< T >::vector2d | ( | const dimension2d< T > & | other | ) | `[inline]`

Definition at line 33 of file vector2d.h.

## Member Function Documentation

template<class T>

T irr::core::vector2d< T >::dotProduct | ( | const vector2d< T > & | other | ) | const`[inline]`

Get the dot product of this vector with another.

Parameters:

  | other | Other vector to take dot product with.

Returns:
  The dot product of the two vectors.

Definition at line 124 of file vector2d.h.

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

template<class T>

bool irr::core::vector2d< T >::equals | ( | const vector2d< T > & | other | ) | const`[inline]`

Checks if this vector equals the other one.

Takes floating point rounding errors into account.

Parameters:

  | other | Vector to compare with.

Returns:
  True if the two vector are (almost) equal, else false.

Definition at line 104 of file vector2d.h.

Referenced by irr::core::vector2d< f32 >::equals(), irr::core::vector2d< f32 >::operator!=(), irr::core::vector2d< f32 >::operator<(), irr::core::vector2d< f32 >::operator<=(), irr::core::vector2d< f32 >::operator==(), irr::core::vector2d< f32 >::operator>(), and irr::core::vector2d< f32 >::operator>=().

template<class T>

f64 irr::core::vector2d< T >::getAngle | ( |  | ) | const`[inline]`

Calculates the angle of this vector in degrees in the counter trigonometric sense.

0 is to the right (3 o'clock), values increase clockwise.

Returns:
  Returns a value between 0 and 360.

Definition at line 208 of file vector2d.h.

template<class T>

f64 irr::core::vector2d< T >::getAngleTrig | ( |  | ) | const`[inline]`

Calculates the angle of this vector in degrees in the trigonometric sense.

0 is to the right (3 o'clock), values increase counter-clockwise. This method has been suggested by Pr3t3nd3r.

Returns:
  Returns a value between 0 and 360.

Definition at line 185 of file vector2d.h.

template<class T>

f64 irr::core::vector2d< T >::getAngleWith | ( | const vector2d< T > & | b | ) | const`[inline]`

Calculates the angle between this vector and another one in degree.

Parameters:

  | b | Other vector to test with.

Returns:
  Returns a value between 0 and 90.

Definition at line 237 of file vector2d.h.

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

template<class T>

T irr::core::vector2d< T >::getDistanceFrom | ( | const vector2d< T > & | other | ) | const`[inline]`

Gets distance from another point.

Here, the vector is interpreted as a point in 2-dimensional space.

Parameters:

  | other | Other vector to measure from.

Returns:
  Distance from other point.

Definition at line 133 of file vector2d.h.

template<class T>

T irr::core::vector2d< T >::getDistanceFromSQ | ( | const vector2d< T > & | other | ) | const`[inline]`

Returns squared distance from another point.

Here, the vector is interpreted as a point in 2-dimensional space.

Parameters:

  | other | Other vector to measure from.

Returns:
  Squared distance from other point.

Definition at line 142 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::getInterpolated | ( | const vector2d< T > & | other,
|  | f64 | d |
| ) |  |  | const`[inline]`

Creates an interpolated vector between this vector and another vector.

Parameters:

  | other | The other vector to interpolate with.
  | d | Interpolation value between 0.0f (all the other vector) and 1.0f (all this vector). Note that this is the opposite direction of interpolation to getInterpolated_quadratic()

Returns:
  An interpolated vector. This vector is not modified.

Definition at line 275 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::getInterpolated_quadratic | ( | const vector2d< T > & | v2,
|  | const vector2d< T > & | v3,
|  | f64 | d |
| ) |  |  | const`[inline]`

Creates a quadratically interpolated vector between this and two other vectors.

Parameters:

  | v2 | Second vector to interpolate with.
  | v3 | Third vector to interpolate with (maximum at 1.0f)
  | d | Interpolation value between 0.0f (all this vector) and 1.0f (all the 3rd vector). Note that this is the opposite direction of interpolation to getInterpolated() and interpolate()

Returns:
  An interpolated vector. This vector is not modified.

Definition at line 287 of file vector2d.h.

template<class T>

T irr::core::vector2d< T >::getLength | ( |  | ) | const`[inline]`

Gets the length of the vector.

Returns:
  The length of the vector.

Definition at line 114 of file vector2d.h.

Referenced by irr::core::line2d< T >::getClosestPoint(), and irr::core::vector2d< f32 >::getDistanceFrom().

template<class T>

T irr::core::vector2d< T >::getLengthSQ | ( |  | ) | const`[inline]`

Get the squared length of this vector.

This is useful because it is much faster than getLength().

Returns:
  The squared length of the vector.

Definition at line 119 of file vector2d.h.

Referenced by irr::core::vector2d< f32 >::getDistanceFromSQ().

template<class T>

vector2d<T>& irr::core::vector2d< T >::interpolate | ( | const vector2d< T > & | a,
|  | const vector2d< T > & | b,
|  | f64 | d |
| ) |  |  | `[inline]`

Sets this vector to the linearly interpolated vector between a and b.

Parameters:

  | a | first vector to interpolate with, maximum at 1.0f
  | b | second vector to interpolate with, maximum at 0.0f
  | d | Interpolation value between 0.0f (all vector b) and 1.0f (all vector a) Note that this is the opposite direction of interpolation to getInterpolated_quadratic()

Definition at line 305 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::isBetweenPoints | ( | const vector2d< T > & | begin,
|  | const vector2d< T > & | end |
| ) |  |  | const`[inline]`

Returns if this vector interpreted as a point is on a line between two other points.

It is assumed that the point is on the line.

Parameters:

  | begin | Beginning vector to compare between.
  | end | Ending vector to compare between.

Returns:
  True if this vector is between begin and end, false if not.

Definition at line 256 of file vector2d.h.

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

template<class T>

vector2d<T>& irr::core::vector2d< T >::normalize | ( |  | ) | `[inline]`

Normalize the vector.

The null vector is left untouched.

Returns:
  Reference to this vector, after normalization.

Definition at line 170 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::operator!= | ( | const vector2d< T > & | other | ) | const`[inline]`

Definition at line 96 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator* | ( | const T | v | ) | const`[inline]`

Definition at line 59 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator* | ( | const vector2d< T > & | other | ) | const`[inline]`

Definition at line 57 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator*= | ( | const T | v | ) | `[inline]`

Definition at line 60 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator*= | ( | const vector2d< T > & | other | ) | `[inline]`

Definition at line 58 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator+ | ( | const T | v | ) | const`[inline]`

Definition at line 46 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator+ | ( | const dimension2d< T > & | other | ) | const`[inline]`

Definition at line 44 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator+ | ( | const vector2d< T > & | other | ) | const`[inline]`

Definition at line 43 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator+= | ( | const dimension2d< T > & | other | ) | `[inline]`

Definition at line 48 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator+= | ( | const T | v | ) | `[inline]`

Definition at line 47 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator+= | ( | const vector2d< T > & | other | ) | `[inline]`

Definition at line 45 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator- | ( | const T | v | ) | const`[inline]`

Definition at line 53 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator- | ( | const dimension2d< T > & | other | ) | const`[inline]`

Definition at line 51 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator- | ( | const vector2d< T > & | other | ) | const`[inline]`

Definition at line 50 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator- | ( |  | ) | const`[inline]`

Definition at line 37 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator-= | ( | const dimension2d< T > & | other | ) | `[inline]`

Definition at line 55 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator-= | ( | const T | v | ) | `[inline]`

Definition at line 54 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator-= | ( | const vector2d< T > & | other | ) | `[inline]`

Definition at line 52 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator/ | ( | const T | v | ) | const`[inline]`

Definition at line 64 of file vector2d.h.

template<class T>

vector2d<T> irr::core::vector2d< T >::operator/ | ( | const vector2d< T > & | other | ) | const`[inline]`

Definition at line 62 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator/= | ( | const T | v | ) | `[inline]`

Definition at line 65 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator/= | ( | const vector2d< T > & | other | ) | `[inline]`

Definition at line 63 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::operator< | ( | const vector2d< T > & | other | ) | const`[inline]`

sort in order X, Y. Difference must be above rounding tolerance.

Definition at line 82 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::operator<= | ( | const vector2d< T > & | other | ) | const`[inline]`

sort in order X, Y. Equality with rounding tolerance.

Definition at line 68 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator= | ( | const dimension2d< T > & | other | ) | `[inline]`

Definition at line 41 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::operator= | ( | const vector2d< T > & | other | ) | `[inline]`

Definition at line 39 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::operator== | ( | const vector2d< T > & | other | ) | const`[inline]`

Definition at line 95 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::operator> | ( | const vector2d< T > & | other | ) | const`[inline]`

sort in order X, Y. Difference must be above rounding tolerance.

Definition at line 89 of file vector2d.h.

template<class T>

bool irr::core::vector2d< T >::operator>= | ( | const vector2d< T > & | other | ) | const`[inline]`

sort in order X, Y. Equality with rounding tolerance.

Definition at line 75 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::rotateBy | ( | f64 | degrees,
|  | const vector2d< T > & | center = `vector2d<T>()` |
| ) |  |  | `[inline]`

rotates the point anticlockwise around a center by an amount of degrees.

Parameters:

  | degrees | Amount of degrees to rotate by, anticlockwise.
  | center | Rotation center.

Returns:
  This vector after transformation.

Definition at line 151 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::set | ( | const vector2d< T > & | p | ) | `[inline]`

Definition at line 110 of file vector2d.h.

template<class T>

vector2d<T>& irr::core::vector2d< T >::set | ( | T | nx,
|  | T | ny |
| ) |  |  | `[inline]`

Definition at line 109 of file vector2d.h.

## Member Data Documentation

template<class T>

T irr::core::vector2d< T >::X

X coordinate of vector.

Definition at line 313 of file vector2d.h.

Referenced by irr::core::CMatrix4< T >::buildTextureTransform(), irr::gui::IGUIElement::deserializeAttributes(), irr::core::vector2d< f32 >::dotProduct(), irr::core::vector2d< f32 >::equals(), irr::core::vector2d< f32 >::getAngle(), irr::core::vector2d< f32 >::getAngleTrig(), irr::core::vector2d< f32 >::getAngleWith(), irr::core::vector2d< f32 >::getDistanceFrom(), irr::core::vector2d< f32 >::getDistanceFromSQ(), irr::core::vector2d< f32 >::getInterpolated(), irr::core::vector2d< f32 >::getInterpolated_quadratic(), irr::core::vector2d< f32 >::getLength(), irr::core::vector2d< f32 >::getLengthSQ(), irr::core::line2d< T >::getPointOrientation(), irr::core::vector2d< f32 >::interpolate(), irr::core::line2d< T >::intersectWith(), irr::core::vector2d< f32 >::isBetweenPoints(), irr::core::vector2d< f32 >::normalize(), irr::core::vector2d< f32 >::operator*(), irr::core::vector2d< f32 >::operator*=(), irr::core::vector2d< f32 >::operator+(), irr::core::vector2d< f32 >::operator+=(), irr::core::vector2d< f32 >::operator-(), irr::core::vector2d< f32 >::operator-=(), irr::core::vector2d< f32 >::operator/(), irr::core::vector2d< f32 >::operator/=(), irr::core::vector2d< f32 >::operator<(), irr::core::vector2d< f32 >::operator<=(), irr::core::vector2d< f32 >::operator=(), irr::core::dimension2d< T >::operator==(), irr::core::vector2d< f32 >::operator>(), irr::core::vector2d< f32 >::operator>=(), irr::core::vector2d< f32 >::rotateBy(), irr::core::vector2d< f32 >::set(), and irr::gui::IGUIElement::setRelativePosition().

template<class T>

T irr::core::vector2d< T >::Y

Y coordinate of vector.

Definition at line 316 of file vector2d.h.

Referenced by irr::core::CMatrix4< T >::buildTextureTransform(), irr::gui::IGUIElement::deserializeAttributes(), irr::core::vector2d< f32 >::dotProduct(), irr::core::vector2d< f32 >::equals(), irr::core::vector2d< f32 >::getAngle(), irr::core::vector2d< f32 >::getAngleTrig(), irr::core::vector2d< f32 >::getAngleWith(), irr::core::vector2d< f32 >::getDistanceFrom(), irr::core::vector2d< f32 >::getDistanceFromSQ(), irr::core::vector2d< f32 >::getInterpolated(), irr::core::vector2d< f32 >::getInterpolated_quadratic(), irr::core::vector2d< f32 >::getLength(), irr::core::vector2d< f32 >::getLengthSQ(), irr::core::line2d< T >::getPointOrientation(), irr::core::vector2d< f32 >::interpolate(), irr::core::line2d< T >::intersectWith(), irr::core::vector2d< f32 >::isBetweenPoints(), irr::core::vector2d< f32 >::normalize(), irr::core::vector2d< f32 >::operator*(), irr::core::vector2d< f32 >::operator*=(), irr::core::vector2d< f32 >::operator+(), irr::core::vector2d< f32 >::operator+=(), irr::core::vector2d< f32 >::operator-(), irr::core::vector2d< f32 >::operator-=(), irr::core::vector2d< f32 >::operator/(), irr::core::vector2d< f32 >::operator/=(), irr::core::vector2d< f32 >::operator<(), irr::core::vector2d< f32 >::operator<=(), irr::core::vector2d< f32 >::operator=(), irr::core::dimension2d< T >::operator==(), irr::core::vector2d< f32 >::operator>(), irr::core::vector2d< f32 >::operator>=(), irr::core::vector2d< f32 >::rotateBy(), irr::core::vector2d< f32 >::set(), and irr::gui::IGUIElement::setRelativePosition().

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

- vector2d.h

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