blob: 840dfc2ee884dd44745c723d1c758de240dfacdf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
|