OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::ArrayQuaternion Class Reference

Cache-friendly array of Quaternion represented as a SoA array. More...

#include <OgreArrayQuaternion.h>

+ Collaboration diagram for Ogre::ArrayQuaternion:

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 (void) const
 
ArrayQuaternion Exp (void) const
 
ArrayQuaternion Exp (void) 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 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 (void) const
 
ArrayQuaternion Inverse (void) const
 
ArrayQuaternion Inverse (void) const
 
ArrayQuaternion Log (void) const
 
ArrayQuaternion Log (void) const
 
ArrayQuaternion Log (void) const
 
ArrayReal Norm (void) const
 
ArrayReal Norm (void) const
 
ArrayReal Norm (void) const
 
void normalise (void)
 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 (void)
 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 (void)
 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 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 (void) const
 
ArrayQuaternion UnitInverse (void) const
 
ArrayQuaternion UnitInverse (void) const
 
ArrayVector3 xAxis (void) const
 Returns the X orthonormal axis defining the quaternion. More...
 
ArrayVector3 xAxis (void) const
 Returns the X orthonormal axis defining the quaternion. More...
 
ArrayVector3 xAxis (void) const
 Returns the X orthonormal axis defining the quaternion. More...
 
ArrayVector3 yAxis (void) const
 Returns the Y orthonormal axis defining the quaternion. More...
 
ArrayVector3 yAxis (void) const
 Returns the Y orthonormal axis defining the quaternion. More...
 
ArrayVector3 yAxis (void) const
 Returns the Y orthonormal axis defining the quaternion. More...
 
ArrayVector3 zAxis (void) const
 Returns the Z orthonormal axis defining the quaternion. More...
 
ArrayVector3 zAxis (void) const
 Returns the Z orthonormal axis defining the quaternion. More...
 
ArrayVector3 zAxis (void) 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)
 Quaternion::nlerp More...
 
static ArrayQuaternion nlerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::nlerp More...
 
static ArrayQuaternion nlerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::nlerp More...
 
