Unigine::Math::mat3 Struct
Header: | #include <UnigineMathLib.h> |
mat3 Class
Members
mat3 ( ) #
Default constructor. Produces an identity matrix.mat3 ( float v ) #
Constructor. Initializes the matrix using a given scalar value.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.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 mat3 & col0, const mat3 & col1, const mat3 & col2 ) #
Constructor. Initializes the matrix using given three vec3 vectors.Resulting matrix:
| col0.x col1.x col2.x |
M= | col0.y col1.y col2.y |
| col0.z col1.z col2.z |
Arguments
- const mat3 & col0 - Source vector for the first column.
- const mat3 & col1 - Source vector for the second column
- const mat3 & col2 - Source vector for the third column
mat3 ( const quat & q ) #
Constructor. Initializes the matrix using a given source quaternion.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 ( const float * m ) #
Constructor. Initializes the vector using a given pointer to the array of float elements.Resulting matrix:
| m[0] m[3] m[6] |
M= | m[1] m[4] m[7] |
| m[2] m[5] m[8] |
| 0.0f 0.0f 0.0f |
Arguments
- const float * m - Pointer to the array of float elements.
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 float * m ) #
Sets new matrix values using a pointer to the source matrix.Arguments
- const float * m - Pointer to the source matrix.
void set ( const quat & q ) #
Sets the matrix using a given source quaternion.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.Resulting matrix:
| m00 m01 0.0f |
M= | m10 m11 0.0f |
| 0.0f 0.0f 1.0f |
Arguments
- const mat2 & m - Source matrix (2x2).
float * get ( ) #
Returns the pointer to the matrix.Return value
Pointer to the matrix.const float * get ( ) #
Returns the constant pointer to the matrix.Return value
Constant pointer to the matrix.float & get ( int row, int column ) #
Returns the reference to the matrix element specified by given row and column.Arguments
- int row - Row.
- int column - Column.
Return value
Matrix element reference.float get ( int row, int column ) #
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 get ( float * m ) #
Fills the destination matrix, specified by the given pointer, with matrix values.Arguments
- float * m - Destination matrix pointer.
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 ) #
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 ( ) #
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 ( ) #
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 ) #
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.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.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 * ( ) #
Performs type conversion to const float *.const void * operator const void * ( ) #
Performs type conversion to const void *.float * operator float * ( ) #
Performs type conversion to float *.void * operator void * ( ) #
Performs type conversion to void *.mat3 & operator*= ( float v ) #
Performs scalar multiplication.Arguments
- float v - Scalar value.
Return value
Resulting matrix.mat3 & operator*= ( vec2 v ) #
Performs vector multiplication.Arguments
- vec2 v - Vector.
Return value
Resulting matrix.mat3 & operator*= ( vec3 v ) #
Performs vector multiplication.Arguments
- vec3 v - Vector.
Return value
Resulting matrix.mat3 & operator*= ( dvec2 v ) #
Performs vector multiplication.Arguments
- dvec2 v - Vector.
Return value
Resulting matrix.mat3 & operator*= ( dvec3 v ) #
Performs vector multiplication.Arguments
- dvec3 v - Vector.
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- ( ) #
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 ) #
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.void sse ( const __m128 & v0, const __m128 & v1, const __m128 & v2 ) #
Sets the values of the matrix elements using three given 128-bit variables as a source.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & v0 - 128-bit variable containing the following matrix elements: m00, m10, m20.
- const __m128 & v1 - 128-bit variable containing the following matrix elements: m01, m11, m21.
- const __m128 & v2 - 128-bit variable containing the following matrix elements: m02, m12, m22.
void sse0 ( const __m128 & v ) #
Sets the values of matrix elements m00, m10, m20 using a given 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & v - 128-bit variable containing the following matrix elements: m00, m10, m20.
__m128 sse0 ( ) #
Returns the values of matrix elements m00, m10, m20 as a 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Return value
128-bit variable containing the following matrix elements: m00, m10, m20.__m128 sse1 ( ) #
Returns the values of matrix elements m01, m11, m21 as a 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Return value
128-bit variable containing the following matrix elements: m01, m11, m21.void sse1 ( const __m128 & v ) #
Sets the values of matrix elements m01, m11, m21 using a given 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & v - 128-bit variable containing the following matrix elements: m01, m11, m21.
__m128 sse2 ( ) #
Returns the values of matrix elements m02, m12, m22 as a 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Return value
128-bit variable containing the following matrix elements: m02, m12, m22.void sse2 ( const __m128 & v ) #
Sets the values of matrix elements m02, m12, m22 using a given 128-bit variable.We do not recommend to use this method unless you have a clear understanding of SSE2.
Arguments
- const __m128 & v - 128-bit variable containing the following matrix elements: m02, m12, m22.
vec3 getAxisX ( ) const#
Returns the normalized vector representing the X axis. Call this method to get the right or left vector of the matrix: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: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:matrix.getAxisZ(); // the up vector
-matrix.getAxisZ(); // the down vector
Return value
Vector representing the Z axis.Last update:
2020-11-24
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)