#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace { constexpr const char _loggerCat[] = "SkyBrowserModule"; } // namespace namespace openspace::skybrowser::luascriptfunctions { int loadImgCollection(lua_State* L) { ghoul::lua::checkArgumentsAndThrow(L, 1, "lua::loadCollection"); // https://docs.worldwidetelescope.org/data-guide/1/data-file-formats/collections/sample-blank-collection.wtml std::string url = ghoul::lua::value(L, 1); SkyBrowserModule* module = global::moduleEngine->module(); module->sendMessageToWWT(module->createMessageForLoadingWWTImgColl(url)); return 1; } int followCamera(lua_State* L) { ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::followCamera"); SkyBrowserModule* module = global::moduleEngine->module(); //ghoul::Dictionary message = module->createMessageForPausingWWTTime(); //module->sendMessageToWWT(message); module->WWTfollowCamera(); module->handleInteractions(); return 1; } int moveBrowser(lua_State* L) { ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::moveBrowser"); SkyBrowserModule* module = global::moduleEngine->module(); ScreenSpaceSkyBrowser* browser = dynamic_cast(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser")); module->initializeBrowser(browser); module->skyBrowser()->translate(glm::vec3(-0.8, -0.4, 0.0)); module->checkIfTargetExist(); return 1; } int createBrowser(lua_State* L) { ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::createBrowser"); SkyBrowserModule* module = global::moduleEngine->module(); using namespace std::string_literals; std::string node = "{" "Type = 'ScreenSpaceSkyBrowser'," "Identifier = 'ScreenSpaceBowser'," "Name = 'Screen Space Bowser'," "Url = 'http://localhost:8000/'," "FaceCamera = false" "}"; /* ghoul::Dictionary node; node.setValue("Type", "ScreenSpaceBrowser"s); node.setValue("Identifier", "ScreenSpaceBowser"s); node.setValue("Name", "Screen Space Bowser"s); node.setValue("Url", "http://localhost:8000/"s); */ openspace::global::scriptEngine->queueScript( "openspace.addScreenSpaceRenderable(" + node + ")", scripting::ScriptEngine::RemoteScripting::Yes ); //test create target module->createTarget(); return 1; } }