This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
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
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Math Common Functions

Header: #include <UnigineMathLib.h>

This class represents a collection of common math functions.

Notice
Math common functions are the members of the Unigine::Math namespace.

Math Class

Перечисления (Enums)

AXIS#

ИмяОписание
AXIS_X = = 0Positive X axis.
AXIS_Y = = 1Positive Y axis.
AXIS_Z = = 2Positive Z axis.
AXIS_NX = = 3Negative X axis.
AXIS_NY = = 4Negative Y axis.
AXIS_NZ = = 5Negative Z axis.

Members


float abs ( float v ) #

Returns the absolute value of the argument.

Arguments

  • float v - Float value.

Return value

Absolute value.

double abs ( double v ) #

Returns the absolute value of the argument.

Arguments

  • double v - Value.

Return value

Absolute value.

int abs ( int v ) #

Returns the absolute value of the argument.

Arguments

  • int v - Value.

Return value

Absolute value.

long long abs ( long long v ) #

Returns the absolute value of the argument.

Arguments

  • long long v - Value.

Return value

Absolute value.

vec2 abs ( vec2 v ) #

Returns the absolute values of the vector components.

Arguments

  • vec2 v - Source vector.

Return value

Vector with absolute values.

vec3 abs ( vec3 v ) #

Returns the absolute values of the vector components.

Arguments

  • vec3 v - Source vector.

Return value

Vector with absolute values.

vec4 abs ( vec4 v ) #

Returns the absolute values of the vector components.

Arguments

  • vec4 v - Source vector.

Return value

Vector with absolute values.

dvec2 abs ( dvec2 v ) #

Returns the absolute values of the vector components.

Arguments

Return value

Vector with absolute values.

dvec3 abs ( dvec3 v ) #

Returns the absolute values of the vector components.

Arguments

Return value

Vector with absolute values.

dvec4 abs ( dvec4 v ) #

Returns the absolute values of the vector components.

Arguments

Return value

Vector with absolute values.

ivec2 abs ( ivec2 v ) #

Returns the absolute values of the vector components.

Arguments

Return value

Vector with absolute values.

ivec3 abs ( ivec3 v ) #

Returns the absolute values of the vector components.

Arguments

Return value

Vector with absolute values.

ivec4 abs ( ivec4 v ) #

Returns the absolute values of the vector components.

Arguments

Return value

Vector with absolute values.

float * add3 ( float *UNIGINE_RESTRICT ret, const float *UNIGINE_RESTRICT v0, const float *UNIGINE_RESTRICT v1 ) #

Returns the result of a componentwise addition of three components of vectors by storing it in the array.

Arguments

  • float *UNIGINE_RESTRICT ret - Array to store the return value.
  • const float *UNIGINE_RESTRICT v0 - Pointer to vector.
  • const float *UNIGINE_RESTRICT v1 - Pointer to vector.

Return value

Pointer to the array that stores the return value.

float bezier ( const float * times, const float * values, float time ) #

Calculates the value of a cubic Bezier function for t = time.

A cubic Bezier curve is represented by 4 points. Po is the start point, P1 and P2 are control points 1 and 2 and P3 is the end point. The start and end point denote the beginning and end points of the path and the control points determine how the path moves from the start to the finish. As can be seen from the image, the only variable changing is t which determines how far the path has progressed from P0 to P3. Cubic Bezier curves are used as timing functions particularly for keyframe interpolation.

Arguments

  • const float * times - Coordinates of the four points of the curve along the horizontal T (times) axis in the range [0.0f, 1.0f].
  • const float * values - Coordinates of the four points of the curve along the vertical V (values) axis in the range [0.0f, 1.0f].
  • float time - Time in the range [0, 1], for which the value of the Bezier function is to be calculated.

Return value

Value of the Bezier function.

double bezier ( const float * times, const double * values, float time ) #

Calculates the value of a cubic Bezier function for t = time.

A cubic Bezier curve is represented by 4 points. Po is the start point, P1 and P2 are control points 1 and 2 and P3 is the end point. The start and end point denote the beginning and end points of the path and the control points determine how the path moves from the start to the finish. As can be seen from the image, the only variable changing is t which determines how far the path has progressed from P0 to P3. Cubic Bezier curves are used as timing functions particularly for keyframe interpolation.

Arguments

  • const float * times - Coordinates of the four points of the curve along the horizontal T (times) axis in the range [0.0f, 1.0f].
  • const double * values - Coordinates of the four points of the curve along the vertical V (values) axis in the range [0.0f, 1.0f].
  • float time - Time in the range [0, 1], for which the value of the Bezier function is to be calculated.

Return value

Value of the Bezier function.

vec4 blueNoise ( int x, int y ) #

Returns a blue noise value for the given pixel coordinates.

Arguments

  • int x - X coordinate of the pixel.
  • int y - Y coordinate of the pixel.

Return value

Blue noise value.

float ceil ( float v ) #

Ceiling function that returns the smallest integer value that is not less than the argument.
Source code
float a = ceil(3.141593); // a = 4.0

Arguments

  • float v - Argument.

Return value

Smallest integer value not less than v.

double ceil ( double v ) #

Ceiling function that returns the smallest integer value that is not less than the argument.
Source code
double a = ceil(3.141593); // a = 4.0

Arguments

  • double v - Argument.

Return value

Smallest integer value not less than v.

const vec2 & ceil ( const vec2 & v ) #

Ceiling function that returns the vector storing the smallest integer values that are not less than the argument.

Arguments

  • const vec2 & v - Vector storing values.

Return value

Vector storing the smallest integer values not less than v.

const vec3 & ceil ( const vec3 & v ) #

Ceiling function that returns the vector storing the smallest integer values that are not less than the argument.

Arguments

  • const vec3 & v - Vector storing values.

Return value

Vector storing the smallest integer values not less than v.

const vec4 & ceil ( const vec4 & v ) #

Ceiling function that returns the vector storing the smallest integer values that are not less than the argument.

Arguments

  • const vec4 & v - Vector storing values.

Return value

Vector storing the smallest integer values not less than v.

const dvec2 & ceil ( const dvec2 & v ) #

Ceiling function that returns the vector storing the smallest integer values that are not less than the argument.

Arguments

  • const dvec2 & v - Vector storing values.

Return value

Vector storing the smallest integer values not less than v.

const dvec3 & ceil ( const dvec3 & v ) #

Ceiling function that returns the vector storing the smallest integer values that are not less than the argument.

Arguments

  • const dvec3 & v - Vector storing values.

Return value

Vector storing the smallest integer values not less than v.

const dvec4 & ceil ( const dvec4 & v ) #

Ceiling function that returns the vector storing the smallest integer values that are not less than the argument.

Arguments

  • const dvec4 & v - Vector storing values.

Return value

Vector storing the smallest integer values not less than v.

int ceilInt ( float v ) #

Returns the smallest value that's greater than or equal to the argument, stored as an integer.

Arguments

  • float v - Value.

Return value

Resulting int value.

int ceilInt ( double v ) #

Returns the smallest value that's greater than or equal to the argument, stored as an integer.

Arguments

  • double v - Value.

Return value

Resulting int value.

double changeRange ( double value, const dvec4 & range ) #

Transforms the value from the source range to the corresponding value within target range.

Arguments

  • double value - The value within the source range.
  • const dvec4 & range - The vector containing 4 values: values X and Y define the source range, values Z and W define the target range.

