00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_DRAWABLE_HPP
00026 #define SFML_DRAWABLE_HPP
00027
00029
00031 #include <SFML/Graphics/Color.hpp>
00032
00033
00034 namespace sf
00035 {
00036 class RenderWindow;
00037
00042 class SFML_API Drawable
00043 {
00044 public :
00045
00057 Drawable(float Left = 0.f, float Top = 0.f, float ScaleX = 1.f, float ScaleY = 1.f, float Rotation = 0.f, const Color& Col = Color(255, 255, 255, 255));
00058
00063 virtual ~Drawable();
00064
00071 void SetLeft(float Left);
00072
00079 void SetTop(float Top);
00080
00088 void SetScale(float ScaleX, float ScaleY);
00089
00096 void SetRotation(float Rotation);
00097
00106 void SetRotationCenter(float X, float Y);
00107
00114 void SetColor(const Color& Col);
00115
00122 float GetLeft() const;
00123
00130 float GetTop() const;
00131
00138 float GetScaleX() const;
00139
00146 float GetScaleY() const;
00147
00154 float GetRotation() const;
00155
00162 const Color& GetColor() const;
00163
00171 void Move(float OffsetX, float OffsetY);
00172
00180 void Scale(float FactorX, float FactorY);
00181
00188 void Rotate(float Angle);
00189
00190 private :
00191
00192 friend class RenderWindow;
00193
00200 void Draw(RenderWindow& Window);
00201
00208 virtual void Render(RenderWindow& Window) = 0;
00209
00211
00213 float myLeft;
00214 float myTop;
00215 float myScaleX;
00216 float myScaleY;
00217 float myRotation;
00218 float myCenterX;
00219 float myCenterY;
00220 Color myColor;
00221 };
00222
00223 }
00224
00225
00226 #endif // SFML_DRAWABLE_HPP