GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
Layout.hh
Go to the documentation of this file.
1
2class PercentageLine : public Function<int, int>
3{
4public:
5 void SetWidth(int width) { m_width = width; }
6 void SetCount(int count) { m_percentage.resize(count); }
7 void SetPercentage(int item, float percentage)
8 {
9 m_percentage[item] = percentage;
10 }
11public:
12 int Index(int i) const
13 {
14 return m_percentages[i]*m_width;
15 }
16private:
17 int m_width;
18 std::vector<float> m_percentages;
19};
20
21//
22// Layout
23//
24//
25class Screen : public Bitmap<Color>
26{
27public:
28 Screen(int sx, int sy);
29};
30
31class LayoutElem;
32
33class Area : public Bitmap<Color>
34{
35public:
36 Area(int sx, int sy);
37 void Reset();
38 void PushBack(const LayoutElem &e);
39};
40
41struct Rect
42{
43 float x,y,width,height;
44};
45
47{
48 if (p.x < r.x) return false;
49 if (p.y < r.y) return false;
50 if (p.x >= r.x+r.width) return false;
51 if (p.y >= r.y+r.height) return false;
52 return true;
53}
54
55class CmdBuf
56{
57};
58
64
65class LayoutCmdBuf : public CmdBuf
66{
67public:
68
69};
70
72{
73public:
74 virtual Rect GetRect() const=0;
75 virtual ContentElem *Bitmap() const=0;
76};
77
78class LayoutBitmap : public ContinuousBitmap<Color>
79{
80public:
81 LayoutBitmap(float sx, float sy) : sx(sx), sy(sy) { }
82 void PushBack(LayoutElem *elem) { vec.push_back(elem); }
83 virtual float SizeX() const { return sx; }
84 virtual float SizeY() const { return sy; }
85 virtual Color Map(float x, float y) const
86 {
87 Point2d p = { x,y };
88 int s = vec.size();
89 for(int i=0;i<s;i++)
90 {
91 LayoutElem *elem = vec[i];
92 Rect r = elem->GetRect();
93 if (Inside(r, p))
94 {
95 x-=r.x;
96 y-=r.y;
97 ContentElem *celem = elem->Bitmap();
99 return bm->Map(x,y);
100 }
101 }
102 return Color(255,255,255,0);
103 }
105 {
106 int s = vec.size();
107 for(int i=0;i<s;i++)
108 {
109 LayoutElem *elem = vec[i];
110 delete elem;
111 }
112 }
113private:
114 float sx,sy;
115 std::vector<LayoutElem*> vec;
116};
Env e
Definition Common.cc:2
bool Inside(Rect r, Point2d p)
Definition Layout.hh:46
void Reset()
void PushBack(const LayoutElem &e)
Area(int sx, int sy)
Definition GraphI.hh:826
Definition Layout.hh:56
Definition VectorTools.hh:380
Definition GraphI.hh:1164
virtual C Map(float x, float y) const =0
Definition EffectI.hh:11
void PushBack(LayoutElem *elem)
Definition Layout.hh:82
virtual float SizeX() const
Definition Layout.hh:83
virtual float SizeY() const
Definition Layout.hh:84
~LayoutBitmap()
Definition Layout.hh:104
LayoutBitmap(float sx, float sy)
Definition Layout.hh:81
virtual Color Map(float x, float y) const
Definition Layout.hh:85
Definition Layout.hh:66
Definition Layout.hh:72
virtual Rect GetRect() const =0
virtual ContentElem * Bitmap() const =0
Definition Layout.hh:3
void SetPercentage(int item, float percentage)
Definition Layout.hh:7
void SetCount(int count)
Definition Layout.hh:6
int Index(int i) const
Definition Layout.hh:12
void SetWidth(int width)
Definition Layout.hh:5
Definition Graph.hh:63
float x
Definition Layout.hh:43
float height
Definition Layout.hh:43
float y
Definition Layout.hh:43
float width
Definition Layout.hh:43
Screen(int sx, int sy)
Definition Layout.hh:60
ContinuousBitmap< Color > * bitmap
Definition Layout.hh:61
CmdBuf * cmdbuf
Definition Layout.hh:62
Definition VectorTools.hh:910
float x
Definition VectorTools.hh:911
float y
Definition VectorTools.hh:911