static ArrayQuaternion nlerpShortest (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::nlerp More...
 
static ArrayQuaternion nlerpShortest (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::nlerp More...
 
static ArrayQuaternion Slerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::Slerp More...
 
static ArrayQuaternion Slerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::Slerp More...
 
static ArrayQuaternion Slerp (ArrayReal fT, const ArrayQuaternion &rkP, const ArrayQuaternion &rkQ)
 Quaternion::Slerp More...
 

Public Attributes

ArrayReal mChunkBase [4]
 
Real w
 
Real x
 
Real y
 
Real z
 

Static Public Attributes

static const ArrayQuaternion IDENTITY
 
static const ArrayQuaternion ZERO
 

Friends

ArrayQuaternion operator* (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator* (const ArrayQuaternion &lhs, ArrayReal scalar)
 
ArrayQuaternion operator* (ArrayReal scalar, const ArrayQuaternion &lhs)
 
ArrayQuaternion operator* (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator* (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator* (const ArrayQuaternion &lhs, ArrayReal scalar)
 
ArrayQuaternion operator* (const ArrayQuaternion &lhs, ArrayReal scalar)
 
ArrayQuaternion operator* (ArrayReal scalar, const ArrayQuaternion &lhs)
 
ArrayQuaternion operator* (ArrayReal scalar, const ArrayQuaternion &lhs)
 
ArrayQuaternion operator+ (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator+ (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator+ (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator- (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator- (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 
ArrayQuaternion operator- (const ArrayQuaternion &lhs, const ArrayQuaternion &rhs)
 

Detailed Description

Cache-friendly array of Quaternion represented as a SoA array.

Remarks
ArrayQuaternion is a SIMD & cache-friendly version of Quaternion. An operation on an ArrayQuaternion is done on 4 quaternions at a time (the actual amount is defined by ARRAY_PACKED_REALS) Assuming ARRAY_PACKED_REALS == 4, the memory layout will be as following: mChunkBase mChunkBase + 4 WWWW XXXX YYYY ZZZZ WWWW XXXX YYYY ZZZZ Extracting one quat (XYZW) needs 64 bytes, which is within the 64 byte size of common cache lines. Architectures where the cache line == 32 bytes may want to set ARRAY_PACKED_REALS = 2 depending on their needs

Definition at line 65 of file C/OgreArrayQuaternion.h.

Constructor & Destructor Documentation

Ogre::ArrayQuaternion::ArrayQuaternion ( )
inline

Definition at line 70 of file C/OgreArrayQuaternion.h.

Ogre::ArrayQuaternion::ArrayQuaternion ( const ArrayReal chunkW,
const ArrayReal chunkX,
const ArrayReal chunkY,
const ArrayReal chunkZ 
)
inline

Definition at line 71 of file C/OgreArrayQuaternion.h.

Ogre::ArrayQuaternion::ArrayQuaternion ( )
inline

Definition at line 70 of file NEON/Single/OgreArrayQuaternion.h.

Ogre::ArrayQuaternion::ArrayQuaternion ( const ArrayReal chunkW,
const ArrayReal chunkX,
const ArrayReal chunkY,
const ArrayReal chunkZ 
)
inline

Definition at line 71 of file NEON/Single/OgreArrayQuaternion.h.

Ogre::ArrayQuaternion::ArrayQuaternion ( )
inline

Definition at line 70 of file SSE2/Single/OgreArrayQuaternion.h.

Ogre::ArrayQuaternion::ArrayQuaternion ( const ArrayReal chunkW,
const ArrayReal chunkX,
const ArrayReal chunkY,
const ArrayReal chunkZ 
)
inline

Definition at line 71 of file SSE2/Single/OgreArrayQuaternion.h.

Member Function Documentation

void Ogre::ArrayQuaternion::Cmov4 ( ArrayMaskR  mask,
const ArrayQuaternion replacement 
)
inline

Conditional move update.

MathlibC::Cmov4 Changes each of the four vectors contained in 'this' with the replacement provided

Remarks
If mask param contains anything other than 0's or 0xffffffff's the result is undefined. Use this version if you want to decide whether to keep current result or overwrite with a replacement (performance optimization). i.e. a = Cmov4( a, b ) If this vector hasn't been assigned yet any value and want to decide between two ArrayQuaternions, i.e. a = Cmov4( b, c ) then
See also
Cmov4( const ArrayQuaternion &arg1, const ArrayQuaternion &arg2, ArrayReal mask ); instead.
Parameters
Vectorsto be used as replacement if the mask is zero.
maskfilled with either 0's or 0xFFFFFFFF
Returns
this[i] = mask[i] != 0 ? this[i] : replacement[i]
void Ogre::ArrayQuaternion::Cmov4 ( ArrayMaskR  mask,
const ArrayQuaternion replacement 
)
inline

Conditional move update.

MathlibSSE2::Cmov4 Changes each of the four vectors contained in 'this' with the replacement provided

Remarks
If mask param contains anything other than 0's or 0xffffffff's the result is undefined. Use this version if you want to decide whether to keep current result or overwrite with a replacement (performance optimization). i.e. a = Cmov4( a, b ) If this vector hasn't been assigned yet any value and want to decide between two ArrayQuaternions, i.e. a = Cmov4( b, c ) then
See also
Cmov4( const ArrayQuaternion &arg1, const ArrayQuaternion &arg2, ArrayReal mask ); instead.
Parameters
Vectorsto be used as replacement if the mask is zero.
maskfilled with either 0's or 0xFFFFFFFF
Returns
this[i] = mask[i] != 0 ? this[i] : replacement[i]
void Ogre::ArrayQuaternion::Cmov4 ( ArrayMaskR  mask,
const ArrayQuaternion replacement 
)
inline

Conditional move update.

MathlibNEON::Cmov4 Changes each of the four vectors contained in 'this' with the replacement provided

Remarks
If mask param contains anything other than 0's or 0xffffffff's the result is undefined. Use this version if you want to decide whether to keep current result or overwrite with a replacement (performance optimization). i.e. a = Cmov4( a, b ) If this vector hasn't been assigned yet any value and want to decide between two ArrayQuaternions, i.e. a = Cmov4( b, c ) then
See also
Cmov4( const ArrayQuaternion &arg1, const ArrayQuaternion &arg2, ArrayReal mask ); instead.
Parameters
Vectorsto be used as replacement if the mask is zero.
maskfilled with either 0's or 0xFFFFFFFF
Returns
this[i] = mask[i] != 0 ? this[i] : replacement[i]
static ArrayQuaternion Ogre::ArrayQuaternion::Cmov4 ( const ArrayQuaternion arg1,
const ArrayQuaternion arg2,
ArrayMaskR  mask 
)
inlinestatic

Conditional move.

MathlibC::Cmov4 Selects between arg1 & arg2 according to mask

Remarks
If mask param contains anything other than 0's or 0xffffffff's the result is undefined. If you wanted to do a = cmov4( a, b ), then consider using the update version
See also
Cmov4( ArrayReal mask, const ArrayQuaternion &replacement ); instead.
Parameters
Firstarray of Vectors
Secondarray of Vectors
maskfilled with either 0's or 0xFFFFFFFF
Returns
this[i] = mask[i] != 0 ? arg1[i] : arg2[i]
static ArrayQuaternion Ogre::ArrayQuaternion::Cmov4 ( const ArrayQuaternion arg1,
const ArrayQuaternion arg2,
ArrayMaskR  mask 
)
inlinestatic

Conditional move.

MathlibSSE2::Cmov4 Selects between arg1 & arg2 according to mask

Remarks
If mask param contains anything other than 0's or 0xffffffff's the result is undefined. If you wanted to do a = cmov4( a, b ), then consider using the update version
See also
Cmov4( ArrayReal mask, const ArrayQuaternion &replacement ); instead.
Parameters
Firstarray of Vectors
Secondarray of Vectors
maskfilled with either 0's or 0xFFFFFFFF
Returns
this[i] = mask[i] != 0 ? arg1[i] : arg2[i]
static ArrayQuaternion Ogre::ArrayQuaternion::Cmov4 ( const ArrayQuaternion arg1,
const ArrayQuaternion arg2,
ArrayMaskR  mask 
)
inlinestatic

Conditional move.

MathlibNEON::Cmov4 Selects between arg1 & arg2 according to mask

Remarks
If mask param contains anything other than 0's or 0xffffffff's the result is undefined. If you wanted to do a = cmov4( a, b ), then consider using the update version
See also
Cmov4( ArrayReal mask, const ArrayQuaternion &replacement ); instead.
Parameters
Firstarray of Vectors
Secondarray of Vectors
maskfilled with either 0's or 0xFFFFFFFF
Returns
this[i] = mask[i] != 0 ? arg1[i] : arg2[i]
ArrayReal Ogre::ArrayQuaternion::Dot ( const ArrayQuaternion rkQ) const
inline

Returns the dot product of the quaternion.

ArrayReal Ogre::ArrayQuaternion::Dot ( const ArrayQuaternion rkQ) const
inline

Returns the dot product of the quaternion.

ArrayReal Ogre::ArrayQuaternion::Dot ( const ArrayQuaternion rkQ) const
inline

Returns the dot product of the quaternion.

ArrayQuaternion Ogre::ArrayQuaternion::Exp ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Exp ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Exp ( void  ) const
inline
void Ogre::ArrayQuaternion::FromAngleAxis ( const ArrayRadian rfAngle,
const ArrayVector3 rkAxis 
)
inline

Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.

void Ogre::ArrayQuaternion::FromAngleAxis ( const ArrayRadian rfAngle,
const ArrayVector3 rkAxis 
)
inline

Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.

void Ogre::ArrayQuaternion::FromAngleAxis ( const ArrayRadian rfAngle,
const ArrayVector3 rkAxis 
)
inline

Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.

void Ogre::ArrayQuaternion::getAsQuaternion ( Quaternion out,
size_t  index 
) const
inline
void Ogre::ArrayQuaternion::getAsQuaternion ( Quaternion out,
size_t  index 
) const
inline
void Ogre::ArrayQuaternion::getAsQuaternion ( Quaternion out,
size_t  index 
) const
inline
Quaternion Ogre::ArrayQuaternion::getAsQuaternion ( size_t  index) const
inline

Prefer using.

See also
getAsQuaternion() because this function may have more overhead (the other one is faster)

Definition at line 92 of file C/OgreArrayQuaternion.h.

References ARRAY_PACKED_REALS.

Quaternion Ogre::ArrayQuaternion::getAsQuaternion ( size_t  index) const
inline

Prefer using.

See also
getAsQuaternion() because this function may have more overhead (the other one is faster)

Definition at line 92 of file SSE2/Single/OgreArrayQuaternion.h.

References ARRAY_PACKED_REALS.

Quaternion Ogre::ArrayQuaternion::getAsQuaternion ( size_t  index) const
inline

Prefer using.

See also
getAsQuaternion() because this function may have more overhead (the other one is faster)

Definition at line 92 of file NEON/Single/OgreArrayQuaternion.h.

References ARRAY_PACKED_REALS.

ArrayQuaternion Ogre::ArrayQuaternion::Inverse ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Inverse ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Inverse ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Log ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Log ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::Log ( void  ) const
inline
static void Ogre::ArrayQuaternion::mul ( const ArrayQuaternion inQ,
ArrayVector3 inOutVec 
)
inlinestatic

Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there.

Remarks
This function is the same as doing: ArrayVector v; ArrayQuaternion q; v = q * v; In fact, the operator overloading will make above code work perfectly. However, because we don't trust all compilers in optimizing this performance-sensitive function (in fact MSVC 2008 doesn't inline the op. and generates an unnecessary ArrayVector3) this function will take the input vector, and store the results back on that vector. This is very common when concatenating transformations on an ArrayVector3, whose memory reside in the heap (it makes better usage of the memory). Long story short, prefer calling this function to using an operator when just updating an ArrayVector3 is involved. (It's fine using operators for ArrayVector3s)
Parameters
static void Ogre::ArrayQuaternion::mul ( const ArrayQuaternion inQ,
ArrayVector3 inOutVec 
)
inlinestatic

Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there.

Remarks
This function is the same as doing: ArrayVector v; ArrayQuaternion q; v = q * v; In fact, the operator overloading will make above code work perfectly. However, because we don't trust all compilers in optimizing this performance-sensitive function (in fact MSVC 2008 doesn't inline the op. and generates an unnecessary ArrayVector3) this function will take the input vector, and store the results back on that vector. This is very common when concatenating transformations on an ArrayVector3, whose memory reside in the heap (it makes better usage of the memory). Long story short, prefer calling this function to using an operator when just updating an ArrayVector3 is involved. (It's fine using operators for ArrayVector3s)
Parameters
static void Ogre::ArrayQuaternion::mul ( const ArrayQuaternion inQ,
ArrayVector3 inOutVec 
)
inlinestatic

Rotates a vector by multiplying the quaternion to the vector, and modifies it's contents by storing the results there.

Remarks
This function is the same as doing: ArrayVector v; ArrayQuaternion q; v = q * v; In fact, the operator overloading will make above code work perfectly. However, because we don't trust all compilers in optimizing this performance-sensitive function (in fact MSVC 2008 doesn't inline the op. and generates an unnecessary ArrayVector3) this function will take the input vector, and store the results back on that vector. This is very common when concatenating transformations on an ArrayVector3, whose memory reside in the heap (it makes better usage of the memory). Long story short, prefer calling this function to using an operator when just updating an ArrayVector3 is involved. (It's fine using operators for ArrayVector3s)
Parameters
static ArrayQuaternion Ogre::ArrayQuaternion::nlerp ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::nlerp

Remarks
shortestPath is always false
static ArrayQuaternion Ogre::ArrayQuaternion::nlerp ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::nlerp

Remarks
shortestPath is always false
static ArrayQuaternion Ogre::ArrayQuaternion::nlerp ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::nlerp

Remarks
shortestPath is always false
static ArrayQuaternion Ogre::ArrayQuaternion::nlerpShortest ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::nlerp

Remarks
shortestPath is always true
static ArrayQuaternion Ogre::ArrayQuaternion::nlerpShortest ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::nlerp

Remarks
shortestPath is always true
ArrayReal Ogre::ArrayQuaternion::Norm ( void  ) const
inline

ArrayReal Ogre::ArrayQuaternion::Norm ( void  ) const
inline

ArrayReal Ogre::ArrayQuaternion::Norm ( void  ) const
inline

void Ogre::ArrayQuaternion::normalise ( void  )
inline

Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available.

See also
Quaternion::normalise()
void Ogre::ArrayQuaternion::normalise ( void  )
inline

Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available.

See also
Quaternion::normalise()
void Ogre::ArrayQuaternion::normalise ( void  )
inline

Unlike Quaternion::normalise(), this function does not return the length of the vector because such value was not cached and was never available.

See also
Quaternion::normalise()
ArrayVector3 Ogre::ArrayQuaternion::operator* ( const ArrayVector3 v) const
inline

Rotation of a vector by a quaternion.

ArrayVector3 Ogre::ArrayQuaternion::operator* ( const ArrayVector3 v) const
inline

Rotation of a vector by a quaternion.

ArrayVector3 Ogre::ArrayQuaternion::operator* ( const ArrayVector3 v) const
inline

Rotation of a vector by a quaternion.

void Ogre::ArrayQuaternion::operator*= ( const ArrayReal  fScalar)
inline
void Ogre::ArrayQuaternion::operator*= ( const ArrayReal  fScalar)
inline
void Ogre::ArrayQuaternion::operator*= ( const ArrayReal  fScalar)
inline
void Ogre::ArrayQuaternion::operator+= ( const ArrayQuaternion a)
inline
void Ogre::ArrayQuaternion::operator+= ( const ArrayQuaternion a)
inline
void Ogre::ArrayQuaternion::operator+= ( const ArrayQuaternion a)
inline
void Ogre::ArrayQuaternion::operator-= ( const ArrayQuaternion a)
inline
void Ogre::ArrayQuaternion::operator-= ( const ArrayQuaternion a)
inline
void Ogre::ArrayQuaternion::operator-= ( const ArrayQuaternion a)
inline
void Ogre::ArrayQuaternion::setAll ( const Quaternion v)
inline
void Ogre::ArrayQuaternion::setAll ( const Quaternion v)
inline
void Ogre::ArrayQuaternion::setFromQuaternion ( const Quaternion v,
size_t  index 
)
inline
void Ogre::ArrayQuaternion::setFromQuaternion ( const Quaternion v,
size_t  index 
)
inline
void Ogre::ArrayQuaternion::setFromQuaternion ( const Quaternion v,
size_t  index 
)
inline
static ArrayQuaternion Ogre::ArrayQuaternion::Slerp ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::Slerp

Remarks
shortestPath is always true
static ArrayQuaternion Ogre::ArrayQuaternion::Slerp ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::Slerp

Remarks
shortestPath is always true
static ArrayQuaternion Ogre::ArrayQuaternion::Slerp ( ArrayReal  fT,
const ArrayQuaternion rkP,
const ArrayQuaternion rkQ 
)
inlinestatic

Quaternion::Slerp

Remarks
shortestPath is always true
void Ogre::ArrayQuaternion::ToAngleAxis ( ArrayRadian rfAngle,
ArrayVector3 rkAxis 
) const
inline

void Ogre::ArrayQuaternion::ToAngleAxis ( ArrayRadian rfAngle,
ArrayVector3 rkAxis 
) const
inline

void Ogre::ArrayQuaternion::ToAngleAxis ( ArrayRadian rfAngle,
ArrayVector3 rkAxis 
) const
inline

ArrayQuaternion Ogre::ArrayQuaternion::UnitInverse ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::UnitInverse ( void  ) const
inline
ArrayQuaternion Ogre::ArrayQuaternion::UnitInverse ( void  ) const
inline
ArrayVector3 Ogre::ArrayQuaternion::xAxis ( void  ) const
inline

Returns the X orthonormal axis defining the quaternion.

Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis

ArrayVector3 Ogre::ArrayQuaternion::xAxis ( void  ) const
inline

Returns the X orthonormal axis defining the quaternion.

Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis

ArrayVector3 Ogre::ArrayQuaternion::xAxis ( void  ) const
inline

Returns the X orthonormal axis defining the quaternion.

Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis

ArrayVector3 Ogre::ArrayQuaternion::yAxis ( void  ) const
inline

Returns the Y orthonormal axis defining the quaternion.

Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis

ArrayVector3 Ogre::ArrayQuaternion::yAxis ( void  ) const
inline

Returns the Y orthonormal axis defining the quaternion.

Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis

ArrayVector3 Ogre::ArrayQuaternion::yAxis ( void  ) const
inline

Returns the Y orthonormal axis defining the quaternion.

Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis

ArrayVector3 Ogre::ArrayQuaternion::zAxis ( void  ) const
inline

Returns the Z orthonormal axis defining the quaternion.

Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis

ArrayVector3 Ogre::ArrayQuaternion::zAxis ( void  ) const
inline

Returns the Z orthonormal axis defining the quaternion.

Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis

ArrayVector3 Ogre::ArrayQuaternion::zAxis ( void  ) const
inline

Returns the Z orthonormal axis defining the quaternion.

Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis

Friends And Related Function Documentation

ArrayQuaternion operator* ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator* ( const ArrayQuaternion lhs,
ArrayReal  scalar 
)
friend
ArrayQuaternion operator* ( ArrayReal  scalar,
const ArrayQuaternion lhs 
)
friend
ArrayQuaternion operator* ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator* ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator* ( const ArrayQuaternion lhs,
ArrayReal  scalar 
)
friend
ArrayQuaternion operator* ( const ArrayQuaternion lhs,
ArrayReal  scalar 
)
friend
ArrayQuaternion operator* ( ArrayReal  scalar,
const ArrayQuaternion lhs 
)
friend
ArrayQuaternion operator* ( ArrayReal  scalar,
const ArrayQuaternion lhs 
)
friend
ArrayQuaternion operator+ ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator+ ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator+ ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator- ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator- ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend
ArrayQuaternion operator- ( const ArrayQuaternion lhs,
const ArrayQuaternion rhs 
)
friend

Member Data Documentation

static const ArrayQuaternion Ogre::ArrayQuaternion::IDENTITY
static

Definition at line 226 of file C/OgreArrayQuaternion.h.

ArrayReal Ogre::ArrayQuaternion::mChunkBase

Definition at line 68 of file NEON/Single/OgreArrayQuaternion.h.

Real Ogre::ArrayQuaternion::w

Definition at line 68 of file C/OgreArrayQuaternion.h.

Real Ogre::ArrayQuaternion::x

Definition at line 68 of file C/OgreArrayQuaternion.h.

Real Ogre::ArrayQuaternion::y

Definition at line 68 of file C/OgreArrayQuaternion.h.

Real Ogre::ArrayQuaternion::z

Definition at line 68 of file C/OgreArrayQuaternion.h.

static const ArrayQuaternion Ogre::ArrayQuaternion::ZERO
static

Definition at line 225 of file C/OgreArrayQuaternion.h.


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