Vector4i32 Class Reference

#include <sse_vector_4i32.h>

Detailed Description

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
 

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)
 

Constructor & Destructor Documentation

◆ Vector4i32() [1/3]

Constructs the object. It does not set a default value.

◆ Vector4i32() [2/3]

Constructs the object and sets all values to i.

Parameters
[in]iThe value that is assigned to all vector elements.

◆ Vector4i32() [3/3]

MAXON_ATTRIBUTE_FORCE_INLINE Vector4i32 ( Int32  i0,
Int32  i1,
Int32  i2,
Int32  i3 
)
explicit

Constructs the object and sets all values to i0...i3.

Parameters
[in]i0The value that is assigned to vector element 0.
[in]i1The value that is assigned to vector element 1.
[in]i2The value that is assigned to vector element 2.
[in]i3The value that is assigned to vector element 3.

Member Function Documentation

◆ LoadUnaligned()

MAXON_ATTRIBUTE_FORCE_INLINE void LoadUnaligned ( const Int32 p)

Loads a vector from an address in the memory.

Parameters
[in]pThe address where the vector is loaded from.

◆ LoadAligned()

MAXON_ATTRIBUTE_FORCE_INLINE void LoadAligned ( const Int32 p)

Loads a vector from an address in the memory.

Parameters
[in]pThe address where the vector is loaded from, must be 16-byte aligned.

◆ StoreUnaligned()

MAXON_ATTRIBUTE_FORCE_INLINE void StoreUnaligned ( Int32 p) const

Stores the contents of this vector to an address in the memory.

Parameters
[in]pThe address where the vector is to be stored.

◆ StoreAligned()

MAXON_ATTRIBUTE_FORCE_INLINE void StoreAligned ( Int32 p) const

Stores the contents of this vector to an address in the memory.

Parameters
[in]pThe address where the vector is to be stored. It must be 16-byte aligned.

Friends And Related Function Documentation

◆ CastToVector4f32

Vector4f32 CastToVector4f32 ( const Vector4i32 a)
friend

Casts a Vector4i32 to a Vector4f32 vector.

Returns
A Vector4f32 vector.

◆ ConvertToVector4f32

Vector4f32 ConvertToVector4f32 ( const Vector4i32 a)
friend

Converts a Vector4i32 to a Vector4f32 vector.

Returns
A Vector4f32 vector.

◆ CastToVector4i32

Vector4i32 CastToVector4i32 ( const Vector4f32 a)
friend

Casts a Vector4f32 to a Vector4i32 vector.

Returns
A Vector4i32 vector.

◆ ConvertToVector4i32

Vector4i32 ConvertToVector4i32 ( const Vector4f32 a)
friend

Converts a Vector4f32 to a Vector4i32 vector.

Returns
A Vector4i32 vector.

Member Data Documentation

◆ v

Int32 v[4]

◆ x

Int32 x

◆ y

Int32 y

◆ z

Int32 z

◆ w

Int32 w

◆ @1107

union { ... }

The internal SSE vector.