OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::ArrayVector4 Class Reference

Cache-friendly array of 4-dimensional represented as a SoA array. More...

#include <OgreArrayVector4SSE2.h>

Public Member Functions

 ArrayVector4 ()
 
 ArrayVector4 ()
 
 ArrayVector4 ()
 
 ArrayVector4 (ArrayReal chunkX, ArrayReal chunkY, ArrayReal chunkZ, ArrayReal chunkW)
 
 ArrayVector4 (ArrayReal chunkX, ArrayReal chunkY, ArrayReal chunkZ, ArrayReal chunkW)
 
 ArrayVector4 (ArrayReal chunkX, ArrayReal chunkY, ArrayReal chunkZ, ArrayReal chunkW)
 
void Cmov4 (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update. More...
 
void Cmov4 (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update. More...
 
void Cmov4 (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update. More...
 
void CmovRobust (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update. More...
 
void CmovRobust (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update. More...
 
void CmovRobust (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update. More...
 
void fma3x1 (ArrayReal m, ArrayReal a, ArrayReal m2, ArrayReal a2)
 Performs the following operation: this->xyz = (this->xyz + a) * m this->w = (this->w + a2) * m2. More...
 
void fma3x1 (ArrayReal m, ArrayReal a, ArrayReal m2, ArrayReal a2)
 Performs the following operation: this->xyz = (this->xyz + a) * m this->w = (this->w + a2) * m2. More...
 
void fma3x1 (ArrayReal m, ArrayReal a, ArrayReal m2, ArrayReal a2)
 Performs the following operation: this->xyz = (this->xyz + a) * m this->w = (this->w + a2) * m2. More...
 
Vector4 getAsVector4 (size_t index) const
 Prefer using. More...
 
Vector4 getAsVector4 (size_t index) const
 Prefer using. More...
 
Vector4 getAsVector4 (size_t index) const
 Prefer using. More...
 
void getAsVector4 (Vector4 &out, size_t index) const
 
void getAsVector4 (Vector4 &out, size_t index) const
 
void getAsVector4 (Vector4 &out, size_t index) const
 
void inverseLeaveZeroes ()
 Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0). More...
 
void inverseLeaveZeroes ()
 Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0). More...
 
void inverseLeaveZeroes ()
 Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0). More...
 
int isNaN () const
 
int isNaN () const
 
int isNaN () const
 
void makeCeil (const ArrayVector4 &cmp)
 Does the same as Vector3::makeCeil (including the .w component). More...
 
void makeCeil (const ArrayVector4 &cmp)
 Does the same as Vector3::makeCeil (including the .w component). More...
 
void makeCeil (const ArrayVector4 &cmp)
 Does the same as Vector3::makeCeil (including the .w component). More...
 
void makeFloor (const ArrayVector4 &cmp)
 Does the same as Vector3::makeFloor (including the .w component). More...
 
void makeFloor (const ArrayVector4 &cmp)
 Does the same as Vector3::makeFloor (including the .w component). More...
 
void makeFloor (const ArrayVector4 &cmp)
 Does the same as Vector3::makeFloor (including the .w component). More...
 
void operator*= (const ArrayReal fScalar)
 
void operator*= (const ArrayReal fScalar)
 
void operator*= (const ArrayReal fScalar)
 
void operator*= (const ArrayVector4 &a)
 
void operator*= (const ArrayVector4 &a)
 
void operator*= (const ArrayVector4 &a)
 
void operator*= (const Real fScalar)
 
void operator*= (const Real fScalar)
 
const ArrayVector4operator+ () const
 
const ArrayVector4operator+ () const
 
const ArrayVector4operator+ () const
 
void operator+= (const ArrayReal fScalar)
 
void operator+= (const ArrayReal fScalar)
 
void operator+= (const ArrayReal fScalar)
 
void operator+= (const ArrayVector4 &a)
 
void operator+= (const ArrayVector4 &a)
 
void operator+= (const ArrayVector4 &a)
 
void operator+= (const Real fScalar)
 
void operator+= (const Real fScalar)
 
ArrayVector4 operator- () const
 
ArrayVector4 operator- () const
 
ArrayVector4 operator- () const
 
void operator-= (const ArrayReal fScalar)
 
void operator-= (const ArrayReal fScalar)
 
void operator-= (const ArrayReal fScalar)
 
void operator-= (const ArrayVector4 &a)
 
void operator-= (const ArrayVector4 &a)
 
void operator-= (const ArrayVector4 &a)
 
void operator-= (const Real fScalar)
 
void operator-= (const Real fScalar)
 
void operator/= (const ArrayReal fScalar)
 
void operator/= (const ArrayReal fScalar)
 
void operator/= (const ArrayReal fScalar)
 
void operator/= (const ArrayVector4 &a)
 
void operator/= (const ArrayVector4 &a)
 
void operator/= (const ArrayVector4 &a)
 
void operator/= (const Real fScalar)
 
void operator/= (const Real fScalar)
 
ArrayVector4operator= (const Real fScalar)
 
ArrayVector4operator= (const Real fScalar)
 
ArrayVector4operator= (const Real fScalar)
 
void setAll (const Vector4 &v)
 Sets all packed vectors to the same value as the scalar input vector. More...
 
void setAll (const Vector4 &v)
 Sets all packed vectors to the same value as the scalar input vector. More...
 
void setAll (const Vector4 &v)
 Sets all packed vectors to the same value as the scalar input vector. More...
 
void setFromVector4 (const Vector4 &v, size_t index)
 
void setFromVector4 (const Vector4 &v, size_t index)
 
void setFromVector4 (const Vector4 &v, size_t index)
 

Static Public Member Functions

static ArrayVector4 Cmov4 (const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask)
 Conditional move. More...
 
static ArrayVector4 Cmov4 (const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask)
 Conditional move. More...
 
static ArrayVector4 Cmov4 (const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask)
 Conditional move. More...
 

Public Attributes

ArrayReal mChunkBase [4]
 

Static Public Attributes

static const ArrayVector4 ZERO
 

Detailed Description

Cache-friendly array of 4-dimensional represented as a SoA array.

Remarks
ArrayVector4 is a SIMD & cache-friendly version of Vector4. An operation on an ArrayVector4 is done on 4 vectors 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 XXXX YYYY ZZZZ WWWW XXXX YYYY ZZZZ WWWW Extracting one vector (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
ArrayVector4 is a SIMD & cache-friendly version of Vector4. An operation on an ArrayVector4 is done on 4 vectors 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 XXXX YYYY ZZZZ WWWW XXXX YYYY ZZZZ WWWW Extracting one vector (XYZW) needs 64 bytes, which is within the 64 byte size of common cache lines. Architectures where the cache line == 64 bytes may want to set ARRAY_PACKED_REALS = 2 depending on their needs

Constructor & Destructor Documentation

◆ ArrayVector4() [1/6]

Ogre::ArrayVector4::ArrayVector4 ( )
inline

◆ ArrayVector4() [2/6]

Ogre::ArrayVector4::ArrayVector4 ( ArrayReal  chunkX,
ArrayReal  chunkY,
ArrayReal  chunkZ,
ArrayReal  chunkW 
)
inline

◆ ArrayVector4() [3/6]

Ogre::ArrayVector4::ArrayVector4 ( )
inline

◆ ArrayVector4() [4/6]

Ogre::ArrayVector4::ArrayVector4 ( ArrayReal  chunkX,
ArrayReal  chunkY,
ArrayReal  chunkZ,
ArrayReal  chunkW 
)
inline

◆ ArrayVector4() [5/6]

Ogre::ArrayVector4::ArrayVector4 ( )
inline

◆ ArrayVector4() [6/6]

Ogre::ArrayVector4::ArrayVector4 ( ArrayReal  chunkX,
ArrayReal  chunkY,
ArrayReal  chunkZ,
ArrayReal  chunkW 
)
inline

Member Function Documentation

◆ Cmov4() [1/6]

void Ogre::ArrayVector4::Cmov4 ( ArrayMaskR  mask,
const ArrayVector4 replacement 
)
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]

See also
MathlibC::Cmov4
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 ArrayVector4s, i.e. a = Cmov4( b, c ) then see Cmov4( const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask ); instead.
Parameters
replacementVectors to be used as replacement if the mask is zero.
maskmask filled with either 0's or 0xFFFFFFFF

◆ Cmov4() [2/6]

void Ogre::ArrayVector4::Cmov4 ( ArrayMaskR  mask,
const ArrayVector4 replacement 
)
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]

See also
MathlibNEON::Cmov4
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 ArrayVector4s, i.e. a = Cmov4( b, c ) then see Cmov4( const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask ); instead.
Parameters
replacementVectors to be used as replacement if the mask is zero.
maskmask filled with either 0's or 0xFFFFFFFF

◆ Cmov4() [3/6]

void Ogre::ArrayVector4::Cmov4 ( ArrayMaskR  mask,
const ArrayVector4 replacement 
)
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]

See also
MathlibSSE2::Cmov4
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 ArrayVector4s, i.e. a = Cmov4( b, c ) then see Cmov4( const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask ); instead.
Parameters
replacementVectors to be used as replacement if the mask is zero.
maskmask filled with either 0's or 0xFFFFFFFF

◆ Cmov4() [4/6]

static ArrayVector4 Ogre::ArrayVector4::Cmov4 ( const ArrayVector4 arg1,
const ArrayVector4 arg2,
ArrayMaskR  mask 
)
inlinestatic

Conditional move.

Selects between arg1 & arg2 according to mask:

this[i] = mask[i] != 0 ? arg1[i] : arg2[i]

See also
MathlibC::Cmov4
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 Cmov4( ArrayMaskR mask, const ArrayVector4 &replacement ); instead.
Parameters
arg1First array of Vectors
arg2Second array of Vectors
maskmask filled with either 0's or 0xFFFFFFFF

◆ Cmov4() [5/6]

static ArrayVector4 Ogre::ArrayVector4::Cmov4 ( const ArrayVector4 arg1,
const ArrayVector4 arg2,
ArrayMaskR  mask 
)
inlinestatic

Conditional move.

Selects between arg1 & arg2 according to mask:

this[i] = mask[i] != 0 ? arg1[i] : arg2[i]

See also
MathlibNEON::Cmov4
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 Cmov4( ArrayMaskR mask, const ArrayVector4 &replacement ); instead.
Parameters
arg1First array of Vectors
arg2Second array of Vectors
maskmask filled with either 0's or 0xFFFFFFFF

◆ Cmov4() [6/6]

static ArrayVector4 Ogre::ArrayVector4::Cmov4 ( const ArrayVector4 arg1,
const ArrayVector4 arg2,
ArrayMaskR  mask 
)
inlinestatic

Conditional move.

Selects between arg1 & arg2 according to mask:

this[i] = mask[i] != 0 ? arg1[i] : arg2[i]

See also
MathlibSSE2::Cmov4
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 Cmov4( ArrayMaskR mask, const ArrayVector4 &replacement ); instead.
Parameters
arg1First array of Vectors
arg2Second array of Vectors
maskmask filled with either 0's or 0xFFFFFFFF

◆ CmovRobust() [1/3]

void Ogre::ArrayVector4::CmovRobust ( ArrayMaskR  mask,
const ArrayVector4 replacement 
)
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]

