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_VIEW_HPP
00026 #define SFML_VIEW_HPP
00027
00029
00031 #include <SFML/Config.hpp>
00032 #include <SFML/Graphics/Rect.hpp>
00033 #include <SFML/Graphics/Matrix3.hpp>
00034 #include <SFML/System/Vector2.hpp>
00035
00036
00037 namespace sf
00038 {
00043 class SFML_API View
00044 {
00045 public :
00046
00053 View();
00054
00061 explicit View(const FloatRect& rectangle);
00062
00070 View(const Vector2f& center, const Vector2f& size);
00071
00081 void SetCenter(float x, float y);
00082
00091 void SetCenter(const Vector2f& center);
00092
00102 void SetSize(float width, float height);
00103
00112 void SetSize(const Vector2f& size);
00113
00124 void SetRotation(float angle);
00125
00141 void SetViewport(const FloatRect& viewport);
00142
00153 void Reset(const FloatRect& rectangle);
00154
00163 const Vector2f& GetCenter() const;
00164
00173 const Vector2f& GetSize() const;
00174
00183 float GetRotation() const;
00184
00193 const FloatRect& GetViewport() const;
00194
00204 void Move(float offsetX, float offsetY);
00205
00214 void Move(const Vector2f& offset);
00215
00224 void Rotate(float angle);
00225
00241 void Zoom(float factor);
00242
00253 const Matrix3& GetMatrix() const;
00254
00265 const Matrix3& GetInverseMatrix() const;
00266
00267 private :
00268
00270
00272 Vector2f myCenter;
00273 Vector2f mySize;
00274 float myRotation;
00275 FloatRect myViewport;
00276 mutable Matrix3 myMatrix;
00277 mutable Matrix3 myInverseMatrix;
00278 mutable bool myMatrixUpdated;
00279 mutable bool myInvMatrixUpdated;
00280 };
00281
00282 }
00283
00284
00285 #endif // SFML_VIEW_HPP
00286
00287