Unigine::Unigine::vec3 Struct
Header: | #include <UnigineMathLib.h> |
This class represents a vector of 3 float components.
vec3 Class
Members
vec3(const __m128 & v)
Constructor. Initializes the vector using a given 128-bit variable as a source.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & v - 128-bit variable
vec3(const hvec3 & v)
Constructor. Initializes the vector using a given hvec3 source vector.Arguments
- const hvec3 & v - Source vector.
vec3()
Default constructor. Produces a zero vector.vec3(const vec3 & v)
Constructor. Initializes the vector by copying a given source vector.Arguments
- const vec3 & v - Source vector.
vec3(const vec2 & v, float z)
Constructor. Initializes the vector using a given two-component vec2 source vector and a scalar.Arguments
- const vec2 & v - Two-component vector.
- float z - Z component of the vector.
vec3(float x, float y, float z)
Constructor. Initializes the vector using given float values.Arguments
- float x - X component of the vector.
- float y - Y component of the vector.
- float z - Z component of the vector.
explicit vec3(float v)
Constructor. Initializes the vector using a given scalar value: x=v, y=v, z=v.Arguments
- float v - Scalar value.
Examples
vec3(1.0);
/*
Creates a vector (1.0, 1.0, 1.0)
*/
explicit vec3(const vec2 & v)
Constructor. Initializes the vector using a given vec2 source vector: x=v.x, y=v.y, z=0.0f.Arguments
- const vec2 & v - Two-component source vector.
explicit vec3(const vec4 & v)
Constructor. Initializes the vector using a given four-component vec4 source vector: x=v.x, y=v.y, z=v.z.Arguments
- const vec4 & v - Four-component source vector.
explicit vec3(const dvec3 & v)
Constructor. Initializes the vector using a given dvec3 source vector.Arguments
- const dvec3 & v - Source vector.
explicit vec3(const ivec3 & v)
Constructor. Initializes the vector using a given ivec3 source vector .Arguments
- const ivec3 & v - Source vector.
explicit vec3(const float * v)
Constructor. Initializes the vector using a given pointer to the array of float elements: x=v[0], y=v[1], z=v[2].Arguments
- const float * v - Pointer to the array of float elements.
void set(float x_, float y_, float z_)
Sets the vector by components.Arguments
- float x_ - X component of the vector.
- float y_ - Y component of the vector.
- float z_ - Z component of the vector.
void set(const float * val)
Sets the vector using the array of float elements: x=val[0], y=val[1], z=val[2].Arguments
- const float * val - Pointer to the array of float elements.
void set(const vec4 & v)
Sets the vector using a vec4 source vector: x=v.x, y=v.y, z=v.z.Arguments
- const vec4 & v - Source vector.
void set(const vec2 & val, float z_)
Sets the vector using a two-component vec2 source vector and a scalar.Arguments
- const vec2 & val - Two-component source vector.
- float z_ - Scalar.
void set(const vec3 & val)
Sets the vector equal to the specified source vector.Arguments
- const vec3 & val - Source vector.
void set(float val)
Sets the vector components equal to specified scalar value: x=val, y=val, z=val.Arguments
- float val - Scalar.
void get(float * val) const
Gets the vector: val[0]=x, val[1]=y, val[2]=z.Arguments
- float * val - Pointer to the array of float elements.
float * get()
Returns the pointer to the vector.Return value
Pointer to the vector.const float * get() const
Returns the constant pointer to the vector.Return value
Pointer to the vector.float length()
Returns the length of the vector.Return value
Vector length.float length2()
Returns the squared length of the vector.Return value
Squared length of the vector.vec3 & normalize()
Returns normalized vector.Return value
Normalized vector.vec3 & normalizeFast()
Returns normalized vector, calculated using the fast inverse square root algorithm.Return value
Normalized vector.__m128 operator __m128()
Performs type conversion to __m128.We do not recommend to use this method unless you have a clear understanding of SSE2.
const float * operator const float *()
Performs type conversion to const float *.const void * operator const void *()
Performs type conversion to const void *.float * operator float *()
Performs type conversion to float *.void * operator void *()
Performs type conversion to void *.vec3 & operator*=(float val)
Performs scalar multiplication.Arguments
- float val - Scalar value.
Return value
Resulting vector.vec3 & operator*=(const vec3 & val)
Performs vector multiplication.Arguments
- const vec3 & val - Vector.
Return value
Resulting vector.vec3 & operator+=(const vec3 & val)
Performs vector addition.Arguments
- const vec3 & val - Vector.
Return value
Resulting vector.vec3 operator-() const
Performs vector negation.Return value
Resulting vector.vec3 & operator-=(const vec3 & val)
Performs vector subtraction.Arguments
- const vec3 & val - Vector.
Return value
Resulting vector.vec3 & operator/=(const vec3 & val)
Performs componentwise division of vectors.Arguments
- const vec3 & val - Vector.
Return value
Resulting vector.Examples
vec3 a, b;
a = vec3(6.0, 10.0, 12.0);
b = vec3(2.0, 5.0, 6.0);
a /= b;
/*
Initial values of vectors a and b:
a (6.0, 10.0, 12.0)
b (2.0, 5.0, 6.0)
a /= b;
Vector a after operation:
a (3.0, 2.0, 2.0)
*/
vec3 & operator/=(float val)
Performs componentwise division of the vector by the scalar. Implemented using the calculation of inverse scalar value with subsequent by-component multiplication.Arguments
- float val - Scalar value.
Return value
Resulting vector.Examples
vec3 a = vec3(6.0, 10.0, 12.0);
a /= 2.0;
/*
Initial value of vector a:
a (6.0, 10.0, 12.0)
a /= 2.0;
Vector a after operation:
a (3.0, 5.0, 6.0)
*/
vec3 & operator=(const vec3 & val)
Performs vector assignment. Destination vector = Source vector.Arguments
- const vec3 & val - Source vector.
Return value
Result.vec3 & operator=(const __m128 & val)
Sets the vector using a given 128-bit variable as a source.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & val - 128-bit variable.
Return value
Vector.float & 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.float 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.__m128 sse()
Returns vector components 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.void sse(const __m128 & val)
Sets the vector using a given 128-bit variable as a source.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & val - 128-bit variable.
vec3 BACK
Description
Vector (0.0, 1.0, 0.0).vec3 DOWN
Description
Vector (0.0, 0.0, -1.0).vec3 EPS
Description
Vector, filled with epsilon constant (1e-6f).vec3 FORWARD
Description
Vector (0.0, -1.0, 0.0).vec3 INF
Description
Vector, filled with infinity constant (1e+9f).vec3 LEFT
Description
Vector (1.0, 0.0, 0.0).vec3 ONE
Description
Vector, filled with ones (1).vec3 RIGHT
Description
Vector (-1.0, 0.0, 0.0).vec3 UP
Description
Vector (0.0, 0.0, 1.0).vec3 ZERO
Description
Vector, filled with zeros (0).Last update: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)