See also
MathlibC::CmovRobust
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 = CmovRobust( a, b ) If this vector hasn't been assigned yet any value and want to decide between two ArrayVector4s, i.e. a = Cmov4( b, c ) then see Cmov4( const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask ); instead.
Parameters
replacementVectors to be used as replacement if the mask is zero.
maskmask filled with either 0's or 0xFFFFFFFF

◆ CmovRobust() [2/3]

void Ogre::ArrayVector4::CmovRobust ( ArrayMaskR  mask,
const ArrayVector4 replacement 
)
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]

See also
MathlibNEON::CmovRobust
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 = CmovRobust( a, b ) If this vector hasn't been assigned yet any value and want to decide between two ArrayVector4s, i.e. a = Cmov4( b, c ) then see Cmov4( const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask ); instead.
Parameters
replacementVectors to be used as replacement if the mask is zero.
maskmask filled with either 0's or 0xFFFFFFFF

◆ CmovRobust() [3/3]

void Ogre::ArrayVector4::CmovRobust ( ArrayMaskR  mask,
const ArrayVector4 replacement 
)
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]

See also
MathlibSSE2::CmovRobust
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 = CmovRobust( a, b ) If this vector hasn't been assigned yet any value and want to decide between two ArrayVector4s, i.e. a = Cmov4( b, c ) then see Cmov4( const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask ); instead.
Parameters
replacementVectors to be used as replacement if the mask is zero.
maskmask filled with either 0's or 0xFFFFFFFF