Return value

The value within the target range.

bool checkMask ( const int mask, const int bits ) #

Checks if any of the bits specified in bits are set in mask.

Arguments

  • const int mask - Bit mask to be checked.
  • const int bits - Bits in the mask to be checked.

Return value

true if there is at least one bit that is specified in both mask and bits, otherwise false.

bool checkMask ( const unsigned int mask, const unsigned int bits ) #

Checks if any of the bits specified in bits are set in mask.

Arguments

  • const unsigned int mask - Bit mask to be checked.
  • const unsigned int bits - Bits in the mask to be checked.

Return value

true if there is at least one bit that is specified in both mask and bits, otherwise false.

bool checkMask ( const unsigned int mask, const int bits ) #

Checks if any of the bits specified in bits are set in mask.

Arguments

  • const unsigned int mask - Bit mask to be checked.
  • const int bits - Bits in the mask to be checked.

Return value

true if there is at least one bit that is specified in both mask and bits, otherwise false.

bool checkMask ( const int mask, const unsigned int bits ) #

Checks if any of the bits specified in bits are set in mask.

Arguments

  • const int mask - Bit mask to be checked.
  • const unsigned int bits - Bits in the mask to be checked.

Return value

true if there is at least one bit that is specified in both mask and bits, otherwise false.

bool checkRange ( float value, float range_min, float range_max ) #

Checks if the input value is within the specified range.

Arguments

  • float value - Input value.
  • float range_min - Minimum value of the range.
  • float range_max - Maximum value of the range.

Return value

true if the value is within the range, otherwise — false.

bool checkRange ( double value, double range_min, double range_max ) #

Checks if the input value is within the specified range.

Arguments

  • double value - Input value.
  • double range_min - Minimum value of the range.
  • double range_max - Maximum value of the range.

Return value

true if the value is within the range, otherwise — false.

bool checkRange ( int value, int range_min, int range_max ) #

Checks if the input value is within the specified range.

Arguments

  • int value - Input value.
  • int range_min - Minimum value of the range.
  • int range_max - Maximum value of the range.

Return value

true if the value is within the range, otherwise — false.

bool checkRange ( long long value, long long range_min, long long range_max ) #

Checks if the input value is within the specified range.

Arguments

  • long long value - Input value.
  • long long range_min - Minimum value of the range.
  • long long range_max - Maximum value of the range.

Return value

true if the value is within the range, otherwise — false.

bool checkRange ( short value, short range_min, short range_max ) #

Checks if the input value is within the specified range.

Arguments

  • short value - Input value.
  • short range_min - Minimum value of the range.
  • short range_max - Maximum value of the range.

Return value

true if the value is within the range, otherwise — false.

bool checkRange ( char value, char range_min, char range_max ) #

Checks if the input value is within the specified range.

Arguments

  • char value - Input value.
  • char range_min - Minimum value of the range.
  • char range_max - Maximum value of the range.

Return value

true if the value is within the range, otherwise — false.

double clamp ( double v, double v0, double v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • double v - Value to be clamped.
  • double v0 - Minimum value.
  • double v1 - Maximum value.

Return value

Clamped value.

float clamp ( float v, float v0, float v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • float v - Value to be clamped.
  • float v0 - Minimum value.
  • float v1 - Maximum value.

Return value

Clamped value.

int clamp ( int v, int v0, int v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • int v - Value to be clamped.
  • int v0 - Minimum value.
  • int v1 - Maximum value.

Return value

Clamped value.

char clamp ( char v, char v0, char v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • char v - Value to be clamped.
  • char v0 - Minimum value.
  • char v1 - Maximum value.

Return value

Clamped value.

long long clamp ( long long v, long long v0, long long v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • long long v - Value to be clamped.
  • long long v0 - Minimum value.
  • long long v1 - Maximum value.

Return value

Clamped value.

dvec2 clamp ( const dvec2 & v, const dvec2 & v0, const dvec2 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const dvec2 & v - Value to be clamped.
  • const dvec2 & v0 - Minimum value.
  • const dvec2 & v1 - Maximum value.

Return value

Clamped value.

ivec2 clamp ( const ivec2 & v, const ivec2 & v0, const ivec2 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const ivec2 & v - The value.
  • const ivec2 & v0 - Minimum value.
  • const ivec2 & v1 - Maximum value.

Return value

Clamped value.

vec2 clamp ( const vec2 & v, const vec2 & v0, const vec2 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const vec2 & v - Value to be clamped.
  • const vec2 & v0 - Minimum value.
  • const vec2 & v1 - Maximum value.

Return value

Clamped value.

dvec3 clamp ( const dvec3 & v, const dvec3 & v0, const dvec3 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const dvec3 & v - Value to be clamped.
  • const dvec3 & v0 - Minimum value.
  • const dvec3 & v1 - Maximum value.

Return value

Clamped value.

ivec3 clamp ( const ivec3 & v, const ivec3 & v0, const ivec3 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const ivec3 & v - Value to be clamped.
  • const ivec3 & v0 - Minimum value.
  • const ivec3 & v1 - Maximum value.

Return value

Clamped value.

vec3 clamp ( const vec3 & v, const vec3 & v0, const vec3 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const vec3 & v - Value to be clamped.
  • const vec3 & v0 - Minimum value.
  • const vec3 & v1 - Maximum value.

Return value

Clamped value.

bvec4 clamp ( const bvec4 & v, const bvec4 & v0, const bvec4 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const bvec4 & v - Value to be clamped.
  • const bvec4 & v0 - Minimum value.
  • const bvec4 & v1 - Maximum value.

Return value

Clamped value.

dvec4 clamp ( const dvec4 & v, const dvec4 & v0, const dvec4 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const dvec4 & v - Value to be clamped.
  • const dvec4 & v0 - Minimum value.
  • const dvec4 & v1 - Maximum value.

Return value

Clamped value.

ivec4 clamp ( const ivec4 & v, const ivec4 & v0, const ivec4 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const ivec4 & v - Value to be clamped.
  • const ivec4 & v0 - Minimum value.
  • const ivec4 & v1 - Maximum value.

Return value

Clamped value.

vec4 clamp ( const vec4 & v, const vec4 & v0, const vec4 & v1 ) #

Clamps a value within the specified min and max limits.

Arguments

  • const vec4 & v - Value to be clamped.
  • const vec4 & v0 - Minimum value.
  • const vec4 & v1 - Maximum value.

Return value

Clamped value.

Type clamp ( Type v, Type v0, Type v1 ) #

Clamps the value within the specified min and max limits.

Arguments

  • Type v - Value to be clamped.
  • Type v0 - Minimum value.
  • Type v1 - Maximum value.

Return value

Clamped value.

int compare ( int v0, int v1 ) #

Compares two scalars of the int type.

Arguments

  • int v0 - First int scalar.
  • int v1 - Second int scalar.

Return value

1 if v0 is equal to v1; otherwise, 0.

int compare ( float v0, float v1 ) #

Checks if the two scalars of the float type are exactly equal.

Arguments

  • float v0 - First float scalar.
  • float v1 - Second float scalar.

Return value

1 if v0 is equal to v1; otherwise, 0.

int compare ( double v0, double v1 ) #

Checks if the two scalars of the double type are exactly equal.

Arguments

  • double v0 - First double scalar.
  • double v1 - Second double scalar.

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( float v0, float v1, float epsilon ) #

Compares two values to determine if they can be considered equal within a given tolerance (epsilon).

Arguments

  • float v0 - First scalar.
  • float v1 - Second scalar.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( double v0, double v1, double epsilon ) #

Compares two values to determine if they can be considered equal within a given tolerance (epsilon).

Arguments

  • double v0 - First scalar.
  • double v1 - Second scalar.
  • double epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const vec2 & v0, const vec2 & v1 ) #

Compares two vectors according to the degree of precision equal to 1.0e-6f.

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.

Return value

1 if v0 is equal to v1; otherwise, 0.

int compare ( const vec2 & v0, const vec2 & v1, float epsilon ) #

Compares two vectors according to the specified degree of precision.

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if v0 is equal to v1; otherwise, 0.

int compare ( const dvec2 & v0, const dvec2 & v1 ) #

Compares two vectors according to the degree of precision equal to 1.0e-6f.

Arguments

  • const dvec2 & v0 - First vector.
  • const dvec2 & v1 - Second vector.

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const dvec2 & v0, const dvec2 & v1, double epsilon ) #

Compares two vectors according to the specified degree of precision.

Arguments

  • const dvec2 & v0 - First vector.
  • const dvec2 & v1 - Second vector.
  • double epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const vec3 & v0, const vec3 & v1 ) #

Compares two vectors according to the degree of precision equal to 1.0e-6f.

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const vec3 & v0, const vec3 & v1, float epsilon ) #

Compares two vectors according to the specified degree of precision.

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const dvec3 & v0, const dvec3 & v1 ) #

Compares two vectors according to the degree of precision equal to 1.0e-6f.

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const dvec3 & v0, const dvec3 & v1, double epsilon ) #

Compares two vectors according to the specified degree of precision.

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.
  • double epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const vec4 & v0, const vec4 & v1 ) #

Compares two vectors according to the degree of precision equal to 1.0e-6f.

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const vec4 & v0, const vec4 & v1, float epsilon ) #

Compares two vectors according to the specified degree of precision.

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const dvec4 & v0, const dvec4 & v1 ) #

Compares two vectors according to the degree of precision equal to 1.0e-6f.

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec4 & v1 - Second vector.

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const dvec4 & v0, const dvec4 & v1, double epsilon ) #

Compares two vectors according to the specified degree of precision.

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec4 & v1 - Second vector.
  • double epsilon - Epsilon (degree of precision).

Return value

1 if the v0 is equal to v1; otherwise, 0.

int compare ( const quat & q0, const quat & q1 ) #

Compares two quaternions according to the degree of precision equal to 1.0e-6f.

Arguments

  • const quat & q0 - First quaternion.
  • const quat & q1 - Second quaternion.

Return value

1 if the q0 is equal to q1; otherwise, 0.

int compare ( const quat & q0, const quat & q1, float epsilon ) #

Compares two quaternions according to the specified degree of precision.

Arguments

  • const quat & q0 - First quaternion.
  • const quat & q1 - Second quaternion.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the q0 is equal to q1; otherwise, 0.

int compare ( const mat2 & m0, const mat2 & m1 ) #

Compares two matrices according to the degree of precision equal to 1.0e-6f.

Arguments

  • const mat2 & m0 - First matrix.
  • const mat2 & m1 - Second matrix.

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const mat2 & m0, const mat2 & m1, float epsilon ) #

Compares two matrices according to the specified degree of precision.

Arguments

  • const mat2 & m0 - First matrix.
  • const mat2 & m1 - Second matrix.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const mat3 & m0, const mat3 & m1 ) #

Compares two matrices according to the degree of precision equal to 1.0e-6f.

Arguments

  • const mat3 & m0 - First matrix.
  • const mat3 & m1 - Second matrix.

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const mat3 & m0, const mat3 & m1, float epsilon ) #

Compares two matrices according to the specified degree of precision.

Arguments

  • const mat3 & m0 - First matrix.
  • const mat3 & m1 - Second matrix.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const mat4 & m0, const mat4 & m1 ) #

