]> git.localhorst.tv Git - blank.git/blobdiff - src/camera.cpp
fix dec/rad error in camera FOV
[blank.git] / src / camera.cpp
index c5283bd7f77bf86729b688342265dc4919bab47f..7bf15bf66ccc1209101ce711c2b69c5cf14d72cb 100644 (file)
@@ -1,5 +1,7 @@
 #include "camera.hpp"
 
+#include "geometry.hpp"
+
 #include <GL/glew.h>
 #include <glm/gtc/matrix_transform.hpp>
 
@@ -7,14 +9,11 @@
 namespace blank {
 
 Camera::Camera()
-: FPSController()
-, fov(45.0f)
+: fov(PI_0p25)
 , aspect(1.0f)
 , near_clip(0.1f)
-, far_clip(100.0f)
-, projection(glm::perspective(fov, aspect, near_clip, far_clip))
-, view(glm::inverse(Transform()))
-, vp(projection) {
+, far_clip(256.0f)
+, projection(glm::perspective(fov, aspect, near_clip, far_clip)) {
 
 }
 
@@ -48,21 +47,6 @@ void Camera::Clip(float near, float far) {
        UpdateProjection();
 }
 
-Ray Camera::Aim() const {
-       const glm::mat4 inv_vp(glm::inverse(vp));
-       glm::vec4 from = inv_vp * glm::vec4(0.0f, 0.0f, -1.0f, 1.0f);
-       from /= from.w;
-       glm::vec4 to = inv_vp * glm::vec4(0.0f, 0.0f, 1.0f, 1.0f);
-       to /= to.w;
-       return Ray{ glm::vec3(from), glm::normalize(glm::vec3(to - from)) };
-}
-
-
-void Camera::Update(int dt) {
-       FPSController::Update(dt);
-       view = glm::inverse(Transform());
-       vp = projection * view;
-}
 
 void Camera::UpdateProjection() {
        projection = glm::perspective(fov, aspect, near_clip, far_clip);