◆ fma3x1() [1/3]

void Ogre::ArrayVector4::fma3x1 ( ArrayReal  m,
ArrayReal  a,
ArrayReal  m2,
ArrayReal  a2 
)
inline

Performs the following operation: this->xyz = (this->xyz + a) * m this->w = (this->w + a2) * m2.

Parameters
mScalar to multiply to the xyz components.
aScalar to add to the xyz components.
m2Scalar to multiply to the w component.
a2Scalar to add to the w component.

◆ fma3x1() [2/3]

void Ogre::ArrayVector4::fma3x1 ( ArrayReal  m,
ArrayReal  a,
ArrayReal  m2,
ArrayReal  a2 
)
inline

Performs the following operation: this->xyz = (this->xyz + a) * m this->w = (this->w + a2) * m2.

Parameters
mScalar to multiply to the xyz components.
aScalar to add to the xyz components.
m2Scalar to multiply to the w component.
a2Scalar to add to the w component.

◆ fma3x1() [3/3]

void Ogre::ArrayVector4::fma3x1 ( ArrayReal  m,
ArrayReal  a,
ArrayReal  m2,
ArrayReal  a2 
)
inline

Performs the following operation: this->xyz = (this->xyz + a) * m this->w = (this->w + a2) * m2.

Parameters
mScalar to multiply to the xyz components.
aScalar to add to the xyz components.
m2Scalar to multiply to the w component.
a2Scalar to add to the w component.

