summaryrefslogtreecommitdiff
path: root/camera.cpp
diff options
context:
space:
mode:
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;
+}
+