pawengine/matrix.h
2025-02-09 18:48:25 +01:00

28 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_