TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tb_line.hpp
1 
9 #ifndef TurtleBrains_Line_hpp
10 #define TurtleBrains_Line_hpp
11 
12 #include <turtle_brains/graphics/tb_graphic.hpp>
13 #include <turtle_brains/math/tb_vector.hpp>
14 
15 #include <vector>
16 #include <memory>
17 
18 namespace TurtleBrains::Graphics
19 {
20  namespace Implementation
21  {
22  struct LineContainerData;
23  };
24 
25  class OutlinedPolygonShape;
26 
30  class LineContainer : public Graphic
31  {
32  public:
33 
38 
43 
47  virtual ~LineContainer(void);
48 
49 
50  virtual void SetColor(const tbGraphics::Color& newColor) override;
51 
52  protected:
56  virtual void OnRender(void) const override;
57 
61  void ClearVertices(void);
62 
66  void AddVertex(const tbMath::Vector2& position);
67 
71  void SetAsLineStrip(void);
72 
76  void SetAsLines(void);
77 
79 
80  private:
81  std::unique_ptr<Implementation::LineContainerData> mData;
82  };
83 
87  class Line : public LineContainer
88  {
89  public:
93  Line(const tbMath::Vector2& start, const tbMath::Vector2& final, const tbGraphics::Color& color = ColorPalette::White);
94 
98  Line(const Line& other);
99 
103  virtual ~Line(void);
104 
108  void SetStartPosition(const tbMath::Vector2& start);
109 
113  void SetFinalPosition(const tbMath::Vector2& final);
114 
115  protected:
116 
117  private:
118  tbMath::Vector2 mStartPosition;
119  tbMath::Vector2 mFinalPosition;
120  };
121 
122 }; /* namespace TurtleBrains::Graphics */
123 
125 
126 #endif /* TurtleBrains_Line_hpp */
Definition: tb_color.hpp:24
Definition: tb_graphic.hpp:50
Definition: tb_line.hpp:31
void AddVertex(const tbMath::Vector2 &position)
LineContainer(const LineContainer &other)
virtual void OnRender(void) const override
virtual void SetColor(const tbGraphics::Color &newColor) override
Definition: tb_line.hpp:88
void SetStartPosition(const tbMath::Vector2 &start)
Line(const Line &other)
Line(const tbMath::Vector2 &start, const tbMath::Vector2 &final, const tbGraphics::Color &color=ColorPalette::White)
void SetFinalPosition(const tbMath::Vector2 &final)
Definition: tb_basic_shapes.hpp:178
Definition: tb_vector.hpp:99
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...