From 4da7be39827ea5888ef9c97b1aadf61b0d76347c Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Fri, 7 Feb 2025 11:27:18 -0500 Subject: initial commit (lol) --- mons_3d/include/transform.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 mons_3d/include/transform.h (limited to 'mons_3d/include/transform.h') diff --git a/mons_3d/include/transform.h b/mons_3d/include/transform.h new file mode 100644 index 0000000..840dfc2 --- /dev/null +++ b/mons_3d/include/transform.h @@ -0,0 +1,36 @@ +#ifndef MONS_TRANSFORM_H +#define MONS_TRANSFORM_H + +#include "mons_math/mat4.h" +#include "mons_math/vec3.h" +#include "mons_math/quat.h" + +typedef struct mons_transform { + mons_vec3 translation; + mons_vec3 scale; + mons_quat rotation; +} mons_transform; + +void mons_transform_translate(mons_transform *transform, struct mons_vec3 translation); +void mons_transform_rotate(mons_transform *transform, struct mons_quat rotation); +void mons_transform_scale(mons_transform *transform, struct mons_vec3 scale); + +mons_mat4 mons_transform_matrix(mons_transform transform); + +void mons_transform_set_translation(mons_transform *transform, struct mons_vec3 translation); +void mons_transform_set_rotation(mons_transform *transform, struct mons_quat rotation); +void mons_transform_set_scale(mons_transform *transform, struct mons_vec3 scale); + +struct mons_vec3 mons_transform_forward(mons_transform transform); +struct mons_vec3 mons_transform_up(mons_transform transform); +struct mons_vec3 mons_transform_right(mons_transform transform); + +void mons_transform_look_at(mons_transform *transform, mons_vec3 point, mons_vec3 up); + +#define MONS_TRANSFORM_IDENTITY (mons_transform) {\ + MONS_VEC3_ZERO,\ + MONS_VEC3_ONE,\ + MONS_QUAT_IDENTITY,\ +} + +#endif -- cgit v1.2.3