diff --git a/gui/include/visibility_manager.hpp b/gui/include/visibility_manager.hpp new file mode 100644 index 0000000000000000000000000000000000000000..5add24b275d23f3ad70195b8083106bf4bf3043a --- /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 0000000000000000000000000000000000000000..095ece19843a0aaa7599dd0d00a004c6f1838047 --- /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