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 {
00039 class RenderTarget;
00040
00045 class SFML_API View
00046 {
00047 public :
00048
00055 explicit View(const FloatRect& ViewRect = FloatRect(0, 0, 1000, 1000));
00056
00064 View(const sf::Vector2f& Center, const sf::Vector2f& HalfSize);
00065
00073 void SetCenter(float X, float Y);
00074
00081 void SetCenter(const sf::Vector2f& Center);
00082
00090 void SetHalfSize(float HalfWidth, float HalfHeight);
00091
00098 void SetHalfSize(const sf::Vector2f& HalfSize);
00099
00106 void SetFromRect(const FloatRect& ViewRect);
00107
00114 const sf::Vector2f& GetCenter() const;
00115
00122 const sf::Vector2f& GetHalfSize() const;
00123
00130 const sf::FloatRect& GetRect() const;
00131
00139 void Move(float OffsetX, float OffsetY);
00140
00147 void Move(const sf::Vector2f& Offset);
00148
00155 void Zoom(float Factor);
00156
00157 private :
00158
00159 friend class RenderTarget;
00160
00167 const Matrix3& GetMatrix() const;
00168
00173 void RecomputeMatrix();
00174
00176
00178 sf::Vector2f myCenter;
00179 sf::Vector2f myHalfSize;
00180 FloatRect myRect;
00181 Matrix3 myMatrix;
00182 bool myNeedUpdate;
00183 };
00184
00185 }
00186
00187
00188 #endif // SFML_VIEW_HPP