diff --git a/src/interaction/interactionhandler.cpp b/src/interaction/interactionhandler.cpp index 459759ac4d..b023c5bbcf 100644 --- a/src/interaction/interactionhandler.cpp +++ b/src/interaction/interactionhandler.cpp @@ -820,7 +820,11 @@ void OrbitalInteractionMode::updateCameraStateFromMouseStates() { glm::normalize(glm::quat_cast(glm::inverse(lookAtMat))); } { // Move position towards or away from focus node - newPosition += -posDiff * _truckMovementMouseState.velocity.get().y; + glm::dvec3 centerToBoundingSphere = + glm::normalize(posDiff) * + static_cast(_focusNode->boundingSphere().lengthf()); + newPosition += -(posDiff + centerToBoundingSphere) * + _truckMovementMouseState.velocity.get().y; } { // Do roll glm::dquat cameraRollRotation =