Compares two matrices according to the degree of precision equal to 1.0e-6f.

Arguments

  • const mat4 & m0 - First matrix.
  • const mat4 & m1 - Second matrix.

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const mat4 & m0, const mat4 & m1, float epsilon ) #

Compares two matrices according to the specified degree of precision.

Arguments

  • const mat4 & m0 - First matrix.
  • const mat4 & m1 - Second matrix.
  • float epsilon - Epsilon (degree of precision).

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const dmat4 & m0, const dmat4 & m1 ) #

Compares two matrices according to the degree of precision equal to 1.0e-6f.

Arguments

  • const dmat4 & m0 - First matrix.
  • const dmat4 & m1 - Second matrix.

Return value

1 if the m0 is equal to m1; otherwise, 0.

int compare ( const dmat4 & m0, const dmat4 & m1, double epsilon ) #

Compares two matrices according to the specified degree of precision.

Arguments

  • const dmat4 & m0 - First matrix.
  • const dmat4 & m1 - Second matrix.
  • double epsilon - Epsilon (degree of precision).

Return value

1 if the m0 is equal to m1; otherwise, 0.

quat conjugate ( const quat & q ) #

Returns the conjugate of a given quaternion.

Arguments

  • const quat & q - Quaternion.

Return value

Conjugate of a given quaternion.

quat conjugate ( quat & ret, const quat & q ) #

Returns the conjugate of a given quaternion.

Arguments

  • quat & ret - Argument to store the result.
  • const quat & q - Quaternion.

Return value

Conjugate of a given quaternion.

float cross ( const vec2 & v0, const vec2 & v1 ) #

Cross product of vectors.

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.

Return value

Cross product of the two 2d vectors: v0.x * v1.y - v0.y*v1.x.

ivec3 cross ( const ivec3 & v0, const ivec3 & v1 ) #

Cross product of vectors.

Arguments

  • const ivec3 & v0 - First vector.
  • const ivec3 & v1 - Second vector.

Return value

Resulting vector.

dvec3 cross ( const dvec3 & v0, const dvec3 & v1 ) #

Cross product of vectors.

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

Resulting vector.

vec3 cross ( const vec3 & v0, const vec3 & v1 ) #

Cross product of vectors.

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Resulting vector.

ivec3 & cross ( ivec3 & ret, const ivec3 & v0, const ivec3 & v1 ) #

Cross product of vectors.

Arguments

  • ivec3 & ret - Output vector, to which the resulting vector will be put.
  • const ivec3 & v0 - First vector.
  • const ivec3 & v1 - Second vector.

Return value

Resulting vector.

vec3 & cross ( vec3 & ret, const vec3 & v0, const vec3 & v1 ) #

Cross product of vectors.

Arguments

  • vec3 & ret - Output vector, to which the resulting vector will be put.
  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Resulting vector.

vec4 & cross ( vec4 & ret, const vec3 & v0, const vec3 & v1 ) #

Cross product of vectors.

Arguments

  • vec4 & ret - Output vector, to which the resulting vector will be put.
  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Resulting vector.

dvec3 & cross ( dvec3 & ret, const dvec3 & v0, const dvec3 & v1 ) #

Cross product of vectors.

Arguments

  • dvec3 & ret - Output vector, to which the resulting vector will be put.
  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

