TurtleBrains  0.3.1
High quality, portable, C++ framework for rapid 2D 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 
99  void SetScroll(const float scroll) { SetScroll(scroll, scroll); }
100  void SetScroll(const float scrollX, const float scrollY)
101  {
102  for (Graphic* graphic : mGraphics)
103  {
104  graphic->SetScroll(scrollX, scrollY);
105  }
106  Graphic::SetScroll(0.0f, 0.0f);
107  }
108 
109  typedef std::list<Graphic*> GraphicContainer;
110  GraphicContainer mGraphics;
111  GraphicContainer mManagedGraphics;
112  };
113 
114  }; /* namespace Graphics */
115 }; /* namespace TurtleBrains */
116 
118 
119 #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
Here is some information about the primary namespace.
Definition: tb_application_dialog.h:21
Definition: tb_color.h:23
void SetScroll(const float scroll)
Definition: tb_graphic.h:234
void SetOrigin(const AnchorLocation &anchor, const tbMath::Vector2 &offset=tbMath::Vector2::Zero())
virtual void OnRender(void) const override