From 4304701e5e8e64b0674e54438572454254c3672b Mon Sep 17 00:00:00 2001 From: Green Sky Date: Thu, 17 Feb 2022 00:53:21 +0100 Subject: [PATCH] fix camera, broken since f5eb0e0dfae681eeb58b8ed66ed3a000d846f306 --- .../src/mm/opengl/camera_3d.cpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/framework/opengl_renderer/src/mm/opengl/camera_3d.cpp b/framework/opengl_renderer/src/mm/opengl/camera_3d.cpp index 082025d..882f9a2 100644 --- a/framework/opengl_renderer/src/mm/opengl/camera_3d.cpp +++ b/framework/opengl_renderer/src/mm/opengl/camera_3d.cpp @@ -72,17 +72,18 @@ glm::mat4 Camera3D::getProjection() const { glm::vec3 Camera3D::getViewDir(void) const { glm::vec3 front {0,0,0}; { // TODO: optimize -#if 0 - // if y up/down - front.x += up.y * glm::cos(pitch) * glm::cos(-yaw); // TODO: y is yaw inverted?? - front.y += up.y * glm::sin(pitch); - front.z += up.y * glm::cos(pitch) * glm::sin(-yaw); -#else - // if z up/down - front.x += up.z * glm::cos(pitch) * glm::cos(yaw); - front.y += up.z * glm::cos(pitch) * glm::sin(yaw); - front.z += up.z * glm::sin(pitch); -#endif + if (up.y != 0.f) { + // if y up/down + front.x += up.y * glm::cos(pitch) * glm::cos(-yaw); // TODO: y is yaw inverted?? + front.y += up.y * glm::sin(pitch); + front.z += up.y * glm::cos(pitch) * glm::sin(-yaw); + } + if (up.z != 0.f) { + // if z up/down + front.x += up.z * glm::cos(pitch) * glm::cos(yaw); + front.y += up.z * glm::cos(pitch) * glm::sin(yaw); + front.z += up.z * glm::sin(pitch); + } } front = glm::normalize(front);