From 8498b3fd6d01c72aca6415fdf4c8d00fcfe2adb6 Mon Sep 17 00:00:00 2001 From: Emma Broman Date: Wed, 18 Nov 2020 13:49:38 +0100 Subject: [PATCH] Add Lua function to ask module if a camera path is running --- modules/autonavigation/autonavigationmodule.cpp | 7 +++++++ modules/autonavigation/autonavigationmodule_lua.inl | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/modules/autonavigation/autonavigationmodule.cpp b/modules/autonavigation/autonavigationmodule.cpp index 41325ea703..e1c648c632 100644 --- a/modules/autonavigation/autonavigationmodule.cpp +++ b/modules/autonavigation/autonavigationmodule.cpp @@ -73,6 +73,13 @@ scripting::LuaLibrary AutoNavigationModule::luaLibrary() const { absPath("${MODULE_AUTONAVIGATION}/scripts/rendering.lua") }; res.functions = { + { + "isFlying", + &autonavigation::luascriptfunctions::isFlying, + {}, + "", + "Returns true if a camera path is currently running, and false otherwise." + }, { "continuePath", &autonavigation::luascriptfunctions::continuePath, diff --git a/modules/autonavigation/autonavigationmodule_lua.inl b/modules/autonavigation/autonavigationmodule_lua.inl index 4c723d6a8f..21594b7cde 100644 --- a/modules/autonavigation/autonavigationmodule_lua.inl +++ b/modules/autonavigation/autonavigationmodule_lua.inl @@ -43,6 +43,17 @@ namespace openspace::autonavigation::luascriptfunctions { const double Epsilon = 1e-12; +int isFlying(lua_State* L) { + ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::isFlying"); + + AutoNavigationModule* module = global::moduleEngine->module(); + bool hasFinished = module->AutoNavigationHandler().hasFinished(); + + ghoul::lua::push(L, !hasFinished); + ghoul_assert(lua_gettop(L) == 1, "Incorrect number of items left on stack"); + return 0; +} + int continuePath(lua_State* L) { ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::continuePath");