#include <sse_vector_4i32.h>
The class and the default constructor are always defined. The functions of this class are only defined when C4D_HAS_SSE2_CAPABILITY is set. Instances of this class must be aligned to 16 bytes. The layout in the memory is as follows: address + 0 + 1 + 2 + 3 R0 R1 R2 R3
Public Member Functions | |
MAXON_ATTRIBUTE_FORCE_INLINE | Vector4i32 () |
MAXON_ATTRIBUTE_FORCE_INLINE | Vector4i32 (Int32 i) |
MAXON_ATTRIBUTE_FORCE_INLINE | Vector4i32 (Int32 i0, Int32 i1, Int32 i2, Int32 i3) |
MAXON_ATTRIBUTE_FORCE_INLINE void | LoadUnaligned (const Int32 *p) |
MAXON_ATTRIBUTE_FORCE_INLINE void | LoadAligned (const Int32 *p) |
MAXON_ATTRIBUTE_FORCE_INLINE void | StoreUnaligned (Int32 *p) const |
MAXON_ATTRIBUTE_FORCE_INLINE void | StoreAligned (Int32 *p) const |
MAXON_ATTRIBUTE_FORCE_INLINE Int32 & | operator[] (UInt i) |
MAXON_ATTRIBUTE_FORCE_INLINE Int32 | operator[] (UInt i) const |
MAXON_ATTRIBUTE_FORCE_INLINE Vector4i32 & | operator+= (const Vector4i32 &a) |
Static Public Member Functions | |
template<Int32 imm> | |
static MAXON_ATTRIBUTE_FORCE_INLINE Vector4i32 | ShiftLeft (const Vector4i32 &a) |
template<Int32 ma4, Int32 ma3, Int32 ma2, Int32 ma1> | |
static MAXON_ATTRIBUTE_FORCE_INLINE Vector4i32 | Shuffle (const Vector4i32 &a) |
Protected Attributes | |
union { | |
Int32 v [4] | |
Int32 x | |
Int32 y | |
Int32 z | |
Int32 w | |
}; | |
Friends | |
Vector4f32 | CastToVector4f32 (const Vector4i32 &a) |
Vector4f32 | ConvertToVector4f32 (const Vector4i32 &a) |
Vector4i32 | CastToVector4i32 (const Vector4f32 &a) |
Vector4i32 | ConvertToVector4i32 (const Vector4f32 &a) |
MAXON_ATTRIBUTE_FORCE_INLINE friend Vector4i32 | operator+ (const Vector4i32 &a, const Vector4i32 &b) |
Constructs the object. It does not set a default value.
|
explicit |
Constructs the object and sets all values to i.
[in] | i | The value that is assigned to all vector elements. |
|
explicit |
Constructs the object and sets all values to i0...i3.
[in] | i0 | The value that is assigned to vector element 0. |
[in] | i1 | The value that is assigned to vector element 1. |
[in] | i2 | The value that is assigned to vector element 2. |
[in] | i3 | The value that is assigned to vector element 3. |
MAXON_ATTRIBUTE_FORCE_INLINE void LoadUnaligned | ( | const Int32 * | p | ) |
Loads a vector from an address in the memory.
[in] | p | The address where the vector is loaded from. |
MAXON_ATTRIBUTE_FORCE_INLINE void LoadAligned | ( | const Int32 * | p | ) |
Loads a vector from an address in the memory.
[in] | p | The address where the vector is loaded from, must be 16-byte aligned. |
MAXON_ATTRIBUTE_FORCE_INLINE void StoreUnaligned | ( | Int32 * | p | ) | const |
Stores the contents of this vector to an address in the memory.
[in] | p | The address where the vector is to be stored. |
MAXON_ATTRIBUTE_FORCE_INLINE void StoreAligned | ( | Int32 * | p | ) | const |
Stores the contents of this vector to an address in the memory.
[in] | p | The address where the vector is to be stored. It must be 16-byte aligned. |
MAXON_ATTRIBUTE_FORCE_INLINE Int32& operator[] | ( | UInt | i | ) |
Gets component i from the vector.
[in] | i | The index. |
MAXON_ATTRIBUTE_FORCE_INLINE Int32 operator[] | ( | UInt | i | ) | const |
Gets component i from the vector.
[in] | i | The index. |
MAXON_ATTRIBUTE_FORCE_INLINE Vector4i32& operator+= | ( | const Vector4i32 & | a | ) |
Adds a vector to this.
[in] | a | The vector to add. |
|
static |
Shifts the whole vector left. Note that the template argument must be a numeric constant. SSE2
[in] | a | Input vector. |
imm | Defines the number of bytes to shift left. |
|
static |
Shuffles the components of the input vector. Note that the template arguments must be numeric constants.
[in] | a | Input vector. |
ma1 | Decides which element of vector A becomes the new R0. |
ma2 | Decides which element of vector A becomes the new R1. |
ma3 | Decides which element of vector A becomes the new R2. |
ma4 | Decides which element of vector A becomes the new R3. |
|
friend |
Casts a Vector4i32 to a Vector4f32 vector.
|
friend |
Converts a Vector4i32 to a Vector4f32 vector.
|
friend |
Casts a Vector4f32 to a Vector4i32 vector.
|
friend |
Converts a Vector4f32 to a Vector4i32 vector.
|
friend |
Adds two vectors.
[in] | a | The first operand. |
[in] | b | The second operand. |
Int32 v[4] |
Int32 x |
Int32 y |
Int32 z |
Int32 w |
union { ... } |
The internal SSE vector.