From 1eb29ab5ca9d3fe2e86d65e02dd3a7b4408bd2d9 Mon Sep 17 00:00:00 2001 From: Ester Lindgren Date: Fri, 5 Mar 2021 15:33:48 +0100 Subject: [PATCH 1/2] Add centered target frame --- modules/skybrowser/skybrowsermodule.cpp | 24 ++++++++++++++++++ modules/skybrowser/skybrowsermodule.h | 2 +- modules/skybrowser/skybrowsermodule_lua.inl | 19 +++++++++----- modules/skybrowser/target.png | Bin 0 -> 2506 bytes .../webbrowser/include/screenspacebrowser.h | 1 - modules/webbrowser/src/screenspacebrowser.cpp | 4 --- 6 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 modules/skybrowser/target.png 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 0000000000000000000000000000000000000000..2db4325598d0b5a39820d159e07258aa7e98fed7 GIT binary patch literal 2506 zcmeAS@N?(olHy`uVBq!ia0y~yVA=u1CLC-)k#C!#dVmyTage(c!@6@aFM%AEbVpxD z28NCO+M1MG8 z`1?6esq_GErx;MMitY T?!v{fAOk&J{an^LB{Ts5>xHg5 literal 0 HcmV?d00001 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() {} From af98784dc40cbc2f2821b2513968c2bf75c06c57 Mon Sep 17 00:00:00 2001 From: Ester Lindgren Date: Fri, 5 Mar 2021 16:00:04 +0100 Subject: [PATCH 2/2] Add call to showtarget function --- modules/skybrowser/skybrowsermodule.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/skybrowser/skybrowsermodule.cpp b/modules/skybrowser/skybrowsermodule.cpp index f6d9fa6a72..29db7a7461 100644 --- a/modules/skybrowser/skybrowsermodule.cpp +++ b/modules/skybrowser/skybrowsermodule.cpp @@ -146,6 +146,7 @@ bool SkybrowserModule::sendMessageToWWT(const ghoul::Dictionary& msg) { } void SkybrowserModule::WWTfollowCamera() { + showTarget(); while (true) { // Get camera view direction const glm::dvec3 viewDirection = global::navigationHandler->camera()->viewDirectionWorldSpace();