From 4fb3a5ae0f53a6fa3f4901f92e64f1de8d2dbb17 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 29 Apr 2023 18:50:02 +0100 Subject: Dunno how, but some DOS new lines got in here! --- gfx/gl/camera.h | 156 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 78 insertions(+), 78 deletions(-) (limited to 'gfx/gl/camera.h') diff --git a/gfx/gl/camera.h b/gfx/gl/camera.h index b5611f8..5c168e7 100644 --- a/gfx/gl/camera.h +++ b/gfx/gl/camera.h @@ -1,78 +1,78 @@ -#pragma once - -#include -#include -#include - -class Camera { -public: - Camera(glm::vec3 pos, float fov, float aspect, float zNear, float zFar); - - [[nodiscard]] glm::mat4 - getViewProjection() const - { - return viewProjection; - } - [[nodiscard]] Ray unProject(const glm::vec2 &) const; - - void - setPosition(const glm::vec3 & p) - { - position = p; - updateView(); - } - void - setForward(const glm::vec3 & f) - { - setForward(f, upFromForward(f)); - } - void - setForward(const glm::vec3 & f, const glm::vec3 & u) - { - forward = f; - up = u; - updateView(); - } - void - setView(const glm::vec3 & p, const glm::vec3 & f) - { - position = p; - setForward(f); - } - void - setView(const glm::vec3 & p, const glm::vec3 & f, const glm::vec3 & u) - { - position = p; - setView(f, u); - } - void - lookAt(const glm::vec3 & target) - { - setForward(glm::normalize(target - position)); - } - [[nodiscard]] auto - getForward() const - { - return forward; - } - [[nodiscard]] auto - getPosition() const - { - return position; - } - - [[nodiscard]] std::array extentsAtDist(float) const; - - [[nodiscard]] static glm::vec3 upFromForward(const glm::vec3 & forward); - -private: - void updateView(); - - glm::vec3 position; - glm::vec3 forward; - glm::vec3 up; - - float near, far; - glm::mat4 projection; - glm::mat4 viewProjection, inverseViewProjection; -}; +#pragma once + +#include +#include +#include + +class Camera { +public: + Camera(glm::vec3 pos, float fov, float aspect, float zNear, float zFar); + + [[nodiscard]] glm::mat4 + getViewProjection() const + { + return viewProjection; + } + [[nodiscard]] Ray unProject(const glm::vec2 &) const; + + void + setPosition(const glm::vec3 & p) + { + position = p; + updateView(); + } + void + setForward(const glm::vec3 & f) + { + setForward(f, upFromForward(f)); + } + void + setForward(const glm::vec3 & f, const glm::vec3 & u) + { + forward = f; + up = u; + updateView(); + } + void + setView(const glm::vec3 & p, const glm::vec3 & f) + { + position = p; + setForward(f); + } + void + setView(const glm::vec3 & p, const glm::vec3 & f, const glm::vec3 & u) + { + position = p; + setView(f, u); + } + void + lookAt(const glm::vec3 & target) + { + setForward(glm::normalize(target - position)); + } + [[nodiscard]] auto + getForward() const + { + return forward; + } + [[nodiscard]] auto + getPosition() const + { + return position; + } + + [[nodiscard]] std::array extentsAtDist(float) const; + + [[nodiscard]] static glm::vec3 upFromForward(const glm::vec3 & forward); + +private: + void updateView(); + + glm::vec3 position; + glm::vec3 forward; + glm::vec3 up; + + float near, far; + glm::mat4 projection; + glm::mat4 viewProjection, inverseViewProjection; +}; -- cgit v1.2.3