TurtleBrains  0.2.1
High quality, portable, C++ API for native application and game development.
tb_line.h
1 
9 #ifndef _TurtleBrains_Line_h_
10 #define _TurtleBrains_Line_h_
11 
12 #include "tb_graphic.h"
13 #include "implementation/tbi_renderer.h"
14 #include "../math/tb_vector.h"
15 
16 #include <vector>
17 
18 namespace TurtleBrains
19 {
20  namespace Graphics
21  {
22  class OutlinedPolygonShape;
23 
27  class LineContainer : public Graphic
28  {
29  public:
30 
34  LineContainer(void);
35 
39  LineContainer(const LineContainer& other);
40 
44  virtual ~LineContainer(void);
45 
46 
47  virtual void SetColor(const tbGraphics::Color& newColor) override;
48 
49  protected:
53  virtual void OnRender(void) const override;
54 
58  void ClearVertices(void);
59 
63  void AddVertex(const tbMath::Vector2& position);
64 
66 
67  private:
68  std::vector<tbImplementation::Renderer::Vertex2D> mVertices;
69  };
70 
71 
72 
73 
77  class Line : public LineContainer
78  {
79  public:
83  Line(const tbMath::Vector2& start, const tbMath::Vector2& final, const tbGraphics::Color& color = tbGraphics::Color::kWhite);
84 
88  Line(const Line& other);
89 
93  virtual ~Line(void);
94 
98  void SetStartPosition(const tbMath::Vector2& start);
99 
103  void SetFinalPosition(const tbMath::Vector2& final);
104 
105  protected:
106 
107  private:
108  tbMath::Vector2 mStartPosition;
109  tbMath::Vector2 mFinalPosition;
110  };
111 
112  }; /* namespace Graphics */
113 }; /* namespace TurtleBrains */
114 
116 
117 #endif /* _TurtleBrains_Line_h_ */
Definition: tb_vector.h:47
Definition: tb_graphic.h:61
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...
virtual void OnRender(void) const override
virtual void SetColor(const tbGraphics::Color &newColor) override
Definition: tb_basic_shapes.h:135
Contains all functions, classes and helpers related to game/application development written by Tim "B...
Definition: tb_application_dialog.h:21
void SetStartPosition(const tbMath::Vector2 &start)
Definition: tb_color.h:23
static const Color kWhite
Definition: tb_color.h:30
Definition: tb_line.h:77
void AddVertex(const tbMath::Vector2 &position)
Line(const tbMath::Vector2 &start, const tbMath::Vector2 &final, const tbGraphics::Color &color=tbGraphics::Color::kWhite)
void SetFinalPosition(const tbMath::Vector2 &final)