OGRE-Next
4.0.0unstable
Object-Oriented Graphics Rendering Engine
|
Cache-friendly array of Quaternion represented as a SoA array. More...
#include <OgreArrayQuaternionSSE2.h>
Public Member Functions | |
ArrayQuaternion () | |
ArrayQuaternion () | |
ArrayQuaternion () | |
ArrayQuaternion (const ArrayReal &chunkW, const ArrayReal &chunkX, const ArrayReal &chunkY, const ArrayReal &chunkZ) | |
ArrayQuaternion (const ArrayReal &chunkW, const ArrayReal &chunkX, const ArrayReal &chunkY, const ArrayReal &chunkZ) | |
ArrayQuaternion (const ArrayReal &chunkW, const ArrayReal &chunkX, const ArrayReal &chunkY, const ArrayReal &chunkZ) | |
void | Cmov4 (ArrayMaskR mask, const ArrayQuaternion &replacement) |
Conditional move update. More... | |
void | Cmov4 (ArrayMaskR mask, const ArrayQuaternion &replacement) |
Conditional move update. More... | |
void | Cmov4 (ArrayMaskR mask, const ArrayQuaternion &replacement) |
Conditional move update. More... | |
ArrayReal | Dot (const ArrayQuaternion &rkQ) const |
Returns the dot product of the quaternion. More... | |
ArrayReal | Dot (const ArrayQuaternion &rkQ) const |
Returns the dot product of the quaternion. More... | |
ArrayReal | Dot (const ArrayQuaternion &rkQ) const |
Returns the dot product of the quaternion. More... | |
ArrayQuaternion | Exp () const |
ArrayQuaternion | Exp () const |
ArrayQuaternion | Exp () const |
void | FromAngleAxis (const ArrayRadian &rfAngle, const ArrayVector3 &rkAxis) |
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians. More... | |
void | FromAngleAxis (const ArrayRadian &rfAngle, const ArrayVector3 &rkAxis) |
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians. More... | |
void | FromAngleAxis (const ArrayRadian &rfAngle, const ArrayVector3 &rkAxis) |
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians. More... | |
void | FromOrthoDet1RotationMatrix (const ArrayReal *RESTRICT_ALIAS matrix) |
void | FromOrthoDet1RotationMatrix (const ArrayReal *RESTRICT_ALIAS matrix) |
void | FromOrthoDet1RotationMatrix (const ArrayReal *RESTRICT_ALIAS matrix) |
void | getAsQuaternion (Quaternion &out, size_t index) const |
void | getAsQuaternion (Quaternion &out, size_t index) const |
void | getAsQuaternion (Quaternion &out, size_t index) const |
Quaternion | getAsQuaternion (size_t index) const |
Prefer using. More... | |
Quaternion | getAsQuaternion (size_t index) const |
Prefer using. More... | |
Quaternion | getAsQuaternion (size_t index) const |
Prefer using. More... | |
ArrayQuaternion | Inverse () const |
ArrayQuaternion | Inverse () const |
ArrayQuaternion | Inverse () const |
ArrayQuaternion | Log () const |
ArrayQuaternion | Log () const |
ArrayQuaternion | Log () const |
ArrayReal | Norm () const |
ArrayReal | Norm () const |
ArrayReal | Norm () const |
void | normalise () |
Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available. More... | |
void | normalise () |
Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available. More... | |
void | normalise () |
Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available. More... | |
ArrayVector3 | operator* (const ArrayVector3 &v) const |
Rotation of a vector by a quaternion. More... | |
ArrayVector3 | operator* (const ArrayVector3 &v) const |
Rotation of a vector by a quaternion. More... | |
ArrayVector3 | operator* (const ArrayVector3 &v) const |
Rotation of a vector by a quaternion. More... | |
void | operator*= (const ArrayReal fScalar) |
void | operator*= (const ArrayReal fScalar) |
void | operator*= (const ArrayReal fScalar) |
void | operator+= (const ArrayQuaternion &a) |
void | operator+= (const ArrayQuaternion &a) |
void | operator+= (const ArrayQuaternion &a) |
void | operator-= (const ArrayQuaternion &a) |
void | operator-= (const ArrayQuaternion &a) |
void | operator-= (const ArrayQuaternion &a) |
void | setAll (const Quaternion &v) |
void | setAll (const Quaternion &v) |
void | setAll (const Quaternion &v) |
void | setFromQuaternion (const Quaternion &v, size_t index) |
void | setFromQuaternion (const Quaternion &v, size_t index) |
void | setFromQuaternion (const Quaternion &v, size_t index) |
void | ToAngleAxis (ArrayRadian &rfAngle, ArrayVector3 &rkAxis) const |
void | ToAngleAxis (ArrayRadian &rfAngle, ArrayVector3 &rkAxis) const |
void | ToAngleAxis (ArrayRadian &rfAngle, ArrayVector3 &rkAxis) const |
ArrayQuaternion | UnitInverse () const |
ArrayQuaternion | UnitInverse () const |
ArrayQuaternion | UnitInverse () const |
ArrayVector3 | xAxis () const |
Returns the X orthonormal axis defining the quaternion. More... | |
ArrayVector3 | xAxis () const |
Returns the X orthonormal axis defining the quaternion. More... | |
ArrayVector3 | xAxis () const |
Returns the X orthonormal axis defining the quaternion. More... | |
ArrayVector3 | yAxis () const |
Returns the Y orthonormal axis defining the quaternion. More... | |
ArrayVector3 | yAxis () const |
Returns the Y orthonormal axis defining the quaternion. More... | |
ArrayVector3 | yAxis () const |
Returns the Y orthonormal axis defining the quaternion. More... | |
ArrayVector3 | zAxis () const |
Returns the Z orthonormal axis defining the quaternion. More... | |
ArrayVector3 | zAxis () const |
Returns the Z orthonormal axis defining the quaternion. More... | |
ArrayVector3 | zAxis () const |
Returns the Z orthonormal axis defining the quaternion. More... | |
Static Public Member Functions | |
static ArrayQuaternion | Cmov4 (const ArrayQuaternion &arg1, const ArrayQuaternion &arg2, ArrayMaskR mask) |
Conditional move. More... | |
static ArrayQuaternion | Cmov4 (const ArrayQuaternion &arg1, const ArrayQuaternion &arg2, ArrayMaskR mask) |
Conditional move. More... | |
static ArrayQuaternion | Cmov4 (const ArrayQuaternion &arg1, const ArrayQuaternion &arg2, ArrayMaskR mask) |
Conditional move. More... | |
static void | mul (const ArrayQuaternion &inQ, ArrayVector3 &inOutVec) |
Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there. More... | |
static void | mul (const ArrayQuaternion &inQ, ArrayVector3 &inOutVec) |
Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there. More... | |
static void | mul (const ArrayQuaternion &inQ, ArrayVector3 &inOutVec) |
Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there. More... | |
static ArrayQuaternion | nlerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | nlerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | nlerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | nlerpShortest (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | nlerpShortest (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | nlerpShortest (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | Slerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | Slerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
static ArrayQuaternion | Slerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ) |
Public Attributes | |
ArrayReal | mChunkBase [4] |
Real | w |
Real | x |
Real | y |
Real | z |
Static Public Attributes | |
static const ArrayQuaternion | IDENTITY |
static const ArrayQuaternion | ZERO |
Cache-friendly array of Quaternion represented as a SoA array.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Conditional move update.
Changes each of the four vectors contained in 'this' with the replacement provided:
this[i] = mask[i] != 0 ? this[i] : replacement[i]
replacement | Vectors to be used as replacement if the mask is zero. |
mask | mask filled with either 0's or 0xFFFFFFFF |
|
inline |
Conditional move update.
Changes each of the four vectors contained in 'this' with the replacement provided:
this[i] = mask[i] != 0 ? this[i] : replacement[i]
replacement | Vectors to be used as replacement if the mask is zero. |
mask | mask filled with either 0's or 0xFFFFFFFF |
|
inline |
Conditional move update.
Changes each of the four vectors contained in 'this' with the replacement provided:
this[i] = mask[i] != 0 ? this[i] : replacement[i]
replacement | Vectors to be used as replacement if the mask is zero. |
mask | mask filled with either 0's or 0xFFFFFFFF |
|
inlinestatic |
Conditional move.
Selects between arg1 & arg2 according to mask:
this[i] = mask[i] != 0 ? arg1[i] : arg2[i]
arg1 | First array of Vectors |
arg2 | Second array of Vectors |
mask | mask filled with either 0's or 0xFFFFFFFF |
|
inlinestatic |
Conditional move.
Selects between arg1 & arg2 according to mask:
this[i] = mask[i] != 0 ? arg1[i] : arg2[i]
arg1 | First array of Vectors |
arg2 | Second array of Vectors |
mask | mask filled with either 0's or 0xFFFFFFFF |
|
inlinestatic |
Conditional move.
Selects between arg1 & arg2 according to mask:
this[i] = mask[i] != 0 ? arg1[i] : arg2[i]
arg1 | First array of Vectors |
arg2 | Second array of Vectors |
mask | mask filled with either 0's or 0xFFFFFFFF |
|
inline |
Returns the dot product of the quaternion.
|
inline |
Returns the dot product of the quaternion.
|
inline |
Returns the dot product of the quaternion.
|
inline |
|
inline |
|
inline |
|
inline |
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.
|
inline |
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.
|
inline |
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.
|
inline |
matrix | 9-element matrix (3x3) |
|
inline |
matrix | 9-element matrix (3x3) |
|
inline |
matrix | 9-element matrix (3x3) |
|
inline |
References ARRAY_PACKED_REALS, Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
Referenced by Ogre::BoneTransform::copy(), and Ogre::Transform::copy().
|
inline |
References ARRAY_PACKED_REALS, Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inline |
References ARRAY_PACKED_REALS, Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inline |
Prefer using.
References ARRAY_PACKED_REALS.
|
inline |
Prefer using.
References ARRAY_PACKED_REALS.
|
inline |
Prefer using.
References ARRAY_PACKED_REALS.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there.
|
inlinestatic |
Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there.
|
inlinestatic |
Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available.
|
inline |
Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available.
|
inline |
Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available.
|
inline |
Rotation of a vector by a quaternion.
|
inline |
Rotation of a vector by a quaternion.
|
inline |
Rotation of a vector by a quaternion.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inline |
References Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inline |
References Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inline |
References ARRAY_PACKED_REALS, Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
Referenced by Ogre::BoneTransform::copy(), and Ogre::Transform::copy().
|
inline |
References ARRAY_PACKED_REALS, Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inline |
References ARRAY_PACKED_REALS, Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Returns the X orthonormal axis defining the quaternion.
Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis
|
inline |
Returns the X orthonormal axis defining the quaternion.
Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis
|
inline |
Returns the X orthonormal axis defining the quaternion.
Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis
|
inline |
Returns the Y orthonormal axis defining the quaternion.
Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis
|
inline |
Returns the Y orthonormal axis defining the quaternion.
Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis
|
inline |
Returns the Y orthonormal axis defining the quaternion.
Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis
|
inline |
Returns the Z orthonormal axis defining the quaternion.
Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis
|
inline |
Returns the Z orthonormal axis defining the quaternion.
Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis
|
inline |
Returns the Z orthonormal axis defining the quaternion.
Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis
|
static |
ArrayReal Ogre::ArrayQuaternion::mChunkBase |
Real Ogre::ArrayQuaternion::w |
Real Ogre::ArrayQuaternion::x |
Real Ogre::ArrayQuaternion::y |
Real Ogre::ArrayQuaternion::z |
|
static |