From 1958283f3f1f3347e41a0031b169ee635e0263ce Mon Sep 17 00:00:00 2001 From: Pascal <engelerp@phys.ethz.ch> Date: Thu, 27 Jul 2023 11:53:45 +0200 Subject: [PATCH] Added visibility manager for opacity and enable tracking --- gui/include/visibility_manager.hpp | 20 ++++++++++++++++++++ gui/src/visibility_manager.cpp | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 gui/include/visibility_manager.hpp create mode 100644 gui/src/visibility_manager.cpp diff --git a/gui/include/visibility_manager.hpp b/gui/include/visibility_manager.hpp new file mode 100644 index 0000000..5add24b --- /dev/null +++ b/gui/include/visibility_manager.hpp @@ -0,0 +1,20 @@ +#pragma once + +struct VisibilityManager { + static bool enableTop; + static bool enableBottom; + + static float opacityMixer; + + static float topOpacity(); + static float bottomOpacity(); + /* + Opacity Mixer: + 0.f - top transparent + 1.f - bottom transparent + 0.5f - nothing transparent + + alphaTop = std::max( 2.f * opacityMixer, 1.f ); + alphaBottom = std::max( 2.f * ( 1.f - opacityMixer ) ); + */ +}; \ No newline at end of file diff --git a/gui/src/visibility_manager.cpp b/gui/src/visibility_manager.cpp new file mode 100644 index 0000000..095ece1 --- /dev/null +++ b/gui/src/visibility_manager.cpp @@ -0,0 +1,14 @@ +#include <visibility_manager.hpp> +#include <algorithm> + +bool VisibilityManager::enableTop = true; +bool VisibilityManager::enableBottom = true; + +float VisibilityManager::opacityMixer = 0.5; + +float VisibilityManager::topOpacity() { + return std::min(2.f * opacityMixer, 1.f); +} +float VisibilityManager::bottomOpacity() { + return std::min(2.f * (1.f - opacityMixer), 1.f); +} \ No newline at end of file -- GitLab