OGRE-Next 4.0.0unstable
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
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.
void Cmov4 (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update.
void Cmov4 (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update.
void CmovRobust (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update.
void CmovRobust (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update.
void CmovRobust (ArrayMaskR mask, const ArrayVector4 &replacement)
 Conditional move update.
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.
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.
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.
Vector4 getAsVector4 (size_t index) const
 Prefer using.
Vector4 getAsVector4 (size_t index) const
 Prefer using.
Vector4 getAsVector4 (size_t index) const
 Prefer using.
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).
void inverseLeaveZeroes ()
 Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0).
void inverseLeaveZeroes ()
 Calculates the inverse of the vectors: 1.0f / v; But if original is zero, the zero is left (0 / 0 = 0).
int isNaN () const
int isNaN () const
int isNaN () const
void makeCeil (const ArrayVector4 &cmp)
 Does the same as Vector3::makeCeil (including the .w component).
void makeCeil (const ArrayVector4 &cmp)
 Does the same as Vector3::makeCeil (including the .w component).
void makeCeil (const ArrayVector4 &cmp)
 Does the same as Vector3::makeCeil (including the .w component).
void makeFloor (const ArrayVector4 &cmp)
 Does the same as Vector3::makeFloor (including the .w component).
void makeFloor (const ArrayVector4 &cmp)
 Does the same as Vector3::makeFloor (including the .w component).
void makeFloor (const ArrayVector4 &cmp)
 Does the same as Vector3::makeFloor (including the .w component).
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 ArrayVector4 & operator+ () const
const ArrayVector4 & operator+ () const
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)
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)
ArrayVector4 & operator= (const Real fScalar)
ArrayVector4 & operator= (const Real fScalar)
ArrayVector4 & operator= (const Real fScalar)
void setAll (const Vector4 &v)
 Sets all packed vectors to the same value as the scalar input vector.
void setAll (const Vector4 &v)
 Sets all packed vectors to the same value as the scalar input vector.
void setAll (const Vector4 &v)
 Sets all packed vectors to the same value as the scalar input vector.
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.
static ArrayVector4 Cmov4 (const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask)
 Conditional move.
static ArrayVector4 Cmov4 (const ArrayVector4 &arg1, const ArrayVector4 &arg2, ArrayMaskR mask)
 Conditional move.

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]

◆ ArrayVector4() [2/6]

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

References mChunkBase.

◆ ArrayVector4() [3/6]

Ogre::ArrayVector4::ArrayVector4 ( )
inline

◆ ArrayVector4() [4/6]

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

References mChunkBase.

◆ ArrayVector4() [5/6]

Ogre::ArrayVector4::ArrayVector4 ( )
inline

◆ ArrayVector4() [6/6]

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

References mChunkBase.

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ Cmov4() [4/6]

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

References ArrayVector4().

◆ Cmov4() [5/6]

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

References ArrayVector4(), and ZERO.

◆ Cmov4() [6/6]

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

References ArrayVector4(), and ZERO.

◆ 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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ 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, and mChunkBase.

◆ 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, and mChunkBase.

◆ 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, and mChunkBase.

◆ 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).

References ArrayVector4().

◆ makeCeil() [2/3]

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

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

References ArrayVector4().

◆ makeCeil() [3/3]

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

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

References ArrayVector4().

◆ makeFloor() [1/3]

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

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

References ArrayVector4().

◆ makeFloor() [2/3]

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

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

References ArrayVector4().

◆ makeFloor() [3/3]

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

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ operator*=() [5/8]

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

References ArrayVector4().

◆ operator*=() [6/8]

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ operator+() [2/3]

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

References ArrayVector4().

◆ operator+() [3/3]

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ operator+=() [5/8]

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

References ArrayVector4().

◆ operator+=() [6/8]

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ operator-() [2/3]

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

References ArrayVector4().

◆ operator-() [3/3]

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ operator-=() [5/8]

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

References ArrayVector4().

◆ operator-=() [6/8]

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

References ArrayVector4().

◆ 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

References ArrayVector4().

◆ operator/=() [5/8]

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

References ArrayVector4().

◆ operator/=() [6/8]

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

References ArrayVector4().

◆ 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

References ArrayVector4(), and mChunkBase.

◆ operator=() [2/3]

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

References ArrayVector4(), and mChunkBase.

◆ operator=() [3/3]

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

References ArrayVector4(), and mChunkBase.

◆ 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 mChunkBase, 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 mChunkBase, 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 mChunkBase, 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

const ArrayVector4 Ogre::ArrayVector4::ZERO
static

Referenced by Cmov4().


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