From 43a87590f45aa6e55724d30d0c2d0d34b407a57e Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 17 Jan 2021 18:54:26 +0000 Subject: First cut modernizing and sanitizing --- camera.h | 49 +++++++------------------------------------------ 1 file changed, 7 insertions(+), 42 deletions(-) (limited to 'camera.h') diff --git a/camera.h b/camera.h index 86b59d1..3c1e40c 100644 --- a/camera.h +++ b/camera.h @@ -2,53 +2,18 @@ #define CAMERA_INCLUDED_H #include -#include -struct Camera { +class Camera { public: - Camera(const glm::vec3 & pos, float fov, float aspect, float zNear, float zFar) - { - this->pos = pos; - this->forward = glm::vec3(0.0f, 0.0f, 1.0f); - this->up = glm::vec3(0.0f, 1.0f, 0.0f); - this->projection = glm::perspective(fov, aspect, zNear, zFar); - } + Camera(glm::vec3 pos, float fov, float aspect, float zNear, float zFar); - inline glm::mat4 - GetViewProjection() const - { - return projection * glm::lookAt(pos, pos + forward, up); - } + glm::mat4 GetViewProjection() const; - // void MoveForward(float amt) - //{ - // pos += forward * amt; - //} + void MoveForward(float amt); + void MoveRight(float amt); + void Pitch(float angle); + void RotateY(float angle); - // void MoveRight(float amt) - //{ - // pos += glm::cross(up, forward) * amt; - //} - - // void Pitch(float angle) - //{ - // glm::vec3 right = glm::normalize(glm::cross(up, forward)); - - // forward = glm::vec3(glm::normalize(glm::rotate(angle, right) * glm::vec4(forward, 0.0))); - // up = glm::normalize(glm::cross(forward, right)); - //} - - // void RotateY(float angle) - //{ - // static const glm::vec3 UP(0.0f, 1.0f, 0.0f); - - // glm::mat4 rotation = glm::rotate(angle, UP); - - // forward = glm::vec3(glm::normalize(rotation * glm::vec4(forward, 0.0))); - // up = glm::vec3(glm::normalize(rotation * glm::vec4(up, 0.0))); - //} - -protected: private: glm::mat4 projection; glm::vec3 pos; -- cgit v1.2.3