diff --git a/modules/skybrowser/include/targetbrowserpair.h b/modules/skybrowser/include/targetbrowserpair.h index 5168567617..cc0fdc2a9f 100644 --- a/modules/skybrowser/include/targetbrowserpair.h +++ b/modules/skybrowser/include/targetbrowserpair.h @@ -111,6 +111,7 @@ private: skybrowser::Animation _targetAnimation = skybrowser::Animation(glm::dvec3(0.0), glm::dvec3(0.0), 0.0); bool _targetIsAnimating = false; + bool _fovIsAnimating = false; // Dragging glm::dvec3 _startTargetPosition = glm::dvec3(0.0); diff --git a/modules/skybrowser/src/targetbrowserpair.cpp b/modules/skybrowser/src/targetbrowserpair.cpp index f7bd7bd4ec..8b63b54ec9 100644 --- a/modules/skybrowser/src/targetbrowserpair.cpp +++ b/modules/skybrowser/src/targetbrowserpair.cpp @@ -283,11 +283,18 @@ void TargetBrowserPair::incrementallyAnimateToCoordinate() { aimTargetGalactic(_targetNode->identifier(), _targetAnimation.newValue()); _fovAnimation.start(); _targetIsAnimating = false; + _fovIsAnimating = true; } + // After the target has animated to its position, animate the field of view if (_fovAnimation.isAnimating()) { _browser->setVerticalFov(_fovAnimation.newValue()); _targetRenderable->setVerticalFov(_browser->verticalFov()); } + else if (!_fovAnimation.isAnimating() && _fovIsAnimating) { + // Set the finished field of view + setVerticalFov(_fovAnimation.newValue()); + _fovIsAnimating = false; + } } void TargetBrowserPair::startFading(float goal, float fadeTime) {