Unigine::Unigine::dvec4 Struct
Header: | #include <UnigineMathLib.h> |
This class represents a vector of 4 double components.
dvec4 Class
Members
dvec4(const hvec4 & v)
Constructor. Initializes the vector using a given hvec4 source vector.Arguments
- const hvec4 & v - Source vector.
dvec4()
Default constructor. Produces a zero vector.dvec4(const dvec4 & v)
Constructor. Initializes the vector by copying a given source vector.Arguments
- const dvec4 & v - Source vector.
dvec4(const dvec2 & v, double z, double w)
Constructor. Initializes the vector using a given two-component dvec2 source vector and two scalars.Arguments
- const dvec2 & v - Two-component source vector.
- double z - Z component of the vector.
- double w - W component of the vector.
dvec4(const dvec3 & v, double w)
Constructor. Initializes the vector using a given three-component dvec3 source vector and a scalar.Arguments
- const dvec3 & v - Three-component source vector.
- double w - W component of the vector.
dvec4(double x, double y, double z, double w)
Constructor. Initializes the vector using given double values.Arguments
- double x - X component of the vector.
- double y - Y component of the vector.
- double z - Z component of the vector.
- double w - W component of the vector.
Examples
dvec4(1.0, 2.0, 3.0, 4.5);
/*
Creates a vector (1.0, 2.0, 3.0, 4.5)
*/
explicit dvec4(double v)
Constructor. Initializes the vector using a given scalar value: x=v, y=v, z=v, w=v.Arguments
- double v - Scalar value.
explicit dvec4(const dvec2 & v)
Constructor. Initializes the vector using a given two-component dvec2 source vector: x=v.x, y=v.y, z=0.0f, w=1.0f.Arguments
- const dvec2 & v - Two-component source vector.
explicit dvec4(const dvec3 & v)
Constructor. Initializes the vector using a given three-component dvec3 source vector: x=v.x, y=v.y, z=v.z, w=1.0f.Arguments
- const dvec3 & v - Three-component source vector.
explicit dvec4(const vec4 & v)
Constructor. Initializes the vector using a given vec4 source vector.Arguments
- const vec4 & v - Source vector.
explicit dvec4(const ivec4 & v)
Constructor. Initializes the vector using a given ivec4 source vector.Arguments
- const ivec4 & v - Source vector.
explicit dvec4(const bvec4 & v)
Constructor. Initializes the vector using a given bvec4 source vector.Arguments
- const bvec4 & v - Source vector.
explicit dvec4(const double * v)
Constructor. Initializes the vector using a given pointer to the array of double elements: x=v[0], y=v[1], z=v[2], w=v[3].Arguments
- const double * v - Pointer to the array of double elements.
void set(double x_, double y_, double z_, double w_)
Sets the vector by components.Arguments
- double x_ - X component of the vector.
- double y_ - Y component of the vector.
- double z_ - Z component of the vector.
- double w_ - W component of the vector.
void set(const double * val)
Sets the vector using the array of double elements: x=val[0], y=val[1], z=val[2], w=val[3].Arguments
- const double * val - Pointer to the array of double elements.
void set(const dvec4 & val)
Sets the vector equal to the specified source vector.Arguments
- const dvec4 & val - Source vector.
void set(const dvec3 & val, double w_)
Sets the vector using a three-component dvec3 source vector and a scalar.Arguments
- const dvec3 & val - Three-component source vector.
- double w_ - W component of the vector.
void set(double val)
Sets the vector components equal to specified scalar value: x=val, y=val, z=val, w=val.Arguments
- double val - Scalar value.
void set(const dvec2 & val, double z_, double w_)
Sets the vector using a two-component dvec2 source vector and two scalars.Arguments
- const dvec2 & val - Two-component source vector.
- double z_ - Z component of the vector.
- double w_ - W component of the vector.
void get(double * val) const
Gets the vector: val[0]=x, val[1]=y, val[2]=z, val[3]=w.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.double length()
Returns the length of the vector.Return value
Vector length.double length2()
Returns the squared length of the vector.Return value
Squared length of the vector.dvec4 & normalize()
Returns normalized vector.Return value
Normalized vector.dvec4 & normalize3()
Returns the vector with normalized XYZ components.Return value
Vector with normalized XYZ components.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 *.dvec4 & operator*=(double val)
Performs scalar multiplication.Arguments
- double val - Scalar value.
Return value
Resulting vector.dvec4 & operator*=(const dvec4 & val)
Performs vector multiplication.Arguments
- const dvec4 & val - Vector.
Return value
Resulting vector.dvec4 & operator+=(const dvec4 & val)
Performs vector addition.Arguments
- const dvec4 & val - Vector.
Return value
Resulting vector.dvec4 operator-() const
Performs vector negation.Return value
Resulting vector.dvec4 & operator-=(const dvec4 & val)
Performs vector subtraction.Arguments
- const dvec4 & val - Vector.
Return value
Resulting vector.dvec4 & operator/=(const dvec4 & val)
Performs componentwise division of vectors.Arguments
- const dvec4 & val - Vector.
Return value
Resulting vector.Examples
dvec4 a, b;
a = dvec4(6.0, 10.0, 12.0, 25.0);
b = dvec4(2.0, 5.0, 6.0, 5.0);
a /= b;
/*
Initial values of vectors a and b:
a (6.0, 10.0, 12.0, 25.0)
b (2.0, 5.0, 6.0, 5.0)
a /= b;
Vector a after operation:
a (3.0, 2.0, 2.0, 5.0)
*/
dvec4 & 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
dvec4 a = dvec4(6.0, 10.0, 12.0, 25.0);
a /= 2.0;
/*
Initial value of vector a:
a (6.0, 10.0, 12.0, 25.0)
a /= 2.0;
Vector a after operation:
a (3.0, 5.0, 6.0, 12.5)
*/
dvec4 & operator=(const dvec4 & val)
Performs vector assignment. Destination vector = Source vector.Arguments
- const dvec4 & val - Source vector.
Return value
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.double operator[](int i) const
Performs array access to the vector item by using given item index.Arguments
- int i - Vector item index.
Return value
Vector item.void sse(const __m128d & v0, const __m128d & v1)
Sets the vector using two given 128-bit variables as a source.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128d & v0 - 128-bit variable containing the first two double components (X, Y) of the vector.
- const __m128d & v1 - 128-bit variable containing the second two double components (Z, W) of the vector.
__m128d sse0()
Returns the values of the first two double components (X, Y) of the vector as a 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Return value
128-bit variable containing the first two double components (X, Y) of the vector.void sse0(const __m128d & val)
Sets the values of the first two double components (X, Y) of the vector using a given 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128d & val - 128-bit variable containing the first two double components (X, Y) of the vector.
void sse1(const __m128d & val)
Sets the values of the second two double components (Z, W) of the vector using a given 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128d & val - 128-bit variable containing the second two double components (Z, W) of the vector.
__m128d sse1()
Returns the values of the second two double components (Z, W) of the vector as a 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Return value
128-bit variable containing the second two double components (Z, W) of the vector.dvec4 EPS
Description
Vector, filled with epsilon constant (1e-6f).dvec4 INF
Description
Vector, filled with infinity constant (1e+9f).dvec4 ONE
Description
Vector, filled with ones (1).dvec4 ZERO
Description
Vector, filled with zeros (0).Last update: 2017-10-20
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)