Resulting vector.

dvec4 & cross ( dvec4 & ret, const dvec3 & v0, const dvec3 & v1 ) #

Cross product of vectors.

Arguments

  • dvec4 & ret - Output vector, to which the resulting vector will be put.
  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

Resulting vector.

float * cross3 ( float *UNIGINE_RESTRICT ret, const float *UNIGINE_RESTRICT v0, const float *UNIGINE_RESTRICT v1 ) #

Returns the cross product of three components of vectors by storing it in the array.

Arguments

  • float *UNIGINE_RESTRICT ret - Array to store the return value.
  • const float *UNIGINE_RESTRICT v0 - Pointer to vector.
  • const float *UNIGINE_RESTRICT v1 - Pointer to vector.

Return value

Pointer to the array that stores the return value.

float distance ( const vec2 & v0, const vec2 & v1 ) #

Calculates the distance between the two given vectors. The distance is calculated as: length(v0 - v1).

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.

Return value

Distance between the two given vectors.

float distance ( const vec3 & v0, const vec3 & v1 ) #

Calculates the distance between the two given vectors. The distance is calculated as: length(v0 - v1).

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Distance between the two given vectors.

float distance ( const vec4 & v0, const vec4 & v1 ) #

Calculates the distance between the two given vectors. The distance is calculated as: length(v0 - v1).

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

Distance between the two given vectors.

float distance2 ( const vec2 & v0, const vec2 & v1 ) #

Calculates the squared distance between the two given vectors. The squared distance is calculated as: length2(v0 - v1). This method is much faster than distance() - the calculation is basically the same only without the slow Sqrt call. If you simply want to compare distances, then it is faster to compare squared distances against the squares of distances as the comparison gives the same result.

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.

Return value

Squared distance between the two given vectors.

double distance2 ( const dvec2 & v0, const dvec2 & v1 ) #

Calculates the squared distance between the two given vectors. The squared distance is calculated as: length2(v0 - v1). This method is much faster than distance() - the calculation is basically the same only without the slow Sqrt call. If you simply want to compare distances, then it is faster to compare squared distances against the squares of distances as the comparison gives the same result.

Arguments

  • const dvec2 & v0 - First vector.
  • const dvec2 & v1 - Second vector.

Return value

Squared distance between the two given vectors.

float distance2 ( const vec3 & v0, const vec3 & v1 ) #

Calculates the squared distance between the two given vectors. The squared distance is calculated as: length2(v0 - v1). This method is much faster than distance() - the calculation is basically the same only without the slow Sqrt call. If you simply want to compare distances, then it is faster to compare squared distances against the squares of distances as the comparison gives the same result.

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Squared distance between the two given vectors.

float distance2 ( const vec4 & v0, const vec4 & v1 ) #

Calculates the squared distance between the two given vectors. The squared distance is calculated as: length2(v0 - v1). This method is much faster than distance() - the calculation is basically the same only without the slow Sqrt call. If you simply want to compare distances, then it is faster to compare squared distances against the squares of distances as the comparison gives the same result.

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

Squared distance between the two given vectors.

float dot ( const vec2 & v0, const vec2 & v1 ) #

Dot product of vectors.

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.

Return value

Resulting scalar.

float dot ( const vec3 & v0, const vec3 & v1 ) #

Dot product of vectors.

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Resulting scalar.

double dot ( const dvec2 & v0, const dvec2 & v1 ) #

Dot product of vectors.

Arguments

  • const dvec2 & v0 - First vector.
  • const dvec2 & v1 - Second vector.

Return value

Resulting scalar.

float dot ( const vec3 & v0, const vec4 & v1 ) #

Dot product of vectors. In this case, w component of the four-component vector is added to the dot product of first three components of vectors.

Arguments

  • const vec3 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

Resulting scalar.

float dot ( const vec4 & v0, const vec3 & v1 ) #

Dot product of vectors. In this case, w component of the four-component vector is added to the dot product of first three components of vectors.

Arguments

  • const vec4 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Resulting scalar.

float dot ( const vec4 & v0, const vec4 & v1 ) #

Dot product of vectors.

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

Resulting scalar.

int dot ( const ivec3 & v0, const ivec3 & v1 ) #

Dot product of vectors.

Arguments

  • const ivec3 & v0 - First vector.
  • const ivec3 & v1 - Second vector.

Return value

Resulting scalar.

int dot ( const ivec2 & v0, const ivec2 & v1 ) #

Dot product of vectors.

Arguments

  • const ivec2 & v0 - First vector.
  • const ivec2 & v1 - Second vector.

Return value

Resulting scalar.

int dot ( const ivec4 & v0, const ivec3 & v1 ) #

Dot product of vectors. In this case, w component of the four-component vector is added to the dot product of first three components of vectors.

Arguments

  • const ivec4 & v0 - First vector.
  • const ivec3 & v1 - Second vector.

Return value

Resulting scalar.

int dot ( const ivec4 & v0, const ivec4 & v1 ) #

Dot product of vectors.

Arguments

  • const ivec4 & v0 - First vector.
  • const ivec4 & v1 - Second vector.

Return value

Resulting scalar.

double dot ( const dvec3 & v0, const dvec3 & v1 ) #

Dot product of vectors.

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

Resulting scalar.

double dot ( const dvec3 & v0, const dvec4 & v1 ) #

Dot product of vectors. In this case, w component of the four-component vector is added to the dot product of first three components of vectors.

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec4 & v1 - Second vector.

Return value

Resulting scalar.

double dot ( const dvec4 & v0, const dvec3 & v1 ) #

Dot product of vectors. In this case, w component of the four-component vector is added to the dot product of first three components of vectors.

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

Resulting scalar.

double dot ( const dvec4 & v0, const dvec4 & v1 ) #

Dot product of vectors.

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec4 & v1 - Second vector.

Return value

Resulting scalar.

float dot2 ( const float * v, float x, float y ) #

Returns the dot product between a 2-component vector v and another 2-component vector defined by (x, y).

Arguments

  • const float * v - Pointer to the first vector.
  • float x - X component of the second vector.
  • float y - Y component of the second vector.

Return value

Resulting scalar.

double dot3 ( const dvec3 & v0, const dvec4 & v1 ) #

Dot product of three components of vectors. W components of four-component vectors are ignored.
Source code (C++)
float a = dot3(vec3(1, 2, 3), vec4(1, 2, 3, 4));
double b = dot3(dvec4(1, 2, 3, 4), dvec4(1, 2, 3, 4));
/*
result is:
a = 14.000000
b = 14.000000
*/

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec4 & v1 - Second vector.

Return value

Resulting scalar.

double dot3 ( const dvec4 & v0, const dvec3 & v1 ) #

Dot product of three components of vectors. W components of four-component vectors are ignored.
Source code (C++)
float a = dot3(vec3(1, 2, 3), vec4(1, 2, 3, 4));
double b = dot3(dvec4(1, 2, 3, 4), dvec4(1, 2, 3, 4));
/*
result is:
a = 14.000000
b = 14.000000
*/

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec3 & v1 - Second vector.

Return value

Resulting scalar.

double dot3 ( const dvec4 & v0, const dvec4 & v1 ) #

