From 4ab094e681ae1bca2adaeae7579e904b50793a40 Mon Sep 17 00:00:00 2001 From: Emil Axelsson Date: Tue, 13 Aug 2019 08:50:27 +0200 Subject: [PATCH] Fix camera jump when switching anchor when time is progressing --- src/interaction/orbitalnavigator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/interaction/orbitalnavigator.cpp b/src/interaction/orbitalnavigator.cpp index 3acb05c013..d4e1e5feff 100644 --- a/src/interaction/orbitalnavigator.cpp +++ b/src/interaction/orbitalnavigator.cpp @@ -366,6 +366,7 @@ glm::quat OrbitalNavigator::anchorNodeToCameraRotation() const { void OrbitalNavigator::resetVelocities() { _mouseStates.resetVelocities(); _joystickStates.resetVelocities(); + _websocketStates.resetVelocities(); _scriptStates.resetVelocities(); } @@ -587,10 +588,17 @@ void OrbitalNavigator::setAnchorNode(const SceneGraphNode* anchorNode) { if (!_anchorNode) { _directlySetStereoDistance = true; } + if (_anchorNode != anchorNode) { + resetVelocities(); + } _anchorNode = anchorNode; if (_anchorNode) { + _previousAnchorNodePosition = _anchorNode->worldPosition(); + _previousAnchorNodeRotation = glm::quat_cast(_anchorNode->worldRotationMatrix()); + } + else { _previousAnchorNodePosition.reset(); _previousAnchorNodeRotation.reset(); }