From b15689cd50efe91c0fa64b96c0fa6405c34033ea Mon Sep 17 00:00:00 2001 From: Emma Broman Date: Mon, 24 Feb 2020 08:49:29 -0500 Subject: [PATCH] Make sure that the anchor node is always updated --- modules/autonavigation/autonavigationhandler.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/autonavigation/autonavigationhandler.cpp b/modules/autonavigation/autonavigationhandler.cpp index 8a449b8e73..c94a9660af 100644 --- a/modules/autonavigation/autonavigationhandler.cpp +++ b/modules/autonavigation/autonavigationhandler.cpp @@ -135,10 +135,12 @@ void AutoNavigationHandler::updateCamera(double deltaTime) { // When halfway along a curve, set anchor node in orbitalNavigator, to render // visible nodes and add possibility to navigate when we reach the end. - if (abs(relativeDisplacement - 0.5) < 0.001) { - std::string newAnchor = cps.end().referenceNode; - global::navigationHandler.orbitalNavigator().setAnchorNode(newAnchor); - } + std::string targetAnchor = cps.end().referenceNode; + std::string currentAnchor = global::navigationHandler.anchorNode()->identifier(); + + if ((relativeDisplacement > 0.5) && (currentAnchor != targetAnchor)) { + global::navigationHandler.orbitalNavigator().setAnchorNode(targetAnchor); + } glm::dvec3 cameraPosition = cps.getPositionAt(relativeDisplacement); glm::dquat cameraRotation = cps.getRotationAt(relativeDisplacement);