From e1ada5ab88e526b4529dc644791673cd045bd67f Mon Sep 17 00:00:00 2001 From: Emma Broman Date: Wed, 9 Jun 2021 13:41:55 +0200 Subject: [PATCH] Make sure relevant nodes list is being populated --- modules/autonavigation/autonavigationmodule.cpp | 7 ++++++- modules/autonavigation/autonavigationmodule.h | 3 ++- modules/autonavigation/curves/avoidcollisioncurve.cpp | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/autonavigation/autonavigationmodule.cpp b/modules/autonavigation/autonavigationmodule.cpp index 4b6c5c7e0f..c4d6406890 100644 --- a/modules/autonavigation/autonavigationmodule.cpp +++ b/modules/autonavigation/autonavigationmodule.cpp @@ -75,7 +75,12 @@ double AutoNavigationModule::minValidBoundingSphere() const { return _minValidBoundingSphere; } -const std::vector& AutoNavigationModule::relevantNodes() const { +const std::vector& AutoNavigationModule::relevantNodes() { + if (!_hasInitializedRelevantNodes) { + findRelevantNodes(); + _hasInitializedRelevantNodes = true; + } + return _relevantNodes; } diff --git a/modules/autonavigation/autonavigationmodule.h b/modules/autonavigation/autonavigationmodule.h index 50ff33b66c..59d99cfb4c 100644 --- a/modules/autonavigation/autonavigationmodule.h +++ b/modules/autonavigation/autonavigationmodule.h @@ -41,7 +41,7 @@ public: autonavigation::AutoNavigationHandler& AutoNavigationHandler(); double minValidBoundingSphere() const; - const std::vector& relevantNodes() const; + const std::vector& relevantNodes(); std::vector documentations() const override; scripting::LuaLibrary luaLibrary() const override; @@ -56,6 +56,7 @@ private: properties::StringListProperty _relevantNodeTags; std::vector _relevantNodes; + bool _hasInitializedRelevantNodes = false; }; } // namespace openspace diff --git a/modules/autonavigation/curves/avoidcollisioncurve.cpp b/modules/autonavigation/curves/avoidcollisioncurve.cpp index 784d331099..27cd3c691b 100644 --- a/modules/autonavigation/curves/avoidcollisioncurve.cpp +++ b/modules/autonavigation/curves/avoidcollisioncurve.cpp @@ -208,7 +208,8 @@ void AvoidCollisionCurve::removeCollisions(int step) { _points.insert(_points.begin() + i + 2, extraKnot); - removeCollisions(++step); + step++; + removeCollisions(step); break; } }