summaryrefslogtreecommitdiff
path: root/gfx/gl/camera.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-11-16 00:07:48 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-11-16 00:07:48 +0000
commitb7fadd730a78671a0eaf55c36df24c04661ef2c3 (patch)
treea9d5bce62b3c6e42008d7e0f637665aa97b73764 /gfx/gl/camera.cpp
parentDon't write null value for pointers (diff)
downloadilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.tar.bz2
ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.tar.xz
ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.zip
Swap y,z axis
This was a pain... but all the coords make much more sense now and a lot of mystery negation has disappeared.
Diffstat (limited to 'gfx/gl/camera.cpp')
-rw-r--r--gfx/gl/camera.cpp42
1 files changed, 2 insertions, 40 deletions
diff --git a/gfx/gl/camera.cpp b/gfx/gl/camera.cpp
index c98ff70..c957b2c 100644
--- a/gfx/gl/camera.cpp
+++ b/gfx/gl/camera.cpp
@@ -1,9 +1,9 @@
#include "camera.h"
#include <glm/gtx/transform.hpp>
+#include <maths.h>
Camera::Camera(glm::vec3 pos, float fov, float aspect, float zNear, float zFar) :
- pos {pos}, forward {0.0F, 0.0F, 1.0F}, up {0.0F, 1.0F, 0.0F}, projection {
- glm::perspective(fov, aspect, zNear, zFar)}
+ pos {pos}, forward {::north}, up {::up}, projection {glm::perspective(fov, aspect, zNear, zFar)}
{
}
@@ -12,41 +12,3 @@ Camera::GetViewProjection() const
{
return projection * glm::lookAt(pos, pos + forward, up);
}
-
-void
-Camera::MoveForward(float amt)
-{
- pos += forward * amt;
-}
-
-void
-Camera::SlideForward(float amt)
-{
- pos += forward * amt * glm::vec3 {1, 0, 1};
-}
-
-void
-Camera::MoveRight(float amt)
-{
- pos += glm::cross(up, forward) * amt;
-}
-
-void
-Camera::Pitch(float angle)
-{
- const auto 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
-Camera::RotateY(float angle)
-{
- static constexpr glm::vec3 UP {0.0F, 1.0F, 0.0F};
-
- const auto 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)));
-}