Unigine::Unigine::dvec2 Struct

This class represents a vector of 2 double components.

dvec2(const __m128d & v)

Constructor. Initializes the vector using a given 128-bit variable as a source.
Notice
We do not recommend to use this method unless you have a clear understanding of SSE2.

Arguments

• const __m128d & v - 128-bit variable.

dvec2(const hvec2 & v)

Constructor. Initializes the vector using a given hvec2 source vector.

Arguments

• const hvec2 & v - Source vector.

dvec2()

Default constructor. Produces a zero vector.

dvec2(const dvec2 & v)

Constructor. Initializes the vector by copying a given source vector.

Arguments

• const dvec2 & v - Source vector.

dvec2(double x, double y)

Constructor. Initializes the vector using given double values.

Arguments

• double x - X component of the vector.
• double y - Y component of the vector.

Examples

Source code (UnigineScript)
``````dvec2(2.0, 3.0);
/*
Creates a vector (2.0, 3.0)
*/``````

explicit dvec2(double v)

Constructor. Initializes the vector using a given scalar value: x=v, y=v.

Arguments

• double v - Scalar value.

Examples

Source code (UnigineScript)
``````dvec2(1.0);
/*
Creates a vector (1.0, 1.0)
*/``````

explicit dvec2(const dvec3 & v)

Constructor. Initializes the vector using a given three-component vec3 vector: x=v.x, y=v.y.

Arguments

• const dvec3 & v - Three-component source vector.

explicit dvec2(const dvec4 & v)

Constructor. Initializes the vector using a given four-component vec4 source vector: x=v.x, y=v.y.

Arguments

• const dvec4 & v - Four-component source vector.

explicit dvec2(const vec2 & v)

Constructor. Initializes the vector using a given vec2 source vector.

Arguments

• const vec2 & v - Source vector.

explicit dvec2(const ivec2 & v)

Constructor. Initializes the vector using a given ivec2 source vector.

Arguments

• const ivec2 & v - Source vector.

explicit dvec2(const double * v)

Constructor. Initializes the vector using a given pointer to the array of double elements: x=v[0], y=v[1].

Arguments

• const double * v - Pointer to the array of double elements.

voidset(double x_, double y_)

Sets the vector by components.

Arguments

• double x_ - X component of the vector.
• double y_ - Y component of the vector.

voidset(const double * val)

Sets the vector using the array of double elements: x=val[0], y=val[1].

Arguments

• const double * val - Pointer to the array of double elements.

voidset(double val)

Sets the vector components equal to specified scalar value: x=val, y=val.

Arguments

• double val - Scalar value.

voidset(const dvec2 & val)

Sets the vector equal to the specified source vector.

Arguments

• const dvec2 & val - Source vector.

voidget(double * val) const

Gets the vector: val[0]=x, val[1]=y.

Arguments

• double * val - Pointer to the array of double elements.

double *get()

Returns the pointer to the vector.

Return value

Pointer to the vector.

const double *get() const

Returns the constant pointer to the vector.

Return value

Pointer to the vector.

doublelength()

Returns the length of the vector.

Vector length.

doublelength2()

Returns the squared length of the vector.

Return value

Squared length of the vector.

dvec2 &normalize()

Returns normalized vector.

Return value

Normalized vector.

__m128doperator __m128d()

Performs type conversion to __m128d.
Notice
We do not recommend to use this method unless you have a clear understanding of SSE2.

const double *operator const double *()

Performs type conversion to const double *.

const void *operator const void *()

Performs type conversion to const void *.

double *operator double *()

Performs type conversion to double *.

void *operator void *()

Performs type conversion to void *.

dvec2 &operator*=(double val)

Performs scalar multiplication.

Arguments

• double val - Scalar value.

Return value

Resulting vector.

dvec2 &operator*=(const dvec2 & val)

Performs vector multiplication.

Arguments

• const dvec2 & val - Vector.

Return value

Resulting vector.

dvec2 &operator+=(const dvec2 & val)

Arguments

• const dvec2 & val - Vector.

Return value

Resulting vector.

dvec2operator-() const

Performs vector negation.

Return value

Resulting vector.

dvec2 &operator-=(const dvec2 & val)

Performs vector subtraction.

Arguments

• const dvec2 & val - Vector.

Return value

Resulting vector.

dvec2 &operator/=(double val)

Performs componentwise division of the vector by the scalar. Implemented using the calculation of inverse scalar value with subsequent by-component multiplication.

Arguments

• double val - Scalar value.

Return value

Resulting vector.

Examples

Source code (UnigineScript)
``````dvec2 a = dvec2(6.0, 10.0);
a /= 2.0;
/*
Initial value of vector a:
a (6.0, 10.0)

a /= 2.0;
Vector a after operation:
a (3.0, 5.0)
*/``````

dvec2 &operator/=(const dvec2 & val)

Performs componentwise division of vectors.

Arguments

• const dvec2 & val - Vector.

Return value

Resulting vector.

Examples

Source code (UnigineScript)
``````dvec2 a, b;
a = dvec2(6.0, 10.0);
b = dvec2(2.0, 5.0);
a /= b;
/*
Initial values of vectors a and b:
a (6.0, 10.0)
b (2.0, 5.0)

a /= b;
Vector a after operation:
a (3.0, 2.0)
*/``````

dvec2 &operator=(const __m128d & val)

Sets the vector using a given 128-bit variable as a source.
Notice
We do not recommend to use this method unless you have a clear understanding of SSE2.

Arguments

• const __m128d & val - 128-bit variable.

Vector.

dvec2 &operator=(const dvec2 & val)

Performs vector assignment. Destination vector = Source vector.

Arguments

• const dvec2 & val - Source vector.

Result.

double &operator[](int i)

Performs array access to the vector item reference by using given item index.

Arguments

• int i - Vector item index.

Return value

Vector item reference.

doubleoperator[](int i) const

Performs array access to the vector item by using given item index.

Arguments

• int i - Vector item index.

Vector item.

voidsse(const __m128d & val)

Sets the vector using a given 128-bit variable as a source.
Notice
We do not recommend to use this method unless you have a clear understanding of SSE2.

Arguments

• const __m128d & val - 128-bit variable.

__m128dsse()

Returns vector components as a 128-bit variable.
Notice
We do not recommend to use this method unless you have a clear understanding of SSE2.

Return value

128-bit variable.

dvec2 EPS

Description

Vector, filled with epsilon constant (1e-6f).

dvec2 INF

Description

Vector, filled with infinity constant (1e+9f).

dvec2 ONE

Description

Vector, filled with ones (1).

dvec2 ZERO

Description

Vector, filled with zeros (0).
Last update: 10.08.2018