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
| Matrix3 |
A 3x3 matrix. |
| Matrix4 |
A 4x4 matrix. |
| Matrix2x3 |
A 2x3 matrix. |
| Matrix3x2 |
A 3x2 matrix. |
| Matrix3x4 |
A 3x4 matrix. |
| Matrix4x3 |
A 4x3 matrix. |
| Vector2 |
A 2D vector. |
| Vector3 |
A 3D vector. |
| Vector4 |
A 4D vector. |