]> git.localhorst.tv Git - blank.git/blobdiff - src/camera.hpp
fix dec/rad error in camera FOV
[blank.git] / src / camera.hpp
index 88da8caf858aff87a3aacada9bd8cf865d2c300e..1477a47ad1703d5ce7e2f0eb07be5a486cc4d35a 100644 (file)
@@ -3,8 +3,6 @@
 
 #include <glm/glm.hpp>
 
-#include "model.hpp"
-
 
 namespace blank {
 
@@ -12,35 +10,20 @@ class Camera {
 
 public:
        Camera();
-       ~Camera();
-
-       Camera(const Camera &) = delete;
-       Camera &operator =(const Camera &) = delete;
-
-       glm::mat4 MakeMVP(const glm::mat4 &m) const { return vp * m; }
 
        void Viewport(int width, int height);
        void Viewport(int x, int y, int width, int height);
 
+       /// FOV in radians
        void FOV(float f);
        void Aspect(float r);
        void Aspect(float w, float h);
        void Clip(float near, float far);
 
-       void Position(glm::vec3 pos) { model.Position(pos); UpdateView(); }
-       void Move(glm::vec3 delta) { model.Move(delta); UpdateView(); }
-
-       // all angles in radians (full circle = 2π)
-       float Pitch() const { return model.Pitch(); }
-       void Pitch(float p) { model.Pitch(p); UpdateView(); }
-       void RotatePitch(float delta) { model.RotatePitch(delta); UpdateView(); }
-       float Yaw() const { return model.Yaw(); }
-       void Yaw(float y) { model.Yaw(y); UpdateView(); }
-       void RotateYaw(float delta) { model.RotateYaw(delta); UpdateView(); }
+       const glm::mat4 &Projection() { return projection; }
 
 private:
        void UpdateProjection();
-       void UpdateView();
 
 private:
        float fov;
@@ -48,11 +31,7 @@ private:
        float near_clip;
        float far_clip;
 
-       Model model;
-
        glm::mat4 projection;
-       glm::mat4 view;
-       glm::mat4 vp;
 
 };