◆ getAsVector4() [1/6]

Vector4 Ogre::ArrayVector4::getAsVector4 ( size_t  index) const
inline

Prefer using.

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

References ARRAY_PACKED_REALS.

◆ getAsVector4() [2/6]

Vector4 Ogre::ArrayVector4::getAsVector4 ( size_t  index) const
inline

Prefer using.

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

References ARRAY_PACKED_REALS.

◆ getAsVector4() [3/6]

Vector4 Ogre::ArrayVector4::getAsVector4 ( size_t  index) const
inline

Prefer using.

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

References ARRAY_PACKED_REALS.

◆ getAsVector4() [4/6]

void Ogre::ArrayVector4::getAsVector4 ( Vector4 out,
size_t  index 
) const
inline

◆ getAsVector4() [5/6]

void Ogre::ArrayVector4::getAsVector4 ( Vector4 out,
size_t  index 
) const
inline

◆ getAsVector4() [6/6]

void Ogre::ArrayVector4::getAsVector4 ( Vector4 out,
size_t  index 
) const
inline

◆ inverseLeaveZeroes() [1/3]

void Ogre::ArrayVector4::inverseLeaveZeroes ( )
inline

Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0).

Example: Bfore inverseLeaveZero: x = 0; y = 2; z = 3; After inverseLeaveZero x = 0; y = 0.5; z = 0.3333;

◆ inverseLeaveZeroes() [2/3]

void Ogre::ArrayVector4::inverseLeaveZeroes ( )
inline

Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0).

Example: Bfore inverseLeaveZero: x = 0; y = 2; z = 3; After inverseLeaveZero x = 0; y = 0.5; z = 0.3333;

◆ inverseLeaveZeroes() [3/3]

void Ogre::ArrayVector4::inverseLeaveZeroes ( )
inline

Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0).

Example: Bfore inverseLeaveZero: x = 0; y = 2; z = 4; After inverseLeaveZero x = 0; y = 0.5; z = 0.4444;

◆ isNaN() [1/3]

int Ogre::ArrayVector4::isNaN ( ) const
inline
See also
Vector4::isNaN()
Returns
Return value differs from Vector4's counterpart. We return an int bits 0-4 are set for each NaN of each vector inside. if the int is non-zero, there is a NaN.

