diff --git a/modules/camera/src/vkcv/camera/PilotCameraController.cpp b/modules/camera/src/vkcv/camera/PilotCameraController.cpp index 45a9dc3de33201a39baea498e95c74e06a245812..5460858ab48d81252787b3c0141dd72982faca7d 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 f2652e94c0365adcc2b1f6dbaba0afa2e70a2529..cdd66cdb7fdd650d5112fe7bb4738f1fcded7783 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