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_RECT_HPP
00026 #define SFML_RECT_HPP
00027
00029
00031 #include <SFML/System/Vector2.hpp>
00032 #include <algorithm>
00033
00034
00035 namespace sf
00036 {
00041 template <typename T>
00042 class Rect
00043 {
00044 public :
00045
00053 Rect();
00054
00067 Rect(T left, T top, T width, T height);
00068
00079 Rect(const Vector2<T>& position, const Vector2<T>& size);
00080
00092 template <typename U>
00093 explicit Rect(const Rect<U>& rectangle);
00094
00106 bool Contains(T x, T y) const;
00107
00118 bool Contains(const Vector2<T>& point) const;
00119
00130 bool Intersects(const Rect<T>& rectangle) const;
00131
00146 bool Intersects(const Rect<T>& rectangle, Rect<T>& intersection) const;
00147
00149
00151 T Left;
00152 T Top;
00153 T Width;
00154 T Height;
00155 };
00156
00157 #include <SFML/Graphics/Rect.inl>
00158
00159
00160 typedef Rect<int> IntRect;
00161 typedef Rect<float> FloatRect;
00162
00163 }
00164
00165
00166 #endif // SFML_RECT_HPP
00167
00168