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 explicit View(const FloatRect& ViewRect = FloatRect(0, 0, 1000, 1000));
00054
00062 View(const sf::Vector2f& Center, const sf::Vector2f& HalfSize);
00063
00071 void SetCenter(float X, float Y);
00072
00079 void SetCenter(const sf::Vector2f& Center);
00080
00088 void SetHalfSize(float HalfWidth, float HalfHeight);
00089
00096 void SetHalfSize(const sf::Vector2f& HalfSize);
00097
00104 void SetFromRect(const FloatRect& ViewRect);
00105
00112 const sf::Vector2f& GetCenter() const;
00113
00120 const sf::Vector2f& GetHalfSize() const;
00121
00128 const sf::FloatRect& GetRect() const;
00129
00137 void Move(float OffsetX, float OffsetY);
00138
00145 void Move(const sf::Vector2f& Offset);
00146
00153 void Zoom(float Factor);
00154
00155 private :
00156
00157 friend class RenderWindow;
00158
00165 const Matrix3& GetMatrix() const;
00166
00171 void RecomputeMatrix();
00172
00174
00176 sf::Vector2f myCenter;
00177 sf::Vector2f myHalfSize;
00178 FloatRect myRect;
00179 Matrix3 myMatrix;
00180 bool myNeedUpdate;
00181 };
00182
00183 }
00184
00185
00186 #endif // SFML_VIEW_HPP