TurtleBrains  0.2.1
High quality, portable, C++ API for native application and game development.
tb_graphic_list.h
1 
9 #ifndef _TurtleBrains_GraphicList_h_
10 #define _TurtleBrains_GraphicList_h_
11 
12 #include "tb_graphic.h"
13 
14 #include <list>
15 
16 namespace TurtleBrains
17 {
18  namespace Graphics
19  {
20 
27  class GraphicList : public Graphic
28  {
29  public:
34  GraphicList(void);
35 
40  virtual ~GraphicList(void);
41 
47  void AddGraphic(Graphic* graphic);
48 
54  void AddGraphic(Graphic& graphic);
55 
61  void RemoveGraphic(Graphic* graphic);
62 
66  virtual void SetColor(const tbGraphics::Color& newColor) override;
67 
68  protected:
73  virtual void OnUpdate(const float deltaTime) override;
74 
83  virtual void OnRender(void) const override;
84 
85  private:
86  void ReallyAddGraphic(Graphic* graphic, const bool managed);
87 
88  //These are all disabled from GraphicList, maybe they shouldn't be in the base Graphic
89  //TODO: TIM: Refactor: Remove this from base Graphic and create a Transform or some other class.
90  void SetOrigin(const AnchorLocation& anchor) { Graphic::SetOrigin(anchor); }
91  void SetOrigin(const float originX, const float originY) { Graphic::SetOrigin(originX, originY); }
92  void SetScale(const float scale) { Graphic::SetScale(scale); }
93  void SetScale(const float scaleX, const float scaleY) { Graphic::SetScale(scaleX, scaleY); }
94  void SetRotation(const float rotation) { Graphic::SetRotation(rotation); }
95  float GetRotation(void) const { return Graphic::GetRotation(); }
96 
97  void SetScroll(const float scroll) { SetScroll(scroll, scroll); }
98  void SetScroll(const float scrollX, const float scrollY)
99  {
100  for (Graphic* graphic : mGraphics)
101  {
102  graphic->SetScroll(scrollX, scrollY);
103  }
104  Graphic::SetScroll(0.0f, 0.0f);
105  }
106 
107  typedef std::list<Graphic*> GraphicContainer;
108  GraphicContainer mGraphics;
109  GraphicContainer mManagedGraphics;
110  };
111 
112  }; /* namespace Graphics */
113 }; /* namespace TurtleBrains */
114 
116 
117 #endif /* _TurtleBrains_Graphic_h_ */
Definition: tb_graphic.h:61
Definition: tb_graphic_list.h:27
AnchorLocation
Definition: tb_graphic.h:44
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...
void RemoveGraphic(Graphic *graphic)
virtual void OnUpdate(const float deltaTime) override
void AddGraphic(Graphic *graphic)
virtual void SetColor(const tbGraphics::Color &newColor) override
Contains all functions, classes and helpers related to game/application development written by Tim "B...
Definition: tb_application_dialog.h:21
Definition: tb_color.h:23
void SetScroll(const float scroll)
Definition: tb_graphic.h:207
void SetScale(const float scale)
Definition: tb_graphic.h:179
float GetRotation(void) const
Definition: tb_graphic.h:200
void SetRotation(const float rotation)
Definition: tb_graphic.h:195
void SetOrigin(const AnchorLocation &anchor)
virtual void OnRender(void) const override