From dbd69cdd73c0295be78e5dd0166c5f08b1dce810 Mon Sep 17 00:00:00 2001 From: sylvass Date: Tue, 25 Jan 2022 09:33:02 -0500 Subject: [PATCH] Add size getter and pass size and color to gui --- modules/skybrowser/include/pair.h | 1 + modules/skybrowser/include/screenspaceskybrowser.h | 1 + modules/skybrowser/skybrowsermodule_lua.inl | 6 ++++++ modules/skybrowser/src/pair.cpp | 5 +++++ modules/skybrowser/src/screenspaceskybrowser.cpp | 7 ++++++- 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/skybrowser/include/pair.h b/modules/skybrowser/include/pair.h index f1a16d7c8b..7f799ef21b 100644 --- a/modules/skybrowser/include/pair.h +++ b/modules/skybrowser/include/pair.h @@ -95,6 +95,7 @@ public: std::string browserGuiName() const; std::string browserId() const; std::string targetId() const; + glm::vec2 size() const; // Getters by reference ScreenSpaceSkyTarget* getTarget(); diff --git a/modules/skybrowser/include/screenspaceskybrowser.h b/modules/skybrowser/include/screenspaceskybrowser.h index 7de2843a16..0e446577eb 100644 --- a/modules/skybrowser/include/screenspaceskybrowser.h +++ b/modules/skybrowser/include/screenspaceskybrowser.h @@ -33,6 +33,7 @@ namespace openspace { // Getters float opacity() const; + glm::vec2 size() const; // Setters void setVerticalFovWithScroll(float scroll); diff --git a/modules/skybrowser/skybrowsermodule_lua.inl b/modules/skybrowser/skybrowsermodule_lua.inl index 3ede08a758..0b2009c116 100644 --- a/modules/skybrowser/skybrowsermodule_lua.inl +++ b/modules/skybrowser/skybrowsermodule_lua.inl @@ -378,6 +378,10 @@ int getTargetData(lua_State* L) { glm::ivec3 color = pair->borderColor(); std::vector colorVec = { color.r, color.g, color.b }; + // Convert color to vector so ghoul can read it + glm::vec2 size = pair->size(); + std::vector sizeVec = { size.x, size.y }; + ghoul::lua::push(L, id); lua_newtable(L); // Push ("Key", value) @@ -399,6 +403,8 @@ int getTargetData(lua_State* L) { lua_settable(L, -3); ghoul::lua::push(L, "isLocked", pair->isLocked()); lua_settable(L, -3); + ghoul::lua::push(L, "size", sizeVec); + lua_settable(L, -3); // Set table for the current target lua_settable(L, -3); diff --git a/modules/skybrowser/src/pair.cpp b/modules/skybrowser/src/pair.cpp index 571de20c83..056fe67865 100644 --- a/modules/skybrowser/src/pair.cpp +++ b/modules/skybrowser/src/pair.cpp @@ -207,6 +207,11 @@ namespace openspace { return _target->identifier(); } + glm::vec2 Pair::size() const + { + return _browser->size(); + } + float Pair::verticalFov() const { return _browser->verticalFov(); diff --git a/modules/skybrowser/src/screenspaceskybrowser.cpp b/modules/skybrowser/src/screenspaceskybrowser.cpp index 01016eade1..b67bc4a347 100644 --- a/modules/skybrowser/src/screenspaceskybrowser.cpp +++ b/modules/skybrowser/src/screenspaceskybrowser.cpp @@ -266,7 +266,8 @@ namespace openspace { } void ScreenSpaceSkyBrowser::setScreenSpaceSize(const glm::vec2& newSize) - { + { + _size = newSize; _scale = abs(newSize.y) * 0.5f; glm::vec2 newSizeRelToOld = abs((screenSpaceDimensions() + newSize) / screenSpaceDimensions()); @@ -284,4 +285,8 @@ namespace openspace { float ScreenSpaceSkyBrowser::opacity() const { return _opacity; } + glm::vec2 ScreenSpaceSkyBrowser::size() const + { + return _size; + } }