◆ isNaN() [2/3]

int Ogre::ArrayVector4::isNaN ( ) const
inline
See also
Vector4::isNaN()
Returns
Return value differs from Vector4's counterpart. We return an int bits 0-4 are set for each NaN of each vector inside. if the int is non-zero, there is a NaN.

◆ isNaN() [3/3]

int Ogre::ArrayVector4::isNaN ( ) const
inline
See also
Vector4::isNaN()
Returns
Return value differs from Vector4's counterpart. We return an int bits 0-4 are set for each NaN of each vector inside. if the int is non-zero, there is a NaN.

◆ makeCeil() [1/3]

void Ogre::ArrayVector4::makeCeil ( const ArrayVector4 cmp)
inline

Does the same as Vector3::makeCeil (including the .w component).

◆ makeCeil() [2/3]

void Ogre::ArrayVector4::makeCeil ( const ArrayVector4 cmp)
inline

Does the same as Vector3::makeCeil (including the .w component).

◆ makeCeil() [3/3]

void Ogre::ArrayVector4::makeCeil ( const ArrayVector4 cmp)
inline

Does the same as Vector3::makeCeil (including the .w component).

◆ makeFloor() [1/3]

void Ogre::ArrayVector4::makeFloor ( const ArrayVector4 cmp)
inline

Does the same as Vector3::makeFloor (including the .w component).

◆ makeFloor() [2/3]

void Ogre::ArrayVector4::makeFloor ( const ArrayVector4 cmp)
inline

Does the same as Vector3::makeFloor (including the .w component).

◆ makeFloor() [3/3]

void Ogre::ArrayVector4::makeFloor ( const ArrayVector4 cmp)
inline

Does the same as Vector3::makeFloor (including the .w component).

◆ operator*=() [1/8]

void Ogre::ArrayVector4::operator*= ( const ArrayReal  fScalar)
inline

◆ operator*=() [2/8]

void Ogre::ArrayVector4::operator*= ( const ArrayReal  fScalar)
inline

◆ operator*=() [3/8]

void Ogre::ArrayVector4::operator*= ( const ArrayReal  fScalar)
inline

◆ operator*=() [4/8]

void Ogre::ArrayVector4::operator*= ( const ArrayVector4 a)
inline

◆ operator*=() [5/8]

void Ogre::ArrayVector4::operator*= ( const ArrayVector4 a)
inline

◆ operator*=() [6/8]

void Ogre::ArrayVector4::operator*= ( const ArrayVector4 a)
inline

◆ operator*=() [7/8]

void Ogre::ArrayVector4::operator*= ( const Real  fScalar)
inline

◆ operator*=() [8/8]

void Ogre::ArrayVector4::operator*= ( const Real  fScalar)
inline

◆ operator+() [1/3]

const ArrayVector4& Ogre::ArrayVector4::operator+ ( ) const
inline

◆ operator+() [2/3]

const ArrayVector4& Ogre::ArrayVector4::operator+ ( ) const
inline

◆ operator+() [3/3]

const ArrayVector4& Ogre::ArrayVector4::operator+ ( ) const
inline

◆ operator+=() [1/8]

void Ogre::ArrayVector4::operator+= ( const ArrayReal  fScalar)
inline

◆ operator+=() [2/8]

void Ogre::ArrayVector4::operator+= ( const ArrayReal  fScalar)
inline

◆ operator+=() [3/8]

void Ogre::ArrayVector4::operator+= ( const ArrayReal  fScalar)
inline

◆ operator+=() [4/8]

void Ogre::ArrayVector4::operator+= ( const ArrayVector4 a)
inline

◆ operator+=() [5/8]

void Ogre::ArrayVector4::operator+= ( const ArrayVector4 a)
inline

◆ operator+=() [6/8]

void Ogre::ArrayVector4::operator+= ( const ArrayVector4 a)
inline

◆ operator+=() [7/8]

void Ogre::ArrayVector4::operator+= ( const Real  fScalar)
inline

◆ operator+=() [8/8]

