]> git.localhorst.tv Git - blank.git/blob - src/ui/FixedText.hpp
use collision structures for ray tests
[blank.git] / src / ui / FixedText.hpp
1 #ifndef BLANK_UI_FIXEDTEXT_HPP_
2 #define BLANK_UI_FIXEDTEXT_HPP_
3
4 #include "Text.hpp"
5
6
7 namespace blank {
8
9 class FixedText
10 : public Text {
11
12 public:
13         FixedText() noexcept;
14
15         void Position(const glm::vec3 &p) noexcept {
16                 pos = p;
17         }
18         void Position(
19                 const glm::vec3 &p,
20                 Gravity g
21         ) noexcept {
22                 pos = p;
23                 grav = g;
24                 Pivot(g);
25         }
26         void Position(
27                 const glm::vec3 &p,
28                 Gravity g,
29                 Gravity pv
30         ) noexcept {
31                 pos = p;
32                 grav = g;
33                 Pivot(pv);
34         }
35
36         void Foreground(const glm::vec4 &col) noexcept { fg = col; }
37         void Background(const glm::vec4 &col) noexcept { bg = col; }
38
39         void Show() noexcept { visible = true; }
40         void Hide() noexcept { visible = false; }
41         void Toggle() noexcept { visible = !visible; }
42         bool Visible() const noexcept { return visible; }
43
44         void Render(Viewport &) noexcept;
45
46 private:
47         glm::vec4 bg;
48         glm::vec4 fg;
49         glm::vec3 pos;
50         Gravity grav;
51         bool visible;
52
53 };
54
55 }
56
57 #endif