Vector2f64 Class Reference

#include <sse_vector_2f64.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 R0 R1

Public Types

using ValueType = Float64
 

Public Member Functions

 Vector2f64 ()=default
 
MAXON_ATTRIBUTE_FORCE_INLINE Vector2f64 (Float64 d0, Float64 d1)
 
MAXON_ATTRIBUTE_FORCE_INLINE Vector2f64 (const Float64 *p, Bool aligned)
 
MAXON_ATTRIBUTE_FORCE_INLINE void LoadUnaligned (const Float64 *p)
 
MAXON_ATTRIBUTE_FORCE_INLINE void LoadAligned (const Float64 *p)
 

Protected Attributes

union {
   Float64   v [2]
 
}; 
 

Friends

Vector4f32 ConvertToVector4f32 (const Vector2f64 &a, const Vector2f64 &b)
 
Vector4f32 ConvertToVector4f32 (const Vector2f64 &a)
 
void ConvertToVectors2f64 (const Vector4f32 &a, Vector2f64 &result1, Vector2f64 &result2)
 

Member Typedef Documentation

◆ ValueType

using ValueType = Float64

Constructor & Destructor Documentation

◆ Vector2f64() [1/3]

Vector2f64 ( )
default

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

◆ Vector2f64() [2/3]

Constructs the object and sets all values to f0...f3.

Parameters
[in]d0The value that is assigned to vector element 0.
[in]d1The value that is assigned to vector element 1.

◆ Vector2f64() [3/3]

MAXON_ATTRIBUTE_FORCE_INLINE Vector2f64 ( const Float64 p,
Bool  aligned 
)
explicit

Constructs a vector from an address in the memory.

Parameters
[in]pThe address where the vector is loaded from.
[in]alignedShould be set to true, if #p is known to be 16-byte aligned.

Member Function Documentation

◆ LoadUnaligned()

MAXON_ATTRIBUTE_FORCE_INLINE void LoadUnaligned ( const Float64 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 Float64 p)

Loads a vector from an address in the memory.

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

Friends And Related Function Documentation

◆ ConvertToVector4f32 [1/2]

Vector4f32 ConvertToVector4f32 ( const Vector2f64 a,
const Vector2f64 b 
)
friend

Converts two Vector2f64 to a Vector4f32 vector.

Returns
A Vector4f32 vector.

◆ ConvertToVector4f32 [2/2]

Vector4f32 ConvertToVector4f32 ( const Vector2f64 a)
friend

Converts one Vector2f64 to a Vector4f32 vector.

Returns
A Vector4f32 vector. The two lower values are the converted members from the source vector, the two upper values are zero.

◆ ConvertToVectors2f64

void ConvertToVectors2f64 ( const Vector4f32 a,
Vector2f64 result1,
Vector2f64 result2 
)
friend

Member Data Documentation

◆ v

Float64 v[2]

◆ @1103

union { ... }