2D Affine Transformsο
Header: cglm/affine2d.h
2D Transforms uses 2d suffix for naming. If there is no 2D suffix it is 3D function.
Initialize Transform Matricesο
Functions with _make prefix expect you donβt have a matrix and they create a matrix for you. You donβt need to pass identity matrix.
But other functions expect you have a matrix and you want to transform them. If you didnβt have any existing matrix you have to initialize matrix to identity before sending to transform functions.
Transforms Orderο
See Transforms Order to read similar section.
Table of contents (click to go):ο
Functions:
-
void glm_translate2d(mat3 m, vec2 v)ο
translate existing 2d transform matrix by v vector and stores result in same matrix
- Parameters:
- [in, out] m 2d affine transform[in] v translate vector [x, y]
-
void glm_translate2d_to(mat3 m, vec2 v, mat3 dest)ο
translate existing 2d transform matrix by v vector and store result in dest
- Parameters:
- [in] m 2d affine transform[in] v translate vector [x, y][out] dest translated matrix
-
void glm_translate2d_x(mat3 m, float x)ο
translate existing 2d transform matrix by x factor
- Parameters:
- [in, out] m 2d affine transform[in] x x factor
-
void glm_translate2d_y(mat3 m, float y)ο
translate existing 2d transform matrix by y factor
- Parameters:
- [in, out] m 2d affine transform[in] y y factor
-
void glm_translate2d_make(mat3 m, vec2 v)ο
creates NEW translate 2d transform matrix by v vector
- Parameters:
- [in, out] m affine transform[in] v translate vector [x, y]
-
void glm_scale2d_to(mat3 m, vec2 v, mat3 dest)ο
scale existing 2d transform matrix by v vector and store result in dest
- Parameters:
- [in] m affine transform[in] v scale vector [x, y][out] dest scaled matrix
-
void glm_scale2d_make(mat3 m, vec2 v)ο
creates NEW 2d scale matrix by v vector
- Parameters:
- [in, out] m affine transform[in] v scale vector [x, y]
-
void glm_scale2d(mat3 m, vec2 v)ο
scales existing 2d transform matrix by v vector and stores result in same matrix
- Parameters:
- [in, out] m affine transform[in] v translate vector [x, y]
-
void glm_scale2d_uni(mat3 m, float s)ο
applies uniform scale to existing 2d transform matrix v = [s, s] and stores result in same matrix
- Parameters:
- [in, out] m affine transform[in] s scale factor
-
void glm_rotate2d_make(mat3 m, float angle)ο
creates NEW rotation matrix by angle around Z axis
- Parameters:
- [in, out] m affine transform[in] angle angle (radians)
-
void glm_rotate2d(mat3 m, float angle)ο
rotate existing 2d transform matrix around Z axis by angle and store result in same matrix
- Parameters:
- [in, out] m affine transform[in] angle angle (radians)
-
void glm_rotate2d_to(mat3 m, float angle, mat3 dest)ο
rotate existing 2d transform matrix around Z axis by angle and store result in dest
- Parameters:
- [in] m affine transform[in] angle angle (radians)[out] dest rotated matrix