TurtleBrains  0.3.0
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 
46  void ClearGraphics(void);
47 
53  void AddGraphic(Graphic* graphic);
54 
60  void AddGraphic(Graphic& graphic);
61 
67  void RemoveGraphic(Graphic* graphic);
68 
72  virtual void SetColor(const tbGraphics::Color& newColor) override;
73 
74  protected:
79  virtual void OnUpdate(const float deltaTime) override;
80 
89  virtual void OnRender(void) const override;
90 
91  private:
92  void ReallyAddGraphic(Graphic* graphic, const bool managed);
93 
94  //These are all disabled from GraphicList, maybe they shouldn't be in the base Graphic
95  //TODO: TIM: Refactor: Remove this from base Graphic and create a Transform or some other class.
96  void SetOrigin(const AnchorLocation& anchor) { Graphic::SetOrigin(anchor); }
97  void SetOrigin(const float originX, const float originY) { Graphic::SetOrigin(originX, originY); }
98  void SetScale(const float scale) { Graphic::SetScale(scale); }
99  void SetScale(const float scaleX, const float scaleY) { Graphic::SetScale(scaleX, scaleY); }
100  void SetRotation(const float rotation) { Graphic::SetRotation(rotation); }
101  float GetRotation(void) const { return Graphic::GetRotation(); }
102 
103  void SetScroll(const float scroll) { SetScroll(scroll, scroll); }
104  void SetScroll(const float scrollX, const float scrollY)
105  {
106  for (Graphic* graphic : mGraphics)
107  {
108  graphic->SetScroll(scrollX, scrollY);
109  }
110  Graphic::SetScroll(0.0f, 0.0f);
111  }
112 
113  typedef std::list<Graphic*> GraphicContainer;
114  GraphicContainer mGraphics;
115  GraphicContainer mManagedGraphics;
116  };
117 
118  }; /* namespace Graphics */
119 }; /* namespace TurtleBrains */
120 
122 
123 #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