Dot product of three components of vectors. W components of four-component vectors are ignored.
Source code (C++)
float a = dot3(vec3(1, 2, 3), vec4(1, 2, 3, 4));
double b = dot3(dvec4(1, 2, 3, 4), dvec4(1, 2, 3, 4));
/*
result is:
a = 14.000000
b = 14.000000
*/

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec4 & v1 - Second vector.

Return value

Resulting scalar.

float dot3 ( const vec3 & v0, const vec4 & v1 ) #

Dot product of three components of vectors. W components of four-component vectors are ignored.
Source code (C++)
float a = dot3(vec3(1, 2, 3), vec4(1, 2, 3, 4));
double b = dot3(dvec4(1, 2, 3, 4), dvec4(1, 2, 3, 4));
/*
result is:
a = 14.000000
b = 14.000000
*/

Arguments

  • const vec3 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

Resulting scalar.

float dot3 ( const vec4 & v0, const vec3 & v1 ) #

Dot product of three components of vectors. W components of four-component vectors are ignored.
Source code (C++)
float a = dot3(vec3(1, 2, 3), vec4(1, 2, 3, 4));
double b = dot3(dvec4(1, 2, 3, 4), dvec4(1, 2, 3, 4));
/*
result is:
a = 14.000000
b = 14.000000
*/

Arguments

  • const vec4 & v0 - First vector.
  • const vec3 & v1 - Second vector.

Return value

Resulting scalar.

float dot3 ( const vec4 & v0, const vec4 & v1 ) #

Dot product of three components of vectors. W components of four-component vectors are ignored.
Source code (C++)
float a = dot3(vec3(1, 2, 3), vec4(1, 2, 3, 4));
double b = dot3(dvec4(1, 2, 3, 4), dvec4(1, 2, 3, 4));
/*
result is:
a = 14.000000
b = 14.000000
*/

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.

Return value

Resulting scalar.

float dot3 ( const float * v, float x, float y, float z ) #

Returns the dot product between a 3-component vector v and another 3-component vector defined by (x, y, z).

Arguments

  • const float * v - Pointer to the first vector.
  • float x - X component of the second vector.
  • float y - Y component of the second vector.
  • float z - Z component of the second vector.

Return value

Resulting scalar.

float dtof ( double v ) #

Converts a double value to an integer value.

Arguments

  • double v - Double value.

Return value

Float value.

int dtoi ( double v ) #

Converts a double value to an integer value.

Arguments

  • double v - Double value.

Return value

Integer value.

long long dtol ( double v ) #

Converts a double value to a long value.

Arguments

  • double v - Double value.

Return value

Long value.

double floor ( double v ) #

Rounds an argument down to the nearest integer.
Source code
float a = floor(2.3) // a = 2.0

Arguments

  • double v - Argument.

Return value

Largest integer value not greater than arg.

float floor ( float v ) #

Rounds an argument down to the nearest integer.
Source code
double a = floor(2.3) // a = 2.0

Arguments

  • float v - Argument.

Return value

Largest integer value not greater than arg.

const vec2 & floor ( const vec2 & v ) #

Ceiling function that returns the vector storing the largest integer values that are not greater than the argument.

Arguments

  • const vec2 & v - Vector storing values.

Return value

Vector storing the largest integer values not greater than v.

const vec3 & floor ( const vec3 & v ) #

Ceiling function that returns the vector storing the largest integer values that are not greater than the argument.

Arguments

  • const vec3 & v - Vector storing values.

Return value

Vector storing the largest integer values not greater than v.

const vec4 & floor ( const vec4 & v ) #

Ceiling function that returns the vector storing the largest integer values that are not greater than the argument.

Arguments

  • const vec4 & v - Vector storing values.

Return value

Vector storing the largest integer values not greater than v.

const dvec2 & floor ( const dvec2 & v ) #

Ceiling function that returns the vector storing the largest integer values that are not greater than the argument.

Arguments

  • const dvec2 & v - Vector storing values.

Return value

Vector storing the largest integer values not greater than v.

const dvec3 & floor ( const dvec3 & v ) #

Ceiling function that returns the vector storing the largest integer values that are not greater than the argument.

Arguments

  • const dvec3 & v - Vector storing values.

Return value

Vector storing the largest integer values not greater than v.

const dvec4 & floor ( const dvec4 & v ) #

Ceiling function that returns the vector storing the largest integer values that are not greater than the argument.

Arguments

  • const dvec4 & v - Vector storing values.

Return value

Vector storing the largest integer values not greater than v.

int floorInt ( float v ) #

Returns the largest value that is less than or equal to the argument, stored as an integer.

Arguments

  • float v - Value.

Return value

Resulting int value.

int floorInt ( double v ) #

Returns the largest value that is less than or equal to the argument, stored as an integer.

Arguments

  • double v - Value.

Return value

Resulting int value.

float frac ( float v ) #

Returns the fractional part of the argument.
Source code
float a = frac(3.141593); // a = 0.141593

Arguments

  • float v - Argument.

Return value

Fractional part of the argument.

double frac ( double v ) #

Returns the fractional part of the argument.
Source code
double a = frac(3.141593); // a = 0.141593

Arguments

  • double v - Argument.

Return value

Fractional part of the argument.

vec3 frac ( const vec3 & v ) #

Returns the fractional part every component of the argument.

Arguments

  • const vec3 & v - Argument.

Return value

Fractional part of every component of the argument.

vec4 frac ( const vec4 & v ) #

Returns the fractional part every component of the argument.

Arguments

  • const vec4 & v - Argument.

Return value

Fractional part of every component of the argument.

char ftoc ( float v ) #

Converts a float value to a char value.

Arguments

  • float v - Float value.

Return value

Char value.

int ftoi ( float v ) #

Converts a float value to an integer value.

Arguments

  • float v - Float value.

Return value

Integer value.

long long ftol ( float v ) #

Converts a float value to a long value.

Arguments

  • float v - Float value.

Return value

Long value.

float getAngle ( const quat & q0, const quat & q1 ) #

Returns the angle (in degrees) between the given first and second quaternions. The angle returned is the unsigned acute angle between the two quaternions. This means the smaller of the two possible angles is used.

Arguments

  • const quat & q0 - First quaternion (from which the angular difference is measured).
  • const quat & q1 - Second quaternion (to which the angular difference is measured).

Return value

Angle between the given quaternions, in degrees within the range [0.0; 180.0].

float getAngle ( const vec3 & v0, const vec3 & v1 ) #

Returns the angle (in degrees) between the given first and second vectors. The angle returned is the unsigned acute angle between the two vectors. This means the smaller of the two possible angles is used.

Arguments

  • const vec3 & v0 - First vector (from which the angular difference is measured).
  • const vec3 & v1 - Second vector (to which the angular difference is measured).

Return value

Angle between the given vectors, in degrees within the range [0.0; 180.0].

float getAngle ( const vec3 & v0, const vec3 & v1, const vec3 & up ) #

Returns the signed angle (in degrees) between the given first and second vectors relative to the specified "up" vector.

Arguments

  • const vec3 & v0 - First vector (from which the angular difference is measured).
  • const vec3 & v1 - Second vector (to which the angular difference is measured).
  • const vec3 & up - Up vector, around which the other two vectors are rotated.

Return value

Angle between the given vectors, in degrees within the range [-180.0; 180.0].

bool getBit ( Type value, int bit ) #

Extracts a specific bit from an integer value and returns it as a boolean.

Arguments

  • Type value - Value.
  • int bit - The bit of the value.

