summaryrefslogtreecommitdiff
path: root/src/engine/M_camera.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/M_camera.c')
-rw-r--r--src/engine/M_camera.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/engine/M_camera.c b/src/engine/M_camera.c
new file mode 100644
index 0000000..58414a7
--- /dev/null
+++ b/src/engine/M_camera.c
@@ -0,0 +1,30 @@
+#include "M_camera.h"
+
+void M_initCamera(M_Camera *camera, vec3 up)
+{
+ glm_vec3_zero(camera->pos);
+ glm_vec3_copy(
+ up,
+ camera->up
+ );
+ glm_vec3_copy(
+ (vec3){0.0f, 0.0f, -1.0f},
+ camera->direction
+ );
+}
+
+inline void M_cameraViewMatrix(M_Camera* camera)
+{
+ vec3 target;
+ glm_vec3_add(
+ camera->pos,
+ camera->direction,
+ target
+ );
+ glm_lookat(
+ camera->pos,
+ target,
+ camera->up,
+ camera->view_matrix
+ );
+}