void Ogre::ArrayVector4::operator+= ( const Real  fScalar)
inline

◆ operator-() [1/3]

ArrayVector4 Ogre::ArrayVector4::operator- ( ) const
inline

◆ operator-() [2/3]

ArrayVector4 Ogre::ArrayVector4::operator- ( ) const
inline

◆ operator-() [3/3]

ArrayVector4 Ogre::ArrayVector4::operator- ( ) const
inline

◆ operator-=() [1/8]

void Ogre::ArrayVector4::operator-= ( const ArrayReal  fScalar)
inline

◆ operator-=() [2/8]

void Ogre::ArrayVector4::operator-= ( const ArrayReal  fScalar)
inline

◆ operator-=() [3/8]

void Ogre::ArrayVector4::operator-= ( const ArrayReal  fScalar)
inline

◆ operator-=() [4/8]

void Ogre::ArrayVector4::operator-= ( const ArrayVector4 a)
inline

◆ operator-=() [5/8]

void Ogre::ArrayVector4::operator-= ( const ArrayVector4 a)
inline

◆ operator-=() [6/8]

void Ogre::ArrayVector4::operator-= ( const ArrayVector4 a)
inline

◆ operator-=() [7/8]

void Ogre::ArrayVector4::operator-= ( const Real  fScalar)
inline

◆ operator-=() [8/8]

void Ogre::ArrayVector4::operator-= ( const Real  fScalar)
inline

◆ operator/=() [1/8]

void Ogre::ArrayVector4::operator/= ( const ArrayReal  fScalar)
inline

◆ operator/=() [2/8]

void Ogre::ArrayVector4::operator/= ( const ArrayReal  fScalar)
inline

◆ operator/=() [3/8]

void Ogre::ArrayVector4::operator/= ( const ArrayReal  fScalar)
inline

◆ operator/=() [4/8]

void Ogre::ArrayVector4::operator/= ( const ArrayVector4 a)
inline

◆ operator/=() [5/8]

void Ogre::ArrayVector4::operator/= ( const ArrayVector4 a)
inline

◆ operator/=() [6/8]

void Ogre::ArrayVector4::operator/= ( const ArrayVector4 a)
inline

◆ operator/=() [7/8]

void Ogre::ArrayVector4::operator/= ( const Real  fScalar)
inline

◆ operator/=() [8/8]

void Ogre::ArrayVector4::operator/= ( const Real  fScalar)
inline

◆ operator=() [1/3]

ArrayVector4& Ogre::ArrayVector4::operator= ( const Real  fScalar)
inline

◆ operator=() [2/3]

ArrayVector4& Ogre::ArrayVector4::operator= ( const Real  fScalar)
inline

◆ operator=() [3/3]

ArrayVector4& Ogre::ArrayVector4::operator= ( const Real  fScalar)
inline

◆ setAll() [1/3]

void Ogre::ArrayVector4::setAll ( const Vector4 v)
inline

Sets all packed vectors to the same value as the scalar input vector.

References Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector4::y, and Ogre::Vector4::z.

◆ setAll() [2/3]

void Ogre::ArrayVector4::setAll ( const Vector4 v)
inline

Sets all packed vectors to the same value as the scalar input vector.

References Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector4::y, and Ogre::Vector4::z.

◆ setAll() [3/3]

void Ogre::ArrayVector4::setAll ( const Vector4 v)
inline

Sets all packed vectors to the same value as the scalar input vector.

References Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector4::y, and Ogre::Vector4::z.

◆ setFromVector4() [1/3]

void Ogre::ArrayVector4::setFromVector4 ( const Vector4 v,
size_t  index 
)
inline

◆ setFromVector4() [2/3]

void Ogre::ArrayVector4::setFromVector4 ( const Vector4 v,
size_t  index 
)
inline

◆ setFromVector4() [3/3]

void Ogre::ArrayVector4::setFromVector4 ( const Vector4 v,
size_t  index 
)
inline

Member Data Documentation

◆ mChunkBase

ArrayReal Ogre::ArrayVector4::mChunkBase

◆ ZERO

static const ArrayVector4 Ogre::ArrayVector4::ZERO
static

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