29 lines
1.2 KiB
C
29 lines
1.2 KiB
C
|
#ifndef INCLUDE_WAYLANDCLIENT_MATRIX_H_
|
||
|
#define INCLUDE_WAYLANDCLIENT_MATRIX_H_
|
||
|
|
||
|
#include "types.h"
|
||
|
|
||
|
struct mat3x3 {
|
||
|
float m11, m21, m31, _p1;
|
||
|
float m12, m22, m32, _p2;
|
||
|
float m13, m23, m33, _p3;
|
||
|
};
|
||
|
|
||
|
#define IDENT3x3 \
|
||
|
(struct mat3x3){.m11 = 1.f, \
|
||
|
.m21 = 0.f, \
|
||
|
.m31 = 0.f, \
|
||
|
.m12 = 0.f, \
|
||
|
.m22 = 1.f, \
|
||
|
.m32 = 0.f, \
|
||
|
.m13 = 0.f, \
|
||
|
.m23 = 0.f, \
|
||
|
.m33 = 1.f}
|
||
|
|
||
|
struct mat3x3 multiply3x3(struct mat3x3 a, struct mat3x3 b);
|
||
|
struct mat3x3 translate3x3(struct Vec2 offset);
|
||
|
struct mat3x3 rotate3x3(float alpha);
|
||
|
struct mat3x3 scale3x3(struct Vec2 scale);
|
||
|
|
||
|
#endif // INCLUDE_WAYLANDCLIENT_MATRIX_H_
|