This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Rendering
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Version Control
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
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
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
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
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Unigine::Math::mat3 Struct

Header: #include <UnigineMathLibMat3.h>

This class represents a matrix of nine (3x3) float components.

mat3 Class

Members


mat3 ( ) #

Default constructor. Produces an identity matrix.

mat3 ( float v ) #

Constructor. Initializes the matrix using a given scalar value.
Source code (UnigineScript)
mat3(2.0);
						
/* Creates a matrix						
| 2.0 	2.0		2.0	|
| 2.0 	2.0		2.0	|
| 2.0 	2.0		2.0	|						
*/

Arguments

  • float v - Scalar value.

mat3 ( const mat3& m ) #

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

Arguments

  • const mat3& m - Source matrix.

mat3 ( const mat2& m ) #

Constructor. Initializes the matrix using a given mat2 source matrix (2x2). The matrix elements are filled using corresponding elements of the source matrix.
Output
Resulting matrix: 
    | m00  	 m01	  0.0f | 
M=  | m10    m11      0.0f |
    | 0.0f   0.0f     1.0f |

Arguments

  • const mat2& m - Source matrix (2x2).

mat3 ( const mat4& m ) #

Constructor. Initializes the matrix using a given mat4 source matrix (4x4). The matrix elements are filled using corresponding elements of the source matrix.

Arguments

  • const mat4& m - Source matrix (4x4).

mat3 ( const dmat4& m ) #

Constructor. Initializes the matrix using a given dmat4 source matrix (3x4). The matrix elements are filled using corresponding elements of the source matrix.

Arguments

  • const dmat4& m - Source matrix (3x4).

mat3 ( const vec3& c0, const vec3& c1, const vec3& c2 ) #

Constructor. Initializes the matrix using given three vec3 vectors.
Output
Resulting matrix: 
    | col0.x  	 col1.x	  	col2.x | 
M=  | col0.y   	 col1.y     col2.y |
    | col0.z   	 col1.z     col2.z |

Arguments

  • const vec3& c0 - Source vector for the first column.
  • const vec3& c1 - Source vector for the second column
  • const vec3& c2 - Source vector for the third column

mat3 ( const quat& q ) #

Constructor. Initializes the matrix using a given source quaternion.
Output
For the quaternion (x, y, z, w) the corresponding rotation matrix M is defined as follows:  		
    | 1 - 2y² - 2z²    2xy + 2wz      	2xz - 2wy     | 
M=  | 2xy - 2wz        1 - 2x² - 2z²    2yz + 2wx     |
    | 2xz + 2wy        2yz - 2wx        1 - 2x² - 2y² |

Arguments

  • const quat& q - Source quaternion.

mat3 ( float v, ConstexprTag ) #

Constructor. Initializes the matrix using a given constant float value.
Output
Resulting matrix: 
    | v   v   v | 
M=  | v   v   v |
    | v   v   v |

Arguments

  • float v - Value.
  • ConstexprTag - Auxiliary tag.

mat3 ( float m00_, float m10_, float m20_, float m01_, float m11_, float m21_, float m02_, float m12_, float m22_, ConstexprTag ) #

Constructor. Initializes the matrix with given constant float values.
Output
Resulting matrix: 
    | m00_	 m01_	m02_ | 
M=  | m10_   m11_   m12_ |
    | m20_   m21_   m22_ |

Arguments

  • float m00_ - m00_ element.
  • float m10_ - m10_ element.
  • float m20_ - m20_ element.
  • float m01_ - m01_ element.
  • float m11_ - m11_ element.
  • float m21_ - m21_ element.
  • float m02_ - m02_ element.
  • float m12_ - m12_ element.
  • float m22_ - m22_ element.
  • ConstexprTag - Auxiliary tag.

mat3 ( const mat3x3_values& m ) #

Constructor. Initializes the matrix using a given source matrix values.

Arguments

void set ( int row, int column, float v ) #

Sets a new value of the matrix element specified by row and column.

Arguments

  • int row - Row.
  • int column - Column.
  • float v - The value to be set.

void set ( const dmat4& m ) #

Sets the matrix using a given dmat4 source matrix (3x4). The matrix elements are set equal to corresponding elements of the source matrix.

Arguments

  • const dmat4& m - Source matrix (3x4).

void set ( const mat4& m ) #

Sets the matrix using a given mat4 source matrix (4x4). The matrix elements are set equal to corresponding elements of the source matrix.

Arguments

  • const mat4& m - Source matrix (4x4).

void set ( const mat3x3_values& m ) #

Sets the matrix using the argument float values.

Arguments

void set ( const quat& q ) #

Sets the matrix using a given source quaternion.
Output
For the quaternion (x, y, z, w) the corresponding rotation matrix M is defined as follows:  		
    | 1 - 2y² - 2z²    2xy + 2wz      	2xz - 2wy     | 
M=  | 2xy - 2wz        1 - 2x² - 2z²    2yz + 2wx     |
    | 2xz + 2wy        2yz - 2wx        1 - 2x² - 2y² |

Arguments

  • const quat& q - Source quaternion.

void set ( const mat3& m ) #

Sets the matrix equal to the specified source matrix.

Arguments

  • const mat3& m - Source matrix.

void set ( const mat2& m ) #

Sets new matrix values using a given mat2 source matrix (2x2). The matrix elements are filled using corresponding elements of the source matrix.
Output
Resulting matrix: 
    | m00  	 m01	  0.0f | 
M=  | m10    m11      0.0f |
    | 0.0f   0.0f     1.0f |

Arguments

  • const mat2& m - Source matrix (2x2).

