diff --git a/modules/skybrowser/skybrowsermodule.cpp b/modules/skybrowser/skybrowsermodule.cpp index 1f87b99aea..01ca83bd3d 100644 --- a/modules/skybrowser/skybrowsermodule.cpp +++ b/modules/skybrowser/skybrowsermodule.cpp @@ -25,7 +25,11 @@ #include //#include //#include +#include +#include +#include +#include #include #include @@ -138,6 +142,7 @@ void SkybrowserModule::WWTfollowCamera() const { const SkybrowserModule* module = global::moduleEngine->module(); glm::dvec2 celestCoords = module->convertGalacticToCelestial(viewDirection); + showTarget(); // Execute javascript on browser ScreenSpaceBrowser* browser = dynamic_cast(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser")); std::string script = "window.frames[0].postMessage({event: 'center_on_coordinates', ra : Number(" + std::to_string(celestCoords[0]) + "), dec : Number(" + std::to_string(celestCoords[1]) + "), fov : Number(" + std::to_string(_zoomFactor) + "), instant : false})"; @@ -163,6 +168,25 @@ glm::dvec2 SkybrowserModule::convertGalacticToCelestial(glm::dvec3 rGal) const { return glm::dvec2(glm::degrees(ra), glm::degrees(dec)); } +void SkybrowserModule::showTarget() const{ + + using namespace std::string_literals; + + + ghoul::Dictionary node; + node.setValue("Type", "ScreenSpaceImageLocal"s); + node.setValue("Identifier", "Target"s); + node.setValue("TexturePath", "D:/Esters/OpenSpace/modules/skybrowser/target.png"s); + node.setValue("Scale", 0.07); + + + openspace::global::scriptEngine->queueScript( + "openspace.addScreenSpaceRenderable(" + ghoul::formatLua(node) + ")", + scripting::ScriptEngine::RemoteScripting::Yes + ); + +} + /* std::vector SkybrowserModule::documentations() const { return { diff --git a/modules/skybrowser/skybrowsermodule.h b/modules/skybrowser/skybrowsermodule.h index 8c02482383..b46e74544b 100644 --- a/modules/skybrowser/skybrowsermodule.h +++ b/modules/skybrowser/skybrowsermodule.h @@ -48,7 +48,7 @@ public: float zoomFactor() const; glm::dvec2 convertGalacticToCelestial(glm::dvec3 coords) const; void WWTfollowCamera() const; - + void showTarget() const; scripting::LuaLibrary luaLibrary() const override; //std::vector documentations() const override; diff --git a/modules/skybrowser/skybrowsermodule_lua.inl b/modules/skybrowser/skybrowsermodule_lua.inl index d43d89fa6b..979edfe13f 100644 --- a/modules/skybrowser/skybrowsermodule_lua.inl +++ b/modules/skybrowser/skybrowsermodule_lua.inl @@ -31,7 +31,6 @@ namespace openspace::skybrowser::luascriptfunctions { ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::followCamera"); const SkybrowserModule* module = global::moduleEngine->module(); ScreenSpaceBrowser* browser = dynamic_cast(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser")); - module->WWTfollowCamera(); return 1; } @@ -39,7 +38,6 @@ namespace openspace::skybrowser::luascriptfunctions { int moveBrowser(lua_State* L) { ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::moveBrowser"); ScreenSpaceBrowser* browser = dynamic_cast(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser")); - browser->setFaceCameraPropertyToFalse(); browser->translate(glm::vec3(-0.8, -0.4, 0.0)); return 1; } @@ -50,22 +48,29 @@ namespace openspace::skybrowser::luascriptfunctions { const SkybrowserModule* module = global::moduleEngine->module(); - //std::string _url = "https://wallpaperaccess.com/full/3010132.jpg"; - // 'https://cdn.wallpapersafari.com/6/92/0nbCPw.jpg' - using namespace std::string_literals; + std::string node = "{" + "Type = 'ScreenSpaceBrowser'," + "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); - // node.setValue("Dimensions", "glm::ivec2(1000, 1000)"); + */ openspace::global::scriptEngine->queueScript( - "openspace.addScreenSpaceRenderable(" + ghoul::formatLua(node) + ")", + "openspace.addScreenSpaceRenderable(" + node + ")", scripting::ScriptEngine::RemoteScripting::Yes ); + return 1; } diff --git a/modules/skybrowser/target.png b/modules/skybrowser/target.png new file mode 100644 index 0000000000..2db4325598 Binary files /dev/null and b/modules/skybrowser/target.png differ diff --git a/modules/webbrowser/include/screenspacebrowser.h b/modules/webbrowser/include/screenspacebrowser.h index f9c35beec6..514d989043 100644 --- a/modules/webbrowser/include/screenspacebrowser.h +++ b/modules/webbrowser/include/screenspacebrowser.h @@ -74,7 +74,6 @@ public: void executeJavascript(std::string &script) const; void translate(glm::vec3 translation); - void setFaceCameraPropertyToFalse(); private: class ScreenSpaceRenderHandler : public WebRenderHandler { diff --git a/modules/webbrowser/src/screenspacebrowser.cpp b/modules/webbrowser/src/screenspacebrowser.cpp index c21d36ed7d..dcdee6a601 100644 --- a/modules/webbrowser/src/screenspacebrowser.cpp +++ b/modules/webbrowser/src/screenspacebrowser.cpp @@ -71,10 +71,6 @@ void ScreenSpaceBrowser::translate(glm::vec3 translation) { _cartesianPosition = glm::translate(glm::mat4(1.f), translation) * glm::vec4(position, 1.0f); } -void ScreenSpaceBrowser::setFaceCameraPropertyToFalse() { - _faceCamera = false; -} - void ScreenSpaceBrowser::ScreenSpaceRenderHandler::draw() {} void ScreenSpaceBrowser::ScreenSpaceRenderHandler::render() {}