aboutsummaryrefslogtreecommitdiffstats
path: root/camera.h
diff options
context:
space:
mode:
authorTomasz Kramkowski <tk@the-tk.com>2018-05-03 13:49:44 +0100
committerTomasz Kramkowski <tk@the-tk.com>2018-05-03 13:49:44 +0100
commita1e93038af0a739b9af57bd40ffbee6963dc3242 (patch)
treeeebceb8f833c55fe8c9a1e15d4c26afd7defdfbc /camera.h
parent362f70b04da8f8e9c0c159527bce7da65591c260 (diff)
downloadfaqe-a1e93038af0a739b9af57bd40ffbee6963dc3242.tar.gz
faqe-a1e93038af0a739b9af57bd40ffbee6963dc3242.tar.xz
faqe-a1e93038af0a739b9af57bd40ffbee6963dc3242.zip
Add a simple camera struct and camera controls
Diffstat (limited to 'camera.h')
-rw-r--r--camera.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/camera.h b/camera.h
new file mode 100644
index 0000000..6d8bb94
--- /dev/null
+++ b/camera.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com>
+ * SPDX-License-Identifier: MIT
+ */
+#ifndef CAMERA_H
+#define CAMERA_H
+
+#include "linmath.h"
+
+#define CAM_UP ((vec3){ 0.0, 1.0, 0.0 })
+
+struct camera {
+ vec3 pos;
+ float pitch;
+ float yaw;
+};
+
+void camera_clamp(struct camera *cam);
+void camera_dir(vec3 out, struct camera *cam);
+void camera_lookat(mat4x4 out, struct camera *cam);
+
+#endif // CAMERA_H