OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
Standard N-dimensional vector. More...
#include <OgreVector.h>
Public Member Functions | |
Vector () | |
Default constructor. | |
template<int N = dims> | |
Vector (const typename std::enable_if< N==4, Vector< 3, T > >::type &rhs, T fW=1.0f) | |
template<typename U > | |
Vector (const U *_ptr) | |
template<typename U > | |
Vector (const Vector< dims, U > &o) | |
Vector (T _x, T _y) | |
Vector (T _x, T _y, T _z) | |
Vector (T _x, T _y, T _z, T _w) | |
Vector (T s) | |
Radian | angleBetween (const Vector &dest) const |
Gets the angle between 2 vectors. | |
Real | distance (const Vector &rhs) const |
Returns the distance to another vector. | |
T | dotProduct (const VectorBase< dims, T > &vec) const |
Calculates the dot (scalar) product of this vector with another. | |
bool | isNaN () const |
Check whether this vector contains valid values. | |
bool | isZeroLength () const |
Returns true if this vector is zero length. | |
Real | length () const |
Returns the length (magnitude) of the vector. | |
void | makeCeil (const Vector &cmp) |
Sets this vector's components to the maximum of its own and the ones of the passed in vector. | |
void | makeFloor (const Vector &cmp) |
Sets this vector's components to the minimum of its own and the ones of the passed in vector. | |
Real | normalise () |
Normalises the vector. | |
Vector | normalisedCopy () const |
As normalise, except that this vector is unaffected and the normalised vector is returned as a copy. | |
bool | operator!= (const Vector &v) const |
Vector | operator* (const Vector &b) const |
Vector | operator* (Real s) const |
Vector & | operator*= (const Vector &b) |
Vector & | operator*= (Real s) |
const Vector & | operator+ () const |
Vector | operator+ (const Vector &b) const |
Vector | operator+ (Real s) const |
Vector & | operator+= (const Vector &b) |
Vector & | operator+= (Real s) |
Vector | operator- () const |
Vector | operator- (const Vector &b) const |
Vector | operator- (Real s) const |
Vector & | operator-= (const Vector &b) |
Vector & | operator-= (Real s) |
Vector | operator/ (const Vector &b) const |
Vector | operator/ (Real s) const |
Vector & | operator/= (const Vector &b) |
Vector & | operator/= (Real s) |
bool | operator< (const Vector &rhs) const |
Returns true if the vector's scalar components are all greater that the ones of the vector it is compared against. | |
bool | operator== (const Vector &v) const |
bool | operator> (const Vector &rhs) const |
Returns true if the vector's scalar components are all smaller that the ones of the vector it is compared against. | |
T & | operator[] (size_t i) |
T | operator[] (size_t i) const |
bool | positionEquals (const Vector &rhs, Real tolerance=1e-03f) const |
Returns whether this vector is within a positional tolerance of another vector. | |
Vector | reflect (const Vector &normal) const |
Calculates a reflection vector to the plane with the given normal . | |
T | squaredDistance (const Vector &rhs) const |
Returns the square of the distance to another vector. | |
T | squaredLength () const |
Returns the square of the length(magnitude) of the vector. | |
Vector< 2, T > | xy () const |
Vector< 3, T > | xyz () const |
Swizzle-like narrowing operations. | |
Public Member Functions inherited from Ogre::VectorBase< dims, T > | |
VectorBase () | |
VectorBase (T _x, T _y) | |
VectorBase (T _x, T _y, T _z) | |
VectorBase (T _x, T _y, T _z, T _w) | |
T * | ptr () |
const T * | ptr () const |
Additional Inherited Members | |
Public Attributes inherited from Ogre::VectorBase< dims, T > | |
T | data [dims] |
Standard N-dimensional vector.
A direction in N-D space represented as distances along the orthogonal axes. Note that positions, directions and scaling factors can be represented by a vector, depending on how you interpret the values.
Default constructor.
|
inlineexplicit |
|
inlineexplicit |
Swizzle-like narrowing operations.
|
inline |
Returns whether this vector is within a positional tolerance of another vector.
rhs | The vector to compare with |
tolerance | The amount that each element of the vector may vary by and still be considered equal |
Returns true if the vector's scalar components are all greater that the ones of the vector it is compared against.
Returns true if the vector's scalar components are all smaller that the ones of the vector it is compared against.
Sets this vector's components to the minimum of its own and the ones of the passed in vector.
'Minimum' in this case means the combination of the lowest value of x, y and z from both vectors. Lowest is taken just numerically, not magnitude, so -1 < 0.
Referenced by Ogre::AxisAlignedBox::merge().
Sets this vector's components to the maximum of its own and the ones of the passed in vector.
'Maximum' in this case means the combination of the highest value of x, y and z from both vectors. Highest is taken just numerically, not magnitude, so 1 > -3.
Referenced by Ogre::AxisAlignedBox::merge().
|
inline |
Calculates the dot (scalar) product of this vector with another.
The dot product can be used to calculate the angle between 2 vectors. If both are unit vectors, the dot product is the cosine of the angle; otherwise the dot product must be divided by the product of the lengths of both vectors to get the cosine of the angle. This result can further be used to calculate the distance of a point from a plane.
vec | Vector with which to calculate the dot product (together with this one). |
Referenced by Ogre::Math::calculateFaceNormal(), Ogre::Math::calculateFaceNormalWithoutNormalize(), Ogre::Plane::getDistance(), Ogre::Ray::intersects(), and Ogre::Plane::redefine().
Returns the square of the length(magnitude) of the vector.
This method is for efficiency - calculating the actual length of a vector requires a square root, which is expensive in terms of the operations required. This method returns the square of the length of the vector, i.e. the same as the length but before the square root is taken. Use this if you want to find the longest / shortest vector without incurring the square root.
Returns true if this vector is zero length.
Returns the length (magnitude) of the vector.
Referenced by Ogre::Plane::normalise().
Returns the distance to another vector.
Returns the square of the distance to another vector.
This method is for efficiency - calculating the actual distance to another vector requires a square root, which is expensive in terms of the operations required. This method returns the square of the distance to another vector, i.e. the same as the distance but before the square root is taken. Use this if you want to find the longest / shortest distance without incurring the square root.
Normalises the vector.
This method normalises the vector such that it's length / magnitude is 1. The result is called a unit vector.
Referenced by Ogre::Math::calculateBasicFaceNormal().
As normalise, except that this vector is unaffected and the normalised vector is returned as a copy.
Referenced by Ogre::Math::lookRotation().
Check whether this vector contains valid values.
Gets the angle between 2 vectors.
Vectors do not have to be unit-length but must represent directions.
Calculates a reflection vector to the plane with the given normal .