From ab550ac1c7b345cefa88af82e1888a685af7c993 Mon Sep 17 00:00:00 2001 From: Vanessa Karolek <vaka1997@uni-koblenz.de> Date: Wed, 23 Jun 2021 18:02:56 +0200 Subject: [PATCH] [#60][Fix] fix scroll input bug Fixed scroll input being not considered if a gamepad is connected --- modules/camera/src/vkcv/camera/PilotCameraController.cpp | 5 +++++ .../camera/src/vkcv/camera/TrackballCameraController.cpp | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/camera/src/vkcv/camera/PilotCameraController.cpp b/modules/camera/src/vkcv/camera/PilotCameraController.cpp index 45a9dc3d..5460858a 100644 --- a/modules/camera/src/vkcv/camera/PilotCameraController.cpp +++ b/modules/camera/src/vkcv/camera/PilotCameraController.cpp @@ -25,6 +25,11 @@ namespace vkcv::camera { } void PilotCameraController::changeFov(double offset, Camera &camera){ + // update only if there is (valid) input + if (offset == 0.0) { + return; + } + float fov = camera.getFov(); float fov_range = m_fov_max - m_fov_min; float fov_stepsize = glm::radians(fov_range) / static_cast<float>(m_fov_nsteps); diff --git a/modules/camera/src/vkcv/camera/TrackballCameraController.cpp b/modules/camera/src/vkcv/camera/TrackballCameraController.cpp index f2652e94..cdd66cdb 100644 --- a/modules/camera/src/vkcv/camera/TrackballCameraController.cpp +++ b/modules/camera/src/vkcv/camera/TrackballCameraController.cpp @@ -32,10 +32,15 @@ namespace vkcv::camera { } void TrackballCameraController::updateRadius(double offset, Camera &camera) { + // update only if there is (valid) input + if (offset == 0.0) { + return; + } + glm::vec3 cameraPosition = camera.getPosition(); glm::vec3 cameraCenter = camera.getCenter(); float radius = glm::length(cameraCenter - cameraPosition); // get current camera radius - setRadius(radius - offset * m_scrollSensitivity); + setRadius(radius - static_cast<float>(offset) * m_scrollSensitivity); } void TrackballCameraController::updateCamera(double deltaTime, Camera &camera) { @@ -109,6 +114,5 @@ namespace vkcv::camera { double leftYVal = glm::clamp((abs(stickLeftY)-threshold), 0.0, 1.0) * std::copysign(1.0, stickLeftY) * sensitivity * frametime; updateRadius(-leftYVal, camera); - } } \ No newline at end of file -- GitLab