Return value

true if the specified bit in the value is set, othewise false.

float gradient4 ( float x, const vec4 & gradient ) #

Returns a gradient value for the specified argument using four key components. The gradient value is determined as follows:
Source code
smoothstep(gradient.x, gradient.y, x) - smoothstep(gradient.z, gradient.w, x);
See the smoothstep() method.

Arguments

  • float x - Argument.
  • const vec4 & gradient - Vector with four key components.

Return value

Gradient value.

unsigned int hashInteger ( unsigned int v ) #

Computes a 32-bit hash value from an input value.

Arguments

  • unsigned int v - Input value.

Return value

Hash value.

unsigned int hashInteger ( float v ) #

Computes a 32-bit hash value from an input value.

Arguments

  • float v - Input value.

Return value

Hash value.

unsigned int hashInteger ( int v ) #

Computes a 32-bit hash value from an input value.

Arguments

  • int v - Input value.

Return value

Hash value.

unsigned long long hashInteger ( unsigned long long v ) #

Computes a 64-bit hash value from an input value.

Arguments

  • unsigned long long v - Input value.

Return value

Hash value.

unsigned long long hashInteger ( double v ) #

Computes a 64-bit hash value from an input value.

Arguments

  • double v - Input value.

Return value

Hash value.

unsigned long long hashInteger ( long long v ) #

Computes a 64-bit hash value from an input value.

Arguments

  • long long v - Input value.

Return value

Hash value.

unsigned int hashMixer ( unsigned int hash_0, unsigned int hash_1 ) #

Mixes two hash values.

Arguments

  • unsigned int hash_0 - Input value.
  • unsigned int hash_1 - Input value.

Return value

Mixed hash.

unsigned long long hashMixer ( unsigned long long hash_0, unsigned long long hash_1 ) #

Mixes two hash values.

Arguments

  • unsigned long long hash_0 - Input value.
  • unsigned long long hash_1 - Input value.

Return value

Mixed hash.

unsigned int hashCombine ( unsigned int hash, unsigned int value ) #

Returns a hash obtained by mixing the hash provided as an argument with a hash obtained for the specified value.

Arguments

  • unsigned int hash - Input hash.
  • unsigned int value - Input value.

Return value

Combined hash value.

unsigned int hashCombine ( unsigned int hash, float value ) #

Returns a hash obtained by mixing the hash provided as an argument with a hash obtained for the specified value.

Arguments

  • unsigned int hash - Input hash.
  • float value - Input value.

Return value

Combined hash value.

unsigned int hashCombine ( unsigned int hash, int value ) #

Returns a hash obtained by mixing the hash provided as an argument with a hash obtained for the specified value.

Arguments

  • unsigned int hash - Input hash.
  • int value - Input value.

Return value

Combined hash value.

unsigned long long hashCombine ( unsigned long long hash, unsigned long long value ) #

Returns a hash obtained by mixing the hash provided as an argument with a hash obtained for the specified value.

Arguments

  • unsigned long long hash - Input hash.
  • unsigned long long value - Input value.

Return value

Combined hash value.

unsigned long long hashCombine ( unsigned long long hash, double value ) #

Returns a hash obtained by mixing the hash provided as an argument with a hash obtained for the specified value.

Arguments

  • unsigned long long hash - Input hash.
  • double value - Input value.

Return value

Combined hash value.

unsigned long long hashCombine ( unsigned long long hash, long long value ) #

Returns a hash obtained by mixing the hash provided as an argument with a hash obtained for the specified value.

Arguments

  • unsigned long long hash - Input hash.
  • long long value - Input value.

Return value

Combined hash value.

unsigned int hashCast64To32 ( unsigned long long value ) #

Casts the 64-bit hash value to the 32-bit hash value.

Arguments

  • unsigned long long value - Input 64-bit hash value.

Return value

32-bit hash value.

quat inverse ( const quat & q ) #

Returns inverse of the quaternion.

Arguments

  • const quat & q - Quaternion.

Return value

Return value.

quat & inverse ( quat & ret, const quat & q ) #

Returns inverse of the quaternion.

Arguments

  • quat & ret - Argument to store the output.
  • const quat & q - Quaternion.

Return value

Return value.

float inverseLerp ( float v0, float v1, float v ) #

Returns the value calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0f and 1.0f.

Arguments

  • float v0 - The value specifying the beginning of the interval.
  • float v1 - The value specifying the ending of the interval.
  • float v - The value within the specified interval.

Return value

Coefficient of the value within a specified interval.

double inverseLerp ( double v0, double v1, double v ) #

Returns the value calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0 and 1.0.

Arguments

  • double v0 - The value specifying the beginning of the interval.
  • double v1 - The value specifying the ending of the interval.
  • double v - The value within the specified interval.

Return value

Coefficient of the value within a specified interval.

vec2 inverseLerp ( const vec2 & v0, const vec2 & v1, const vec2 & v ) #

Returns the vector with two float values calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0f and 1.0f.

Arguments

  • const vec2 & v0 - Vector storing the values that specify the beginnings of the intervals.
  • const vec2 & v1 - Vector storing the values that specify the endings of the intervals.
  • const vec2 & v - The values within the specified intervals.

Return value

Coefficients of the values within a specified intervals.

vec3 inverseLerp ( const vec3 & v0, const vec3 & v1, const vec3 & v ) #

Returns the vector with three float values calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0f and 1.0f.

Arguments

  • const vec3 & v0 - Vector storing the values that specify the beginnings of the intervals.
  • const vec3 & v1 - Vector storing the values that specify the endings of the intervals.
  • const vec3 & v - The values within the specified intervals.

Return value

Coefficients of the values within a specified intervals.

vec4 inverseLerp ( const vec4 & v0, const vec4 & v1, const vec4 & v ) #

Returns the vector with four float values calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0f and 1.0f.

Arguments

  • const vec4 & v0 - Vector storing the values that specify the beginnings of the intervals.
  • const vec4 & v1 - Vector storing the values that specify the endings of the intervals.
  • const vec4 & v - The values within the specified intervals.

Return value

Coefficients of the values within a specified intervals.

dvec2 inverseLerp ( const dvec2 & v0, const dvec2 & v1, const dvec2 & v ) #

Returns the vector with two double values calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0 and 1.0.

Arguments

  • const dvec2 & v0 - Vector storing the values that specify the beginnings of the intervals.
  • const dvec2 & v1 - Vector storing the values that specify the endings of the intervals.
  • const dvec2 & v - The values within the specified intervals.

Return value

Coefficients of the values within a specified intervals.

dvec3 inverseLerp ( const dvec3 & v0, const dvec3 & v1, const dvec3 & v ) #

Returns the vector with three double values calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0 and 1.0.

Arguments

  • const dvec3 & v0 - Vector storing the values that specify the beginnings of the intervals.
  • const dvec3 & v1 - Vector storing the values that specify the endings of the intervals.
  • const dvec3 & v - The values within the specified intervals.

Return value

Coefficients of the values within a specified intervals.

vec4 inverseLerp ( const dvec4 & v0, const dvec4 & v1, const dvec4 & v ) #

Returns the vector with four double values calculated according to the following formula: (v - v0) / (v1 - v0) clamped within 0.0 and 1.0.

