This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Landscape Tool
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

Unigine::Math::vec4 Struct

Header: #include <UnigineMathLibVec4.h>

This class represents a vector of 4 float components.

vec4 Class

Members


vec4 ( const __m128& 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 __m128& v - 128-bit variable

vec4 ( const quat& q ) #

Constructor. Initializes the vector using a given source quaternion.

Arguments

  • const quat& q

vec4 ( const hvec4& v ) #

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

Arguments

  • const hvec4& v - Source vector.

vec4 ( ) #

Default constructor. Produces a zero vector.

vec4 ( const vec4& v ) #

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

Arguments

  • const vec4& v - Source vector.

vec4 ( const vec2& v, float z, float w ) #

Constructor. Initializes the vector using a given two-component vec2 source vector and two scalars.

Arguments

  • const vec2& v - Two-component source vector.
  • float z - Z component of the vector.
  • float w - W component of the vector.

vec4 ( const vec3& v, float w ) #

Constructor. Initializes the vector using a given three-component vec3 source vector and a scalar.

Arguments

  • const vec3& v - Three-component source vector.
  • float w - W component of the vector.

vec4 ( float x, float y, float z, float w ) #

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.
  • float w - W component of the vector.

explicit vec4 ( float v ) #

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

Arguments

  • float v - Scalar value.

explicit vec4 ( const vec2& v ) #

Constructor. Initializes the vector using a given two-component vec2 source vector: x=v.x, y=v.y, z=0.0f, w=1.0f.

Arguments

  • const vec2& v - Two-component source vector.

explicit vec4 ( const vec3& v ) #

Constructor. Initializes the vector using a given three-component vec3 source vector: x=v.x, y=v.y, z=v.z, w=1.0f.

Arguments

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

explicit vec4 ( const dvec4& v ) #

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

Arguments

  • const dvec4& v - Source vector.

explicit vec4 ( const ivec4& v ) #

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

Arguments

  • const ivec4& v - Source vector.

explicit vec4 ( const bvec4& v ) #

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

Arguments

  • const bvec4& v - Source vector.

explicit vec4 ( const svec4& v ) #

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

Arguments

  • const svec4& v - Source vector.

explicit vec4 ( 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], w=v[3].

Arguments

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

vec4 ( const dvec2& v0, const dvec2& v1 ) #

Constructor. Initializes the vector using given two dvec2 source vectors.

Arguments

  • const dvec2& v0 - Two-component source vector.
  • const dvec2& v1 - Two-component source vector.

vec4 ( const vec2& v0, const vec2& v1 ) #

Constructor. Initializes the vector using given two vec2 source vectors.

Arguments

  • const vec2& v0 - Two-component source vector.
  • const vec2& v1 - Two-component source vector.

vec4 ( float x, float y, float z, float w, ConstexprTag ) #

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.
  • float w - W component of the vector.
  • ConstexprTag - Auxiliary tag.

vec4 ( float v, ConstexprTag ) #

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

Arguments

  • float v - Constant scalar value.
  • ConstexprTag - Auxiliary tag.

vec4 & abs ( ) #

Returns the absolute values of the vector components.

Return value

Vector with absolute values.

void set ( float x_, float y_, float z_, float w_ ) #

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.
  • float w_ - W component of the vector.

void set ( const float* v ) #

Sets the vector using the array of float elements: x=val[0], y=val[1], z=val[2], w=val[3].

Arguments

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

void set ( const vec4& v ) #

Sets the vector equal to the specified source vector.

Arguments

  • const vec4& v - Source vector.

void set ( const vec2& v, float z_, float w_ ) #

Sets the vector using a two-component vec2 source vector and two scalars.

Arguments

  • const vec2& v - Two-component source vector.
  • float z_ - Z component of the vector.
  • float w_ - W component of the vector.

void set ( const vec3& v, float w_ ) #

Sets the vector using a three-component vec3 source vector and a scalar.

Arguments

  • const vec3& v - Three-component source vector.
  • float w_ - W component of the vector.

void set ( const quat& q ) #

Sets the vector using a quaternion.

Arguments

  • const quat& q - Quaternion.

void set ( float v ) #

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

Arguments

  • float v - Scalar value.

void get ( float* v ) const#

Gets the vector: val[0]=x, val[1]=y, val[2]=z, val[3]=w.

Arguments

  • float* v - 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 ( ) const#

Returns the length of the vector.

Return value

Vector length.

float length2 ( ) const#

Returns the squared length of the vector.

Return value

Squared length of the vector.

float maxXY ( ) const#

Compares the X and Y components of the vector and returns the greater one.

Return value

The greater out of the X and Y components of the vector.

float maxXYZ ( ) const#

Compares the X, Y, and Z components of the vector and returns the greatest one.

Return value

The greatest out of the X, Y, and Z vector components.

float max ( ) const#

Compares all components of the vector and returns the greatest value.

Return value

The greatest out of the vector components.

vec4 & normalize ( ) #

Returns normalized vector.

Return value

Normalized vector.

vec4 & normalizeValid ( ) #

Normalizes a vector, makes its magnitude equal to 1. When normalized, a vector keeps the same direction but its length is equal to 1. Check for the zero vector is performed: if the argument is a zero vector, then a zero vector is returned.

Return value

Normalized vector.

vec4 & normalizeFast ( ) #

Returns normalized vector, calculated using the fast inverse square root algorithm.

Return value

Normalized vector.

vec4 & normalizeValidFast ( ) #

Returns normalized vector, calculated using the fast inverse square root algorithm. Check for the zero vector is performed: if the argument is a zero vector, then a zero vector is returned.

Return value

Normalized vector.

vec4 & normalize3 ( ) #

Returns the vector with normalized XYZ components.

Return value

Vector with normalized XYZ components.

vec4 & normalizeValid3 ( ) #

Returns the vector with normalized XYZ components. Check for the zero vector is performed: if the argument is a zero vector, then a zero vector is returned.

Return value

Vector with normalized XYZ components.

vec4 & normalizeFast3 ( ) #

Returns the vector with XYZ components normalized using the fast inverse square root algorithm.

Return value

Vector with normalized XYZ components.

vec4 & normalizeValidFast3 ( ) #

Returns the vector with XYZ components normalized using the fast inverse square root algorithm. Check for the zero vector is performed: if the argument is a zero vector, then a zero vector is returned.

Return value

Vector with normalized XYZ components.

const float * operator const float * ( ) const#

Performs type conversion to const float *.

const void * operator const void * ( ) const#

Performs type conversion to const void *.

float * operator float * ( ) #

Performs type conversion to float *.

void * operator void * ( ) #

Performs type conversion to void *.

vec4 & operator*= ( float v ) #

Performs scalar multiplication.

Arguments

  • float v - Scalar value.

Return value

Resulting vector.

vec4 & operator*= ( const vec4& v ) #

Performs vector multiplication.

Arguments

  • const vec4& v - Vector.

Return value

Resulting vector.

vec4 & operator+= ( const vec4& v ) #

Performs vector addition.

Arguments

  • const vec4& v - Vector.

Return value

Resulting vector.

vec4 operator- ( ) const#

Performs vector negation.

Return value

Resulting vector.

vec4 & operator-= ( const vec4& v ) #

Performs vector subtraction.

Arguments

  • const vec4& v - Vector.

Return value

Resulting vector.

vec4 & operator/= ( float v ) #

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

Arguments

  • float v - Scalar value.

Return value

Resulting vector.

Examples

Source code (UnigineScript)
vec4 a = vec4(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)	
*/

vec4 & operator/= ( const vec4& v ) #

Performs componentwise division of vectors.

Arguments

  • const vec4& v - Vector.

Return value

Resulting vector.

Examples

Source code (UnigineScript)
vec4 a, b;
a = vec4(6.0, 10.0, 12.0, 25.0);
b = vec4(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)	
*/

vec4 & operator= ( const __m128& v ) #

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 __m128& v - 128-bit variable.

Return value

Vector.

vec4 & operator= ( const vec4& v ) #

Performs vector assignment. Destination vector = Source vector.

Arguments

  • const vec4& v - Source vector.

Return value

Result.

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.

void mul ( float v ) #

Multiplies the vector by the value of the specified argument.

Arguments

  • float v - A float multiplier.

void mul ( const vec4& v ) #

Multiplies the vector by the value of the specified argument.

Arguments

  • const vec4& v - Vector multiplier.

void mul3 ( float v ) #

Multiplies the X, Y, and Z components of the vector by the value of the specified argument.

Arguments

  • float v - A float multiplier.

void div ( float v ) #

Returns the result of division of the vector by the value of the specified arguments.

Arguments

  • float v - A float divisor value.

void div ( const vec4& v ) #

Returns the result of division of the vector by the value of the specified arguments.

Arguments

  • const vec4& v - A vec3 divisor value.

float sum ( ) const#

Returns the sum of vector components.

void add ( float v ) #

Performs addition of the specified argument.

Arguments

  • float v - Value.

void add ( const vec4& v ) #

Performs addition of the specified argument.

Arguments

  • const vec4& v - Value.

vec4 & operator+= ( float v ) #

Performs addition of the specified value.

Arguments

  • float v - Value.

Return value

This vector.

void sub ( float v ) #

Subtracts the argument from all elements of the vector.

Arguments

  • float v - Value.

void sub ( const vec4& v ) #

Subtracts each element of the specified argument from ther corresponding element.

Arguments

  • const vec4& v - Value.

vec4 & operator-= ( float v ) #

Subtracts the argument from all elements of the vector.

Arguments

  • float v - Value.

Return value

This vector.

vec4 & operator= ( const float v ) #

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

Arguments

  • const float v - Scalar value.

Return value

This vector.

float lengthFast ( ) const#

Returns the length of the vector (fast version).

float iLength ( ) const#

Returns the inverted length of the vector.

float iLengthFast ( ) const#

Returns the inverted length of the vector (fast version).

static vec4 parseColor ( const char * str ) #

Converts a color string in the Web format (RRGGBB / #RRGGBB or RRGGBBAA / #RRGGBBAA) into its vec4 equivalent.

Arguments

  • const char * str - Color string in the Web format.

Return value

Color value as a vec4 vector (R, G, B, A).
Last update: 2022-02-04
Build: ()