summaryrefslogtreecommitdiff
path: root/camera.cpp
diff options
context:
space:
mode:
authorquou <quou@disroot.org>2025-01-14 00:04:55 +1100
committerquou <quou@disroot.org>2025-01-14 00:04:55 +1100
commitfd488f9603f22db0312eadcdb93b7880922dc9a7 (patch)
tree15b7986e2c06eea57575f4c97811cbc65eaa120a /camera.cpp
parentdfa0b6de5a070d1be63d04574c3b8ce469518250 (diff)
misc refactoring
Diffstat (limited to 'camera.cpp')
-rw-r--r--camera.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/camera.cpp b/camera.cpp
new file mode 100644
index 0000000..59a604e
--- /dev/null
+++ b/camera.cpp
@@ -0,0 +1,25 @@
+#include "camera.hpp"
+
+void Camera::init(float vfov, const v3f& f, const v3f& p) {
+ fov = vfov;
+ forward = f;
+ position = p;
+ near = 0.1f;
+ far = 1000.0f;
+ asp = 1.0f;
+}
+
+void Camera::update() {
+ v3f up(0.0f, 1.0f, 0.0f);
+ view = m4f::lookat(position, position + forward, up);
+ proj = m4f::pers(fov, asp, near, far);
+}
+
+const m4f& Camera::get_view() const {
+ return view;
+}
+
+const m4f& Camera::get_proj() const {
+ return proj;
+}
+