diff options
author | 2025-02-07 11:27:18 -0500 | |
---|---|---|
committer | 2025-02-07 11:27:18 -0500 | |
commit | 4da7be39827ea5888ef9c97b1aadf61b0d76347c (patch) | |
tree | 15d0ff8f8bcb0e871efb1b2e65c2bc8d07b17565 /mons_3d/include/transform.h |
initial commit (lol)
Diffstat (limited to 'mons_3d/include/transform.h')
-rw-r--r-- | mons_3d/include/transform.h | 36 |
1 files changed, 36 insertions, 0 deletions
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 |