Rect.hpp
1 //
3 // SFML - Simple and Fast Multimedia Library
4 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
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_RECT_HPP
26 #define SFML_RECT_HPP
27 
29 // Headers
31 #include <algorithm>
32 
33 
34 namespace sf
35 {
40 template <typename T>
41 class Rect
42 {
43 public :
44 
49  Rect();
50 
60  Rect(T LeftCoord, T TopCoord, T RightCoord, T BottomCoord);
61 
68  T GetWidth() const;
69 
76  T GetHeight() const;
77 
85  void Offset(T OffsetX, T OffsetY);
86 
96  bool Contains(T X, T Y) const;
97 
107  bool Intersects(const Rect<T>& Rectangle, Rect<T>* OverlappingRect = NULL) const;
108 
110  // Member data
112  T Left;
113  T Top;
114  T Right;
115  T Bottom;
116 };
117 
118 #include <SFML/Graphics/Rect.inl>
119 
120 // Define the most common types
121 typedef Rect<int> IntRect;
122 typedef Rect<float> FloatRect;
123 
124 } // namespace sf
125 
126 
127 #endif // SFML_RECT_HPP
Rect is an utility class for manipulating rectangles.
Definition: Rect.hpp:41
T Right
Right coordinate of the rectangle.
Definition: Rect.hpp:114
T GetHeight() const
Get the height of the rectangle.
Definition: Rect.inl:68
void Offset(T OffsetX, T OffsetY)
Move the whole rectangle by the given offset.
Definition: Rect.inl:78
Rect()
Default constructor.
Definition: Rect.inl:30
bool Contains(T X, T Y) const
Check if a point is inside the rectangle&#39;s area.
Definition: Rect.inl:91
T Bottom
Bottom coordinate of the rectangle.
Definition: Rect.hpp:115
T GetWidth() const
Get the width of the rectangle.
Definition: Rect.inl:58
T Top
Top coordinate of the rectangle.
Definition: Rect.hpp:113
T Left
Left coordinate of the rectangle.
Definition: Rect.hpp:112
bool Intersects(const Rect< T > &Rectangle, Rect< T > *OverlappingRect=NULL) const
Check intersection between two rectangles.
Definition: Rect.inl:101