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");