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 transfrom functions.
Transforms Order¶
See Transforms Order to read similar section.
Table of contents (click to go):¶
Functions:
glm_translate2d()
glm_translate2d_to()
glm_translate2d_x()
glm_translate2d_y()
glm_translate2d_make()
glm_scale2d_to()
glm_scale2d_make()
glm_scale2d()
glm_scale2d_uni()
glm_rotate2d_make()
glm_rotate2d()
glm_rotate2d_to()
-
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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[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 transfrom[in] angle angle (radians)[out] dest rotated matrix