void get ( mat3x3_values& m ) const#

Returns the matrix values by filling the specified argument.

Arguments

  • mat3x3_values& m - The destination value to store matrix float values.

mat4x3_values & get ( ) #

Returns the value storing matrix float values.

Return value

The value storing matrix float values.

const mat4x3_values & get ( ) const#

Returns the constant value storing matrix float values.

Return value

The constant value storing matrix float values.

float & get ( int row, int column ) #

Returns the reference to the matrix element specified by a given row and column.

Arguments

  • int row - Row.
  • int column - Column.

Return value

Matrix element reference.

float get ( int row, int column ) const#

Returns the value of the matrix element specified by given row and column.

Arguments

  • int row - Row.
  • int column - Column.

Return value

Matrix element value.

void setColumn ( int column, const vec3& v ) #

Sets the specified column of the matrix using a given vec3 vector as a source.

Arguments

  • int column - Column.
  • const vec3& v - Source vector.

vec3 getColumn ( int column ) const#

Returns the specified matrix column.

Arguments

  • int column - Column.

Return value

The vec3 vector with column values.

void setDiagonal ( const vec3& v ) #

Sets the main diagonal of the matrix using a given vec3 vector as a source.

Arguments

  • const vec3& v - Source vector.

vec3 getDiagonal ( ) const#

Returns the main diagonal of the matrix.

Return value

The vec3 vector with the elements of the main diagonal.

void setIdentity ( ) #

Sets the matrix equal to the identity matrix.

quat getQuat ( ) const#

Returns the quaternion of the matrix values.

Return value

Quaternion.

void setRotate ( const vec3& axis, float angle ) #

Sets the rotation matrix for a given axis.

Arguments

  • const vec3& axis - Rotation axis.
  • float angle - Rotation angle, in degrees.

void setRotateX ( float angle ) #

Sets X rotation matrix.

Arguments

  • float angle - Rotation angle, in degrees.

void setRotateY ( float angle ) #

Sets Y rotation matrix.

Arguments

  • float angle - Rotation angle, in degrees.

void setRotateZ ( float angle ) #

Sets Z rotation matrix.

Arguments

  • float angle - Rotation angle, in degrees.

void setRow ( int row, const vec3& v ) #

Sets the specified row of the matrix using a given vec3 vector as a source.

Arguments

  • int row - Row.
  • const vec3& v - Source vector.

vec3 getRow ( int row ) const#

Returns the specified matrix row.

Arguments

  • int row - Row.

Return value

The vec3 vector with column values.

void setScale ( const vec3& v ) #

Fills the scaling matrix using a given vec3 source vector.
Output
Scaling matrix: 
    | v.x   	0.0f	  0.0f | 
S=  | 0.0f      v.y    	  0.0f |
    | 0.0f      0.0f      v.z  |

Arguments

  • const vec3& v - Source vector.

void setSkewSymmetric ( const vec3& v ) #

Fills the skew-symmetric matrix using a given vec3 source vector.
Output
Skew-symmetric matrix: 
    | 0.0f   	-v.z	   v.y | 
S=  | v.z       0.0f      -v.x |
    | -v.y      v.x       0.0f |

Arguments

  • const vec3& v - Source vector.

void setZero ( ) #

Sets all matrix elements equal to 0.

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 *.

mat3 & operator*= ( float v ) #

Performs scalar multiplication.

Arguments

  • float v - Scalar value.

Return value

Resulting matrix.

mat3 & operator*= ( const mat3& m ) #

Performs matrix multiplication.

Arguments

  • const mat3& m - Matrix.

Return value

Resulting matrix.

mat3 & operator+= ( const mat3& m ) #

Performs matrix addition.

Arguments

  • const mat3& m - Matrix.

Return value

Resulting matrix.

mat3 operator- ( ) const#

Performs matrix negation.

Return value

Resulting matrix.

mat3 & operator-= ( const mat3& m ) #

Performs matrix subtraction.

Arguments

  • const mat3& m - mat3 matrix.

Return value

Resulting matrix.

mat3 & operator= ( const mat3& m ) #

Performs matrix assignment. Destination matrix = Source matrix.

Arguments

  • const mat3& m - Source matrix

Return value

Result.

float operator[] ( int i ) const#

Performs array access to the matrix item using given item index.

Arguments

  • int i - Matrix item index.

Return value

Matrix item.

float & operator[] ( int i ) #

Performs array access to the matrix item reference using given item index.

Arguments

  • int i - Matrix item index.

Return value

Matrix item reference.

vec3 getAxisX ( ) const#

Returns the normalized vector representing the X axis. Call this method to get the right or left vector of the matrix:
Source code (C++)
matrix.getAxisX(); // the left vector
-matrix.getAxisX(); // the right vector

Return value

Vector representing the X axis.

vec3 getAxisY ( ) const#

Returns the normalized vector representing the Y axis. Call this method to get the back or forward vector of the matrix:
Source code (C++)
matrix.getAxisY(); // the back vector
-matrix.getAxisY(); // the forward vector

Return value

Vector representing the Y axis.

vec3 getAxisZ ( ) const#

Returns the normalized vector representing the Z axis. Call this method to get the up or down vector of the matrix:
Source code (C++)
matrix.getAxisZ(); // the up vector
-matrix.getAxisZ(); // the down vector

Return value

Vector representing the Z axis.

float trace ( ) const#

Returns the trace of the matrix.

Return value

Trace of the matrix.

float determinant ( ) const#

Returns the determinant of the matrix.

Return value

Determinant of the matrix.
Last update: 2023-06-17
Build: ()