Symphony Of Empires
candle.hpp
Go to the documentation of this file.
1
// Symphony of Empires
2
// Copyright (C) 2021, Symphony of Empires contributors
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <https://www.gnu.org/licenses/>.
16
//
17
// ----------------------------------------------------------------------------
18
// Name:
19
// eng3d/ui/candle.hpp
20
//
21
// Abstract:
22
// Does some important stuff.
23
// ----------------------------------------------------------------------------
24
25
#pragma once
26
27
#include <cstddef>
28
#include <deque>
29
#include <functional>
30
#include <vector>
31
#include <string>
32
33
#include "eng3d/ui/widget.hpp"
34
#include "eng3d/rectangle.hpp"
35
36
namespace
UI
{
37
class
Context;
38
39
struct
CandleData
{
40
CandleData
() =
default
;
41
CandleData
(
float
_open,
float
_close,
float
_min,
float
_max)
42
:
open
{ _open },
43
close
{ _close },
44
min
{ _min },
45
max
{ _max }
46
{
47
assert(
open
>=
min
&&
open
<=
max
);
48
assert(
close
>=
min
&&
close
<=
max
);
49
this->
max
= glm::max(this->
max
, glm::max(this->
open
, this->
close
));
50
this->
min
= glm::min(this->
min
, glm::min(this->
open
, this->
close
));
51
}
52
~CandleData
() =
default
;
53
54
float
open
= 0.f;
55
float
close
= 0.f;
56
float
min
= 0.f;
57
float
max
= 0.f;
58
};
59
62
class
CandleChart
:
public
Widget
{
63
public
:
64
CandleChart
(
int
x
,
int
y
,
unsigned
w,
unsigned
h,
Widget
* _parent =
nullptr
);
65
virtual
~CandleChart
()
override
{}
66
virtual
void
on_render
(
Context
& ctx,
Eng3D::Rect
viewport)
override
;
67
void
set_data
(std::vector<UI::CandleData> data);
68
private
:
69
std::vector<UI::CandleData> data;
70
float
max = 1.f, min = 1.f;
71
};
72
}
UI::CandleChart
A graph chart.
Definition:
candle.hpp:62
UI::CandleChart::set_data
void set_data(std::vector< UI::CandleData > data)
Definition:
candle.cpp:47
UI::CandleChart::~CandleChart
virtual ~CandleChart() override
Definition:
candle.hpp:65
UI::CandleChart::CandleChart
CandleChart(int x, int y, unsigned w, unsigned h, Widget *_parent=nullptr)
Definition:
candle.cpp:40
UI::CandleChart::on_render
virtual void on_render(Context &ctx, Eng3D::Rect viewport) override
Definition:
candle.cpp:60
UI::Context
The UI context that handles all the ui widgets.
Definition:
ui.hpp:63
UI::Widget
The master widget all the other widgets inherit from, do not use directly instead use one of the many...
Definition:
widget.hpp:176
UI::Widget::y
int y
Definition:
widget.hpp:322
UI::Widget::x
int x
Definition:
widget.hpp:322
UI
Definition:
game_state.hpp:117
Eng3D::Rectangle
Definition:
rectangle.hpp:31
UI::CandleData
Definition:
candle.hpp:39
UI::CandleData::min
float min
Definition:
candle.hpp:56
UI::CandleData::max
float max
Definition:
candle.hpp:57
UI::CandleData::CandleData
CandleData(float _open, float _close, float _min, float _max)
Definition:
candle.hpp:41
UI::CandleData::CandleData
CandleData()=default
UI::CandleData::open
float open
Definition:
candle.hpp:54
UI::CandleData::close
float close
Definition:
candle.hpp:55
UI::CandleData::~CandleData
~CandleData()=default
eng3d
src
ui
candle.hpp
Generated by
1.9.1