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