diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-05 23:52:18 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-05 23:52:18 +0000 |
commit | 4e10d57f83f719e02005fe41e70fe1a4721a9439 (patch) | |
tree | 44a7300f97e1a7c09ad560f2176e1c089da6fe20 /gfx/camera.h | |
parent | Move camera out of gl folder, it's not OpenGL specific (diff) | |
download | ilt-4e10d57f83f719e02005fe41e70fe1a4721a9439.tar.bz2 ilt-4e10d57f83f719e02005fe41e70fe1a4721a9439.tar.xz ilt-4e10d57f83f719e02005fe41e70fe1a4721a9439.zip |
Split core view definition out of Camera into Frustum
Diffstat (limited to 'gfx/camera.h')
-rw-r--r-- | gfx/camera.h | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/gfx/camera.h b/gfx/camera.h index d4fe6de..a52ec8b 100644 --- a/gfx/camera.h +++ b/gfx/camera.h @@ -1,19 +1,14 @@ #pragma once #include "config/types.h" +#include "frustum.h" #include <glm/glm.hpp> #include <maths.h> #include <ray.h> -class Camera { +class Camera : public Frustum { public: - Camera(GlobalPosition3D, Angle fov, Angle aspect, GlobalDistance zNear, GlobalDistance zFar); - - [[nodiscard]] glm::mat4 - getViewProjection() const - { - return viewProjection; - } + Camera(GlobalPosition3D position, Angle fov, Angle aspect, GlobalDistance near, GlobalDistance far); [[nodiscard]] Ray<GlobalPosition3D> unProject(const ScreenRelCoord &) const; @@ -70,25 +65,17 @@ public: return position; } - [[nodiscard]] auto & - getFrustumPlanes() const - { - return frustumPlanes; - } - [[nodiscard]] std::array<GlobalPosition4D, 4> extentsAtDist(GlobalDistance) const; [[nodiscard]] static Direction3D upFromForward(const Direction3D & forward); private: + Camera(GlobalPosition3D position, GlobalDistance near, GlobalDistance far, const glm::mat4 & view, + const glm::mat4 & projection); void updateView(); GlobalPosition3D position; Direction3D forward; Direction3D up; - GlobalDistance near, far; - glm::mat4 view, projection; - glm::mat4 viewProjection, inverseViewProjection; - std::array<glm::vec4, 6> frustumPlanes; }; |