Crate vecmath[−][src]
A simple and generic library for vector math.
Notice that row major is mathematical standard, while OpenGL uses column major format. This library supports both formats, prefixing functions with ‘row_’ or ‘col_’.
For row major affine transforms, use Matrix2x3
(2D) and Matrix3x4
(3D).
For column major affine transforms, use Matrix3x2
(2D) and Matrix4x3
(3D).
If you are using Matrix3
or Matrix4
,
then you need to pick either row or column major.
Notice that there are two kinds of transforms: Positions and vectors.
The vector transforms ignores the translate component.
For example, row_mat2x3_transform_pos2
transforms a position.
row_mat2x3_transform_vec2
transforms a vector.
Modules
traits | Various useful traits |
Functions
col_mat2x3_row | Returns a row vector of a column matrix. |
col_mat3_mul | Multiplies two matrices. |
col_mat3_mul_col | Computes column vector in column matrix product. |
col_mat3_row | Returns a row vector of a column matrix. |
col_mat3_transform | Transforms a 3D vector through a matrix. |
col_mat3_transform_pos2 | Transforms a 2D position through column matrix. |
col_mat3_transform_vec2 | Transforms a 2D vector through column matrix. |
col_mat3x2_mul | Multiplies two matrices. |
col_mat3x2_mul_col | Computes column vector in column matrix product. |
col_mat3x2_row | Returns a row vector of a column matrix. |
col_mat3x2_transform_pos2 | Transforms a 2D position through matrix. |
col_mat3x2_transform_vec2 | Transforms a 2D vector through matrix. |
col_mat3x4_row | Returns a row vector of a column matrix. |
col_mat4_mul | Multiplies two matrices. |
col_mat4_mul_col | Computes column vector in column matrix product. |
col_mat4_row | Returns a row vector of a column matrix. |
col_mat4_transform | Transforms a 4D vector through a matrix. |
col_mat4x3_mul | Multiplies two matrices. |
col_mat4x3_mul_col | Computes column vector in column matrix product. |
col_mat4x3_row | Returns a column vector of a row matrix. |
col_mat4x3_transform_pos3 | Transforms a 3D position through matrix. |
col_mat4x3_transform_vec3 | Transforms a 3D vector through matrix. |
mat2x3_add | Adds two matrices. |
mat2x3_cast | Converts to another matrix type. |
mat2x3_det | Computes the determinant of a matrix. |
mat2x3_id | Constructs identity matrix. |
mat2x3_inv | Computes the inverse of a 2x3 matrix. |
mat2x3_inv_det | Computes inverse determinant of a 2x3 matrix. |
mat2x3_sub | Subtracts ‘b’ from ‘a’. |
mat2x3_transposed | Constructs the transpose of a matrix. |
mat3_add | Adds two matrices. |
mat3_cast | Converts to another matrix type. |
mat3_det | Computes the determinant of a matrix. |
mat3_id | Constructs identity matrix. |
mat3_inv | Computes the inverse of a 3x3 matrix. |
mat3_inv_det | Computes inverse determinant of a 3x3 matrix. |
mat3_sub | Subtracts ‘b’ from ‘a’. |
mat3_transposed | Constructs the transpose of a matrix. |
mat3x2_add | Adds two matrices. |
mat3x2_cast | Converts to another matrix type. |
mat3x2_det | Computes the determinant of a matrix. |
mat3x2_id | Constructs identity matrix. |
mat3x2_inv | Computes the inverse of a 3x2 matrix. |
mat3x2_inv_det | Computes inverse determinant of a 3x2 matrix. |
mat3x2_sub | Subtracts ‘b’ from ‘a’. |
mat3x2_transposed | Constructs the transpose of a matrix. |
mat3x4_add | Adds two matrices. |
mat3x4_cast | Converts to another matrix type. |
mat3x4_det | Computes the determinant of a matrix. |
mat3x4_id | Constructs identity matrix. |
mat3x4_inv | Computes the inverse of a 3x4 matrix. |
mat3x4_inv_det | Computes inverse determinant of a 3x4 matrix. |
mat3x4_sub | Subtracts ‘b’ from ‘a’. |
mat3x4_transposed | Constructs the transpose of a matrix. |
mat4_add | Adds two matrices. |
mat4_cast | Converts to another matrix type. |
mat4_det | Computes the determinant of a 4x4 matrix. |
mat4_id | Constructs identity matrix. |
mat4_inv | Computes the inverse of a 4x4 matrix. |
mat4_inv_det | Computes the inverse determinant of a 4x4 matrix. |
mat4_sub | Subtracts ‘b’ from ‘a’. |
mat4_transposed | Constructs the transpose of a matrix. |
mat4x3_add | Adds two matrices. |
mat4x3_cast | Converts to another matrix type. |
mat4x3_det | Computes the determinant of a matrix. |
mat4x3_id | Constructs identity matrix. |
mat4x3_inv | Computes the inverse of a 4x3 matrix. |
mat4x3_inv_det | Computes inverse determinant of a 4x3 matrix. |
mat4x3_sub | Subtracts ‘b’ from ‘a’. |
mat4x3_transposed | Constructs the transpose of a matrix. |
row_mat2x3_col | Returns a column vector of a row matrix. |
row_mat2x3_mul | Multiplies two matrices. |
row_mat2x3_mul_row | Computes row vector in row matrix product. |
row_mat2x3_transform_pos2 | Transforms a 2D position through matrix. |
row_mat2x3_transform_vec2 | Transforms a 2D vector through matrix. |
row_mat3_col | Returns a column vector of a row matrix. |
row_mat3_mul | Multiplies two matrices. |
row_mat3_mul_row | Computes row vector in row matrix product. |
row_mat3_transform | Transforms a 3D vector through a matrix. |
row_mat3_transform_pos2 | Transforms a 2D position through row matrix. |
row_mat3_transform_vec2 | Transforms a 2D vector through row matrix. |
row_mat3x2_col | Returns a column vector of a row matrix. |
row_mat3x4_col | Returns a column vector of a row matrix. |
row_mat3x4_mul | Multiplies two matrices. |
row_mat3x4_mul_row | Computes row vector in row matrix product. |
row_mat3x4_transform_pos3 | Transforms a 3D position through matrix. |
row_mat3x4_transform_vec3 | Transforms a 3D vector through matrix. |
row_mat4_col | Returns a column vector of a row matrix. |
row_mat4_mul | Multiplies two matrices. |
row_mat4_mul_row | Computes row vector in row matrix product. |
row_mat4_transform | Transforms a 4D vector through a matrix. |
row_mat4x3_col | Returns a column vector of a row matrix. |
vec2_add | Adds two vectors. |
vec2_cast | Converts to another vector type. |
vec2_cross | Computes the cross product. |
vec2_dot | Computes the dot product. |
vec2_inv_len | Computes the inverse length of a vector. |
vec2_len | Computes the length of vector. |
vec2_mul | Multiplies two vectors component wise. |
vec2_neg | Negates the vector. |
vec2_normalized | Computes the normalized. |
vec2_normalized_sub | Computes the normalized difference between two vectors. |
vec2_scale | Multiplies the vector with a scalar. |
vec2_square_len | Computes the square length of a vector. |
vec2_sub | Subtracts ‘b’ from ‘a’. |
vec3_add | Adds two vectors. |
vec3_cast | Converts to another vector type. |
vec3_cross | Computes the cross product. |
vec3_dot | Computes the dot product. |
vec3_dot_pos2 | Computes transformed position component. |
vec3_dot_vec2 | Computes transformed vector component. |
vec3_inv_len | Computes the inverse length of a vector. |
vec3_len | Computes the length of vector. |
vec3_mul | Multiplies two vectors component wise. |
vec3_neg | Negates the vector. |
vec3_normalized | Computes the normalized. |
vec3_normalized_sub | Computes the normalized difference between two vectors. |
vec3_scale | Multiplies the vector with a scalar. |
vec3_square_len | Computes the square length of a vector. |
vec3_sub | Subtracts ‘b’ from ‘a’. |
vec4_add | Adds two vectors. |
vec4_cast | Converts to another vector type. |
vec4_dot | Computes the dot product. |
vec4_dot_pos3 | Computes transformed position component. |
vec4_dot_vec3 | Computes transformed vector component. |
vec4_inv_len | Computes the inverse length of a vector. |
vec4_len | Computes the length of vector. |
vec4_mul | Multiplies two vectors component wise. |
vec4_neg | Negates the vector. |
vec4_normalized | Computes the normalized. |
vec4_normalized_sub | Computes the normalized difference between two vectors. |
vec4_scale | Multiplies the vector with a scalar. |
vec4_square_len | Computes the square length of a vector. |
vec4_sub | Subtracts ‘b’ from ‘a’. |
Type Definitions
Matrix2x3 | A 2x3 matrix. |
Matrix3 | A 3x3 matrix. |
Matrix3x2 | A 3x2 matrix. |
Matrix3x4 | A 3x4 matrix. |
Matrix4 | A 4x4 matrix. |
Matrix4x3 | A 4x3 matrix. |
Vector2 | A 2D vector. |
Vector3 | A 3D vector. |
Vector4 | A 4D vector. |