Irrlicht 3D Engine
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

Public Attributes


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 ( nx,
ny 
) [inline]

Constructor with two different values.

Definition at line 27 of file vector2d.h.

template<class T>
irr::core::vector2d< T >::vector2d ( 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:
otherOther 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:
otherVector 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:
bOther vector to test with.
Returns:
Returns a value between 0 and 90.

Definition at line 238 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:
otherOther 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:
otherOther 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:
otherThe other vector to interpolate with.
dInterpolation 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 278 of file vector2d.h.

Referenced by irr::video::S3DVertex::getInterpolated(), irr::video::S3DVertex2TCoords::getInterpolated(), and irr::video::S3DVertexTangents::getInterpolated().

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:
v2Second vector to interpolate with.
v3Third vector to interpolate with (maximum at 1.0f)
dInterpolation 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 290 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:
afirst vector to interpolate with, maximum at 1.0f
bsecond vector to interpolate with, maximum at 0.0f
dInterpolation 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 308 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:
beginBeginning vector to compare between.
endEnding vector to compare between.
Returns:
True if this vector is between begin and end, false if not.

Definition at line 259 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 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) const [inline]

Definition at line 59 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) [inline]

Definition at line 60 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) const [inline]

Definition at line 44 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 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) [inline]

Definition at line 47 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 [inline]

Definition at line 37 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 dimension2d< T > &  other) const [inline]

Definition at line 51 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 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) [inline]

Definition at line 54 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 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) const [inline]

Definition at line 64 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>
vector2d<T>& irr::core::vector2d< T >::operator/= ( const T  v) [inline]

Definition at line 65 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 vector2d< T > &  other) [inline]

Definition at line 39 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>
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:
degreesAmount of degrees to rotate by, anticlockwise.
centerRotation center.
Returns:
This vector after transformation.

Definition at line 151 of file vector2d.h.

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

Definition at line 109 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.


Member Data Documentation

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

X 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::line2d< T >::getClosestPoint(), 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 319 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::line2d< T >::getClosestPoint(), 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: