"L. Spiro Engine"
|
A template for any type of 3D vector. More...
#include <LSMVector3Base.h>
Public Member Functions | |
LSE_CALLCTOR | CVector3Base (const _tInher &_v3bOther) |
LSE_CALLCTOR | CVector3Base (_tType _fX, _tType _fY, _tType _fZ) |
LSE_CALLCTOR | CVector3Base (_tType *_pfValues) |
_tType LSE_FCALL | operator[] (LSUINT32 _ui32Index) const |
_tType &LSE_FCALL | operator[] (LSUINT32 _ui32Index) |
_tInher &LSE_FCALL | operator= (const _tInher &_v3bOther) |
LSBOOL LSE_FCALL | operator== (const _tInher &_v3bOther) const |
LSBOOL LSE_FCALL | operator!= (const _tInher &_v3bOther) const |
_tInher LSE_FCALL | operator- () const |
_tInher LSE_FCALL | operator+ (const _tInher &_v3bOther) const |
_tInher LSE_FCALL | operator- (const _tInher &_v3bOther) const |
_tInher LSE_FCALL | operator* (_tType _tValue) const |
_tInher LSE_FCALL | operator/ (_tType _tValue) const |
_tInher &LSE_FCALL | operator+= (const _tInher &_v3bOther) |
_tInher &LSE_FCALL | operator+= (_tType _tValue) |
_tInher &LSE_FCALL | operator-= (const _tInher &_v3bOther) |
_tInher &LSE_FCALL | operator-= (_tType _tValue) |
_tInher &LSE_FCALL | operator*= (_tType _tValue) |
_tInher &LSE_FCALL | operator/= (_tType _tValue) |
_tType LSE_FCALL | operator* (const _tInher &_v3bOther) const |
_tInher LSE_FCALL | operator% (const _tInher &_v3bOther) const |
LSVOID LSE_FCALL | Set (_tType _fX, _tType _fY, _tType _fZ) |
LSVOID LSE_FCALL | Clear () |
LSVOID LSE_FCALL | Invert () |
_tType LSE_FCALL | Len () const |
_tType LSE_FCALL | LenSq () const |
LSVOID LSE_FCALL | Normalize () |
_tType LSE_FCALL | Dot (const _tInher &_v3bOther) const |
_tInher LSE_FCALL | Cross (const _tInher &_v3bOther) const |
Static Public Member Functions | |
static _tType LSE_FCALL | DotProduct (const _tInher &_v3bLeft, const _tInher &_v3bRight) |
static _tInher LSE_FCALL | CrossProduct (const _tInher &_v3bLeft, const _tInher &_v3bRight) |
static _tInher LSE_FCALL | Lerp (const _tInher &_v3bLeft, const _tInher &_v3bRight, _tType _fFrac) |
static _tInher LSE_FCALL | Hermite (const _tInher &_v3bLeft, const _tInher &_v3bT0, const _tInher &_v3bRight, const _tInher &_v3bT1, _tType _fFrac) |
static _tInher LSE_FCALL | CatmullRom (const _tInher &_v3bV0, const _tInher &_v3bV1, const _tInher &_v3bV2, const _tInher &_v3bV3, _tType _fFrac) |
Public Attributes | |
_tType | x |
_tType | y |
_tType | z |
A template for any type of 3D vector.
Class CVector3Base Description: A template for any type of 3D vector.
static _tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::CatmullRom | ( | const _tInher & | _v3bV0, |
const _tInher & | _v3bV1, | ||
const _tInher & | _v3bV2, | ||
const _tInher & | _v3bV3, | ||
_tType | _fFrac | ||
) | [inline, static] |
Perform a Catmull-Rom spline interpolation between the supplied vectors
_v3bV0 | Input point 0. |
_v3bV1 | Input point 1. |
_v3bV2 | Input point 2. |
_v3bV3 | Input point 3. |
_fFrac | Amount by which to interpolate between _v3bV1 and _v3bV2. |
LSVOID LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Clear | ( | ) | [inline] |
Sets all axes on this vector to 0.
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Cross | ( | const _tInher & | _v3bOther | ) | const [inline] |
Performs a cross-product operation. The vector produced is perpendicular to both of the vectors being multiplied and normal to the plane containing them.
_v3bOther | The vector against which the cross product is to be determined. |
static _tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::CrossProduct | ( | const _tInher & | _v3bLeft, |
const _tInher & | _v3bRight | ||
) | [inline, static] |
Performs a cross-product operation. The vector produced is perpendicular to both of the vectors being multiplied and normal to the plane containing them.
_v3bLeft | The left operand. |
_v3bRight | The right operand. |
_tType LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Dot | ( | const _tInher & | _v3bOther | ) | const [inline] |
Performs a dot-product operation. The dot product of two normalized vectors is the cosine of the angle between them.
_v3bOther | The vector against which the dot product is to be determined. |
static _tType LSE_FCALL lsm::CVector3Base< _tType, _tInher >::DotProduct | ( | const _tInher & | _v3bLeft, |
const _tInher & | _v3bRight | ||
) | [inline, static] |
Performs a dot-product operation. The dot product of two normalized vectors is the cosine of the angle between them.
_v3bLeft | The left operand. |
_v3bRight | The right operand. |
static _tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Hermite | ( | const _tInher & | _v3bLeft, |
const _tInher & | _v3bT0, | ||
const _tInher & | _v3bRight, | ||
const _tInher & | _v3bT1, | ||
_tType | _fFrac | ||
) | [inline, static] |
Perform a Hermite spline interpolation between the supplied vectors.
_v3bLeft | Left operand. |
_v3bT0 | Left tangent. |
_v3bRight | Right operand. |
_v3bT1 | Right tangent. |
_fFrac | Amount by which to interpolate between the vectors. |
LSVOID LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Invert | ( | ) | [inline] |
Negates each axis on this vector.
_tType LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Len | ( | ) | const [inline] |
Calculates the length of the vector.
Reimplemented in lsm::CVector3.
_tType LSE_FCALL lsm::CVector3Base< _tType, _tInher >::LenSq | ( | ) | const [inline] |
Calculates the squared length of the vector.
static _tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Lerp | ( | const _tInher & | _v3bLeft, |
const _tInher & | _v3bRight, | ||
_tType | _fFrac | ||
) | [inline, static] |
Linearly interpolate between two vectors, returning the resulting vector.
_v3bLeft | Left operand. |
_v3bRight | Right operand. |
_fFrac | Amount by which to interpolate between the vectors. |
LSVOID LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Normalize | ( | ) | [inline] |
Normalizes this vector. Normalization is the process of adjusting the length of the vector so that it is unit length (1 unit in length) while maintaining its direction. Accuracy/speed depends on the LSM_PERFORMANCE macro.
Reimplemented in lsm::CVector3.
LSBOOL LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator!= | ( | const _tInher & | _v3bOther | ) | const [inline] |
Inequality.
_v3bOther | The vector to check for inequality. |
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator% | ( | const _tInher & | _v3bOther | ) | const [inline] |
Performs a cross-product operation. The vector produced is perpendicular to both of the vectors being multiplied and normal to the plane containing them.
_v3bOther | The vector against which the cross product is to be determined. |
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator* | ( | _tType | _tValue | ) | const [inline] |
Binary multiplication.
_tValue | The amount by which to multiply each component in this vector. |
_tType LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator* | ( | const _tInher & | _v3bOther | ) | const [inline] |
Performs a dot-product operation. The dot product of two normalized vectors is the cosine of the angle between them.
_v3bOther | The vector against which the dot product is to be determined. |
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator*= | ( | _tType | _tValue | ) | [inline] |
Multiply the vector by a given amount, storing the result in this vector.
_tValue | The amount by which to multiply each component in this vector. |
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator+ | ( | const _tInher & | _v3bOther | ) | const [inline] |
Binary addition.
_v3bOther | The vector to add to this one componentwise. |
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator+= | ( | const _tInher & | _v3bOther | ) | [inline] |
Add a vector to this vector, storing the result in this vector.
_v3bOther | The vector to add to this vector. |
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator+= | ( | _tType | _tValue | ) | [inline] |
Add a scalar to this vector, storing the result in this vector.
_tValue | The amount to add to this vector. |
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator- | ( | const _tInher & | _v3bOther | ) | const [inline] |
Binary subtraction.
_v3bOther | The vector to subtract from this one componentwise. |
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator- | ( | ) | const [inline] |
Unary -.
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator-= | ( | _tType | _tValue | ) | [inline] |
Subtracts a scalar from this vector, storing the result in this vector.
_tValue | The amount to subtract from this vector. |
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator-= | ( | const _tInher & | _v3bOther | ) | [inline] |
Subtract a vector from this vector, storing the result in this vector.
_v3bOther | The vector to subtract from this vector. |
_tInher LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator/ | ( | _tType | _tValue | ) | const [inline] |
Binary division.
_tValue | The amount by which to divide each component in this vector. |
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator/= | ( | _tType | _tValue | ) | [inline] |
Divide the vector by a given amount, storing the result in this vector.
_tValue | The amount by which to divide each component in this vector. |
_tInher& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator= | ( | const _tInher & | _v3bOther | ) | [inline] |
Assignment.
_v3bOther | The vector to copy. |
LSBOOL LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator== | ( | const _tInher & | _v3bOther | ) | const [inline] |
Equality.
_v3bOther | The vector to check for equality. |
_tType& LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator[] | ( | LSUINT32 | _ui32Index | ) | [inline] |
Array access.
_ui32Index | Index of the dimension to get. |
_tType LSE_FCALL lsm::CVector3Base< _tType, _tInher >::operator[] | ( | LSUINT32 | _ui32Index | ) | const [inline] |
Array access.
_ui32Index | Index of the dimension to get. |
LSVOID LSE_FCALL lsm::CVector3Base< _tType, _tInher >::Set | ( | _tType | _fX, |
_tType | _fY, | ||
_tType | _fZ | ||
) | [inline] |
Apply the given values to each of the axes on this vector.
_fX | The new X-axis value. |
_fY | The new Y-axis value. |
_fZ | The new Z-axis value. |
_tType lsm::CVector3Base< _tType, _tInher >::x |
The X value.
_tType lsm::CVector3Base< _tType, _tInher >::y |
The Y value.
_tType lsm::CVector3Base< _tType, _tInher >::z |
The Z value.