YAPOG  0.0.1
Yet Another Pokemon Online Game
BaseSprite.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_SPRITEBASE_HPP
2 # define YAPOG_SPRITEBASE_HPP
3 
4 # include "YAPOG/Macros.hpp"
8 
9 namespace yap
10 {
11  class YAPOG_LIB BaseSprite : public ISprite
12  {
14 
15  public:
16 
17  BaseSprite ();
18  virtual ~BaseSprite ();
19 
22  virtual const Vector2& GetPosition () const;
23  virtual const Vector2& GetSize () const;
24 
25  virtual const Vector2& GetTopLeft () const;
26  virtual const Vector2& GetBottomRight () const;
27  virtual const Vector2& GetCenter () const;
28 
29  virtual const FloatRect& GetRectangle () const;
30 
31  virtual void Move (const Vector2& offset);
32  virtual void Scale (const Vector2& factor);
33 
34  virtual void SetPosition (const Vector2& position);
35  virtual void SetSize (const Vector2& size);
37 
40  virtual void Draw (IDrawingContext& context);
41 
42  virtual bool IsVisible () const;
43  virtual void Show (bool isVisible);
44 
45  virtual void ChangeColor (const sf::Color& color);
47 
50  virtual void Update (const Time& dt);
52 
53  protected:
54 
55  BaseSprite (const BaseSprite& copy);
56 
57  virtual Vector2 HandleGetSize () const;
58 
59  virtual void HandleMove (const Vector2& offset) = 0;
60  virtual void HandleScale (const Vector2& factor) = 0;
61 
62  virtual void HandleDraw (IDrawingContext& context) = 0;
63 
64  virtual void HandleShow (bool isVisible) = 0;
65  virtual void HandleChangeColor (const sf::Color& color) = 0;
66 
67  virtual void HandleUpdate (const Time& dt) = 0;
68 
69  private:
70 
71  static const bool DEFAULT_VISIBLE_STATE;
72  static const sf::Color DEFAULT_COLOR;
73 
75  bool isVisible_;
76  sf::Color color_;
77  };
78 } // namespace yap
79 
80 #endif // YAPOG_SPRITEBASE_HPP