Documentation of SFML 2.6.1

Loading...
Searching...
No Matches
Transformable.hpp
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2023 Laurent Gomila (laurent@sfml-dev.org)
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 SFML_TRANSFORMABLE_HPP
26#define SFML_TRANSFORMABLE_HPP
27
29// Headers
31#include <SFML/Graphics/Export.hpp>
32#include <SFML/Graphics/Transform.hpp>
33
34
35namespace sf
36{
41class SFML_GRAPHICS_API Transformable
42{
43public:
44
50
55 virtual ~Transformable();
56
70 void setPosition(float x, float y);
71
84 void setPosition(const Vector2f& position);
85
98 void setRotation(float angle);
99
113 void setScale(float factorX, float factorY);
114
127 void setScale(const Vector2f& factors);
128
145 void setOrigin(float x, float y);
146
162 void setOrigin(const Vector2f& origin);
163
172 const Vector2f& getPosition() const;
173
184 float getRotation() const;
185
194 const Vector2f& getScale() const;
195
204 const Vector2f& getOrigin() const;
205
223 void move(float offsetX, float offsetY);
224
240 void move(const Vector2f& offset);
241
255 void rotate(float angle);
256
274 void scale(float factorX, float factorY);
275
292 void scale(const Vector2f& factor);
293
302 const Transform& getTransform() const;
303
313
314private:
315
317 // Member data
319 Vector2f m_origin;
320 Vector2f m_position;
321 float m_rotation;
322 Vector2f m_scale;
323 mutable Transform m_transform;
324 mutable bool m_transformNeedUpdate;
325 mutable Transform m_inverseTransform;
326 mutable bool m_inverseTransformNeedUpdate;
327};
328
329} // namespace sf
330
331
332#endif // SFML_TRANSFORMABLE_HPP
333
334
Define a 3x3 transform matrix.
Definition Transform.hpp:43
Decomposed transform defined by a position, a rotation and a scale.
void setRotation(float angle)
set the orientation of the object
void scale(float factorX, float factorY)
Scale the object.
const Transform & getTransform() const
get the combined transform of the object
virtual ~Transformable()
Virtual destructor.
void setScale(const Vector2f &factors)
set the scale factors of the object
void setPosition(float x, float y)
set the position of the object
void setOrigin(float x, float y)
set the local origin of the object
const Vector2f & getScale() const
get the current scale of the object
void move(float offsetX, float offsetY)
Move the object by a given offset.
const Vector2f & getOrigin() const
get the local origin of the object
float getRotation() const
get the orientation of the object
void setOrigin(const Vector2f &origin)
set the local origin of the object
void setScale(float factorX, float factorY)
set the scale factors of the object
void move(const Vector2f &offset)
Move the object by a given offset.
const Transform & getInverseTransform() const
get the inverse of the combined transform of the object
void scale(const Vector2f &factor)
Scale the object.
Transformable()
Default constructor.
const Vector2f & getPosition() const
get the position of the object
void setPosition(const Vector2f &position)
set the position of the object
void rotate(float angle)
Rotate the object.