TGUI  v0.6.10
Transformable.hpp
1 //
3 // TGUI - Texus's Graphical User Interface
4 // Copyright (C) 2012-2015 Bruno Van de Velde (vdv_b@tgui.eu)
5 //
6 // This software is provided 'as-is', without any express or implied warranty.
7 // In no event will the authors be held liable for any damages arising from the use of this software.
8 //
9 // Permission is granted to anyone to use this software for any purpose,
10 // including commercial applications, and to alter it and redistribute it freely,
11 // subject to the following restrictions:
12 //
13 // 1. The origin of this software must not be misrepresented;
14 // you must not claim that you wrote the original software.
15 // If you use this software in a product, an acknowledgment
16 // in the product documentation would be appreciated but is not required.
17 //
18 // 2. Altered source versions must be plainly marked as such,
19 // and must not be misrepresented as being the original software.
20 //
21 // 3. This notice may not be removed or altered from any source distribution.
22 //
24 
25 #ifndef TGUI_TRANSFORMABLE_HPP
26 #define TGUI_TRANSFORMABLE_HPP
27 
28 
29 #include <TGUI/Global.hpp>
30 
32 
33 namespace tgui
34 {
35  class TGUI_API Transformable
36  {
37  public:
38 
43  Transformable();
44 
45 
50  virtual ~Transformable();
51 
52 
66  virtual void setPosition(float x, float y);
67 
68 
81  void setPosition(const sf::Vector2f& position);
82 
83 
92  const sf::Vector2f& getPosition() const;
93 
94 
111  void move(float offsetX, float offsetY);
112 
113 
128  void move(const sf::Vector2f& offset);
129 
130 
138  virtual void setSize(float width, float height) = 0;
139 
140 
147  virtual sf::Vector2f getSize() const = 0;
148 
149 
159  virtual sf::Vector2f getFullSize() const;
160 
161 
176  void scale(float factorX, float factorY);
177 
178 
191  void scale(const sf::Vector2f& factors);
192 
193 
195  // Returns the transform.
197  const sf::Transform& getTransform() const;
198 
199 
201  private:
202 
203  sf::Vector2f m_Position;
204 
205  mutable bool m_TransformNeedUpdate;
206  mutable sf::Transform m_Transform;
207 
209  };
210 
212 }
213 
215 
216 #endif // TGUI_TRANSFORMABLE_HPP
Namespace that contains all TGUI functions and classes.
Definition: AnimatedPicture.hpp:33
Definition: Transformable.hpp:35