From ef1af3b6be810cde36d5fd01e946c6282928fb22 Mon Sep 17 00:00:00 2001 From: sylvass Date: Wed, 1 Dec 2021 11:10:48 -0500 Subject: [PATCH] Add set cartesian position to screenspace renderable --- include/openspace/rendering/screenspacerenderable.h | 1 + src/rendering/screenspacerenderable.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/include/openspace/rendering/screenspacerenderable.h b/include/openspace/rendering/screenspacerenderable.h index 18544ec240..bfa41ee975 100644 --- a/include/openspace/rendering/screenspacerenderable.h +++ b/include/openspace/rendering/screenspacerenderable.h @@ -81,6 +81,7 @@ public: bool coordIsInsideCornersScreenSpace(glm::vec2 coord); void translate(glm::vec2 translation, glm::vec2 position); friend bool operator<(const ScreenSpaceRenderable& lhs, const ScreenSpaceRenderable& rhs); + void setCartesianPosition(const glm::vec3& position); // End of addition by skybrowser team diff --git a/src/rendering/screenspacerenderable.cpp b/src/rendering/screenspacerenderable.cpp index 3c113429f0..a4f7686855 100644 --- a/src/rendering/screenspacerenderable.cpp +++ b/src/rendering/screenspacerenderable.cpp @@ -540,6 +540,11 @@ void ScreenSpaceRenderable::translate(glm::vec2 translation, glm::vec2 position) _cartesianPosition = glm::translate(glm::mat4(1.f), glm::vec3(translation, 0.0f)) * glm::vec4(position, _cartesianPosition.value().z, 1.0f); } +void ScreenSpaceRenderable::setCartesianPosition(const glm::vec3& position) +{ + _cartesianPosition = position; +} + bool operator<(const ScreenSpaceRenderable& lhs, const ScreenSpaceRenderable& rhs) { // Sort on depth coordinate, larger values are closer to camera return lhs._cartesianPosition.value().z > rhs._cartesianPosition.value().z;