Arguments

  • const dvec4 & v0 - Vector storing the values that specify the beginnings of the intervals.
  • const dvec4 & v1 - Vector storing the values that specify the endings of the intervals.
  • const dvec4 & v - The values within the specified intervals.

Return value

Coefficients of the values within a specified intervals.

vec4 contrastLerp ( vec4 & point_a, vec4 & point_b, float coef_min_bound, float coef_max_bound, float coef ) #

Performs a smooth interpolation between two vectors (point_a and point_b) using a specified coefficient range to create a smooth transition effect.

Arguments

  • vec4 & point_a - Vector.
  • vec4 & point_b - Vector.
  • float coef_min_bound - The minimum value defining the range of the coefficient for the smoothstep function, creating a softened transition over the range.
  • float coef_max_bound - The maximum value defining the range of the coefficient for the smoothstep function, creating a softened transition over the range.
  • float coef - The coefficient value that determines the interpolation position between vectors.

Return value

.

bool isFinite ( float x ) #

Returns a value indicating that the given value is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

  • float x - Value.

Return value

true if the argument is a finite number; otherwise, false.

bool isFinite ( double x ) #

Returns a value indicating that the given value is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

  • double x - Value.

Return value

true if the argument is a finite number; otherwise, false.

bool isFinite ( Vector2 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

  • Vector2 v - Value.

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( Vector3 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

  • Vector3 v - Value.

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( Vector4 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

  • Vector4 v - Value.

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( vec2 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( vec3 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( vec4 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( quat v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( dvec2 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( dvec3 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isFinite ( dvec4 v ) #

Returns a value indicating that any component of the argument is a finite number, meaning it is neither NaN nor infinity (positive or negative).

Arguments

Return value

true if any component of the argument is a finite number; otherwise, false.

bool isInf ( float x ) #

Returns a value indicating whether the argument evaluates to negative or positive infinity.

Arguments

  • float x - Value.

Return value

true if the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( double x ) #

Returns a value indicating whether the argument evaluates to negative or positive infinity.

Arguments

  • double x - Value.

Return value

true if the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( Vector2 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

  • Vector2 v - Value.

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( Vector3 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

  • Vector3 v - Value.

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( Vector4 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

  • Vector4 v - Value.

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( vec2 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( vec3 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( vec4 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( quat v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( dvec2 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( dvec3 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isInf ( dvec4 v ) #

Returns a value indicating whether any component of the argument evaluates to negative or positive infinity.

Arguments

Return value

true if any component of the argument evaluates to negative or positive infinity; otherwise, false.

bool isNan ( float v ) #

Returns a value that indicates whether the argument is not a number (NaN).

Arguments

  • float v - Value.

Return value

true if the argument is not a number (NaN); otherwise, false.

bool isNan ( double v ) #

Returns a value that indicates whether the argument is not a number (NaN).

Arguments

  • double v - Value.

Return value

true if the argument is not a number (NaN); otherwise, false.

bool isNan ( Vector2 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

  • Vector2 v - Value.

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( Vector3 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

  • Vector3 v - Value.

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( Vector4 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

  • Vector4 v - Value.

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( vec2 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( vec3 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( vec4 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( quat v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( dvec2 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( dvec3 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

bool isNan ( dvec4 v ) #

Returns a value that indicates whether the argument contains at least one component, which is not a number (NaN).

Arguments

Return value

true if the argument contains at least one component, which is not a number (NaN); otherwise, false.

float isrgb ( float x ) #

Converts sRGB color value to RGB format.

Arguments

  • float x - sRGB value to convert.

Return value

RGB color value.

vec2 isrgb ( const vec2 & color ) #

Converts sRGB color value to RGB format.

Arguments

  • const vec2 & color - sRGB value to convert.

Return value

RGB color value.

vec3 isrgb ( const vec3 & color ) #

Converts sRGB color value to RGB format.

Arguments

  • const vec3 & color - sRGB value to convert.

Return value

RGB color value.

vec4 isrgb ( const vec4 & color ) #

Converts sRGB color value and alpha to RGB format.

Arguments

  • const vec4 & color - sRGB value to convert.

Return value

RGB color value.

vec4 isrgbColor ( const vec4 & color ) #

Converts sRGB color value to RGB format without converting alpha.

Arguments

  • const vec4 & color - sRGB value to convert.

Return value

RGB color value.

double itod ( int v ) #

Converts an integer value to a double value.

Arguments

  • int v - Integer value.

Return value

Double value.

float itof ( int v ) #

Converts an integer value to a float value.

Arguments

  • int v - Integer value.

Return value

Float value.

Scalar itos ( int v ) #

Converts an integer value to a scalar value (float or double, depending on the precision).

Arguments

  • int v - Integer value.

Return value

Scalar value (float or double, depending on the precision).

float length ( const vec2 & v ) #

Calculates the length of a given vector.

Arguments

  • const vec2 & v - Vector.

Return value

Vector length.

double length ( const dvec2 & v ) #

Calculates the length of a given vector.

Arguments

  • const dvec2 & v - Vector.

Return value

Vector length.

float length ( const vec3 & v ) #

Calculates the length of a given vector.

Arguments

  • const vec3 & v - Vector.

Return value

Vector length.

double length ( const dvec3 & v ) #

Calculates the length of a given vector.

Arguments

  • const dvec3 & v - Vector.

Return value

Vector length.

float length ( const vec4 & v ) #

Calculates the length of a given vector.

Arguments

  • const vec4 & v - Vector.

Return value

Vector length.

double length ( const dvec4 & v ) #

Calculates the length of a given vector.

Arguments

  • const dvec4 & v - Vector.

Return value

Vector length.

float length2 ( const vec2 & v ) #

Calculates the squared length of a given vector. This method is much faster than length() - the calculation is basically the same only without the slow Sqrt call. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const vec2 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

double length2 ( const dvec2 & v ) #

Calculates the squared length of a given vector. This method is much faster than length() - the calculation is basically the same only without the slow Sqrt call. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const dvec2 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

int length2 ( const ivec2 & v ) #

Calculates the squared length of a given vector. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const ivec2 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

float length2 ( const vec3 & v ) #

Calculates the squared length of a given vector. This method is much faster than length() - the calculation is basically the same only without the slow Sqrt call. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const vec3 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

double length2 ( const dvec3 & v ) #

Calculates the squared length of a given vector. This method is much faster than length() - the calculation is basically the same only without the slow Sqrt call. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const dvec3 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

int length2 ( const ivec3 & v ) #

Calculates the squared length of a given vector. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const ivec3 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

float length2 ( const vec4 & v ) #

Calculates the squared length of a given vector. This method is much faster than length() - the calculation is basically the same only without the slow Sqrt call. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const vec4 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

double length2 ( const dvec4 & v ) #

Calculates the squared length of a given vector. This method is much faster than length() - the calculation is basically the same only without the slow Sqrt call. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const dvec4 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

int length2 ( const ivec4 & v ) #

Calculates the squared length of a given vector. If you are using lengths simply to compare distances, then it is faster to compare squared lengths against the squares of distances as the comparison gives the same result.

Arguments

  • const ivec4 & v - Vector.

Return value

Squared length of the vector (X 2 + Y 2 + Z 2).

float lerp ( float v0, float v1, float k ) #

Returns the interpolated value according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • float v0 - First float value.
  • float v1 - Second float value.
  • float k - Interpolation coefficient.

Return value

Interpolated value.

double lerp ( double v0, double v1, double k ) #

Returns the interpolated value according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • double v0 - First double value.
  • double v1 - Second double value.
  • double k - Interpolation coefficient.

Return value

Interpolated value.

int lerp ( int v0, int v1, int k ) #

Returns the interpolated value according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • int v0 - First int value.
  • int v1 - Second int value.
  • int k - Interpolation coefficient.

Return value

Interpolated value.

long long lerp ( long long v0, long long v1, long long k ) #

Returns the interpolated value according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • long long v0 - First long long value.
  • long long v1 - Second long long value.
  • long long k - Interpolation coefficient.

Return value

Interpolated value.

const vec2 & lerp ( const vec2 & v0, const vec2 & v1, float k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const vec2 & v0 - First vector.
  • const vec2 & v1 - Second vector.
  • float k - Interpolation coefficient.

Return value

Interpolated vector.

vec3 lerp ( const vec3 & v0, const vec3 & v1, float k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const vec3 & v0 - First vector.
  • const vec3 & v1 - Second vector.
  • float k - Interpolation coefficient.

Return value

Interpolated vector.

vec4 lerp ( const vec4 & v0, const vec4 & v1, float k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const vec4 & v0 - First vector.
  • const vec4 & v1 - Second vector.
  • float k - Interpolation coefficient.

Return value

Interpolated vector.

dvec2 lerp ( const dvec2 & v0, const dvec2 & v1, double k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const dvec2 & v0 - First vector.
  • const dvec2 & v1 - Second vector.
  • double k - Interpolation coefficient.

Return value

Interpolated vector.

dvec3 lerp ( const dvec3 & v0, const dvec3 & v1, double k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const dvec3 & v0 - First vector.
  • const dvec3 & v1 - Second vector.
  • double k - Interpolation coefficient.

Return value

Interpolated vector.

dvec4 lerp ( const dvec4 & v0, const dvec4 & v1, double k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const dvec4 & v0 - First vector.
  • const dvec4 & v1 - Second vector.
  • double k - Interpolation coefficient.

Return value

Interpolated vector.

ivec2 lerp ( const ivec2 & v0, const ivec2 & v1, int k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const ivec2 & v0 - First vector.
  • const ivec2 & v1 - Second vector.
  • int k - Interpolation coefficient.

Return value

Interpolated vector.

ivec3 lerp ( const ivec3 & v0, const ivec3 & v1, int k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const ivec3 & v0 - First vector.
  • const ivec3 & v1 - Second vector.
  • int k - Interpolation coefficient.

Return value

Interpolated vector.

ivec4 lerp ( const ivec4 & v0, const ivec4 & v1, int k ) #

Returns the interpolated vector according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • const ivec4 & v0 - First vector.
  • const ivec4 & v1 - Second vector.
  • int k - Interpolation coefficient.

Return value

Interpolated vector.

mat4 & lerp ( mat4 & ret, const mat4 & m0, const mat4 & m1, float k ) #

Returns the interpolated matrix according to the following formula: m0 + (m 1 - m 0) * k .

Arguments

  • mat4 & ret - The matrix to store the result.
  • const mat4 & m0 - The value of the first matrix.
  • const mat4 & m1 - The value of the second matrix.
  • float k - Interpolation coefficient.

Return value

The resulting matrix.

dmat4 & lerp ( dmat4 & ret, const dmat4 & m0, const dmat4 & m1, double k ) #

Returns the interpolated matrix according to the following formula: m0 + (m 1 - m 0) * k .

Arguments

  • dmat4 & ret - The matrix to store the result.
  • const dmat4 & m0 - The value of the first matrix.
  • const dmat4 & m1 - The value of the second matrix.
  • double k - Interpolation coefficient.

Return value

The resulting matrix.

dmat4 lerp ( const dmat4 & m0, const dmat4 & m1, double k ) #

Returns the interpolated matrix according to the following formula: m0 + (m 1 - m 0) * k .

Arguments

  • const dmat4 & m0 - The value of the first matrix.
  • const dmat4 & m1 - The value of the second matrix.
  • double k - Interpolation coefficient.

Return value

The resulting matrix.

Type lerp ( Type v0, Type v1, Type k ) #

Returns the interpolated value according to the following formula: v0 + (v 1 - v 0) * k .

Arguments

  • Type v0 - First value.
  • Type v1 - Second value.
  • Type k - Interpolation coefficient.

Return value

Interpolated value.

float lerpOne ( float v0, float k ) #

Performs the interpolation: v0 * (1.0f - k) + k.

Arguments

  • float v0 - Value for interpolation.
  • float k - Interpolation coefficient.

Return value

Interpolated value.

double lerpOne ( double v0, double k ) #

Performs the interpolation: v0 * (1.0f - k) + k.

Arguments

  • double v0 - Value for interpolation.
  • double k - Interpolation coefficient.

Return value

Interpolated value.

float lerpZero ( float v0, float k ) #

Performs the interpolation of the following type: v0 * (1.0f - k).

Arguments

  • float v0 - Value for interpolation.
  • float k - Interpolation coefficient.

Return value

Interpolated value.

double lerpZero ( double v0, double k ) #

Performs the interpolation of the following type: v0 * (1.0f - k).

Arguments

  • double v0 - Value for interpolation.
  • double k - Interpolation coefficient.

Return value

Interpolated value.

vec4 & lerp3 ( vec4 & v0, vec4 & v1, vec4 & v2, float k ) #

Performs linear interpolation between three vectors.

Arguments

  • vec4 & v0 - First vector.
  • vec4 & v1 - Second vector.
  • vec4 & v2 - Third vector.
  • float k - Interpolation coefficient in the range [0.0f, 1.0f].

Return value

Interpolated vector.

float ltof ( long long v ) #

Converts a long value to a float value.

Arguments

  • long long v - Long value.

Return value

Float value.

double ltod ( long long v ) #

Converts a long value to a double value.

Arguments

  • long long v - Long value.

Return value

Double value.

float max ( float v0, float v1 ) #

Compares the arguments and returns the maximum value.

Arguments

  • float v0 - First value.
  • float v1 - Second value.

Return value

Maximum value.

double max ( double v0, double v1 ) #

Compares the arguments and returns the maximum value.

Arguments

  • double v0 - First value.
  • double v1 - Second value.

Return value

Maximum value.

int max ( int v0, int v1 ) #

Compares the arguments and returns the maximum value.

Arguments

  • int v0 - First value.
  • int v1 - Second value.

Return value

Maximum value.

long long max ( long long v0, long long v1 ) #

Compares the arguments and returns the maximum value.

Arguments

  • long long v0 - First value.
  • long long v1 - Second value.

Return value

Maximum value.

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

Compares the arguments and returns the maximum value.

Arguments

  • const vec2 & v0 - First value.
  • const vec2 & v1 - Second value.

Return value

Maximum value.

vec3 max ( const vec3 & v0, const vec3 & v1 ) #

Compares the arguments and returns the maximum value.

Arguments

  • const vec3 & v0 - First value.
  • const vec3 & v1 - Second value.

Return value

Maximum value.

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

Compares the arguments and returns the maximum value.

Arguments

  • const vec4 & v0 - First value.
  • const vec4 & v1 - Second value.

Return value

Maximum value.

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

Compares the arguments and returns the maximum value.

Arguments