3D Affine Transforms (common)ο
Common transform functions.
Table of contents (click to go):ο
Functions:
Functions documentationο
-
void glm_translate_make(mat4 m, vec3 v)ο
creates NEW translate transform matrix by v vector.
- Parameters:
- [in, out] m affine transform[in] v translate vector [x, y, z]
-
void glm_scale_to(mat4 m, vec3 v, mat4 dest)ο
scale existing transform matrix by v vector and store result in dest
- Parameters:
- [in] m affine transform[in] v scale vector [x, y, z][out] dest scaled matrix
-
void glm_scale_make(mat4 m, vec3 v)ο
creates NEW scale matrix by v vector
- Parameters:
- [out] m affine transform[in] v scale vector [x, y, z]
-
void glm_scale(mat4 m, vec3 v)ο
scales existing transform matrix by v vector and stores result in same matrix
- Parameters:
- [in, out] m affine transform[in] v scale vector [x, y, z]
-
void glm_scale_uni(mat4 m, float s)ο
applies uniform scale to existing transform matrix v = [s, s, s] and stores result in same matrix
- Parameters:
- [in, out] m affine transform[in] v scale factor
-
void glm_rotate_make(mat4 m, float angle, vec3 axis)ο
creates NEW rotation matrix by angle and axis, axis will be normalized so you donβt need to normalize it
- Parameters:
- [out] m affine transform[in] axis angle (radians)[in] axis axis
-
void glm_rotate_atm(mat4 m, vec3 pivot, float angle, vec3 axis)ο
- creates NEW rotation matrix by angle and axis at given pointthis creates rotation matrix, it assumes you donβt have a matrixthis should work faster than glm_rotate_at because it reduces one glm_translate.
- Parameters:
- [in, out] m affine transform[in] pivot pivot, anchor point, rotation center[in] angle angle (radians)[in] axis axis
-
void glm_decompose_scalev(mat4 m, vec3 s)ο
decompose scale vector
- Parameters:
- [in] m affine transform[out] s scale vector (Sx, Sy, Sz)
-
bool glm_uniscaled(mat4 m)ο
returns true if matrix is uniform scaled. This is helpful for creating normal matrix.
- Parameters:
- [in] m matrix
-
void glm_decompose_rs(mat4 m, mat4 r, vec3 s)ο
decompose rotation matrix (mat4) and scale vector [Sx, Sy, Sz] DONβT pass projected matrix here
- Parameters:
- [in] m affine transform[out] r rotation matrix[out] s scale matrix
-
void glm_decompose(mat4 m, vec4 t, mat4 r, vec3 s)ο
decompose affine transform, TODO: extract shear factors. DONβT pass projected matrix here
- Parameters:
- [in] m affine transform[out] t translation vector[out] r rotation matrix (mat4)[out] s scaling vector [X, Y, Z]