Back to index

libsfml  1.6+dfsg2
Rect.hpp
Go to the documentation of this file.
00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 //    you must not claim that you wrote the original software.
00015 //    If you use this software in a product, an acknowledgment
00016 //    in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 //    and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
00022 //
00024 
00025 #ifndef SFML_RECT_HPP
00026 #define SFML_RECT_HPP
00027 
00029 // Headers
00031 #include <algorithm>
00032 
00033 
00034 namespace sf
00035 {
00040 template <typename T>
00041 class Rect
00042 {
00043 public :
00044 
00049     Rect();
00050 
00060     Rect(T LeftCoord, T TopCoord, T RightCoord, T BottomCoord);
00061 
00068     T GetWidth() const;
00069 
00076     T GetHeight() const;
00077 
00085     void Offset(T OffsetX, T OffsetY);
00086 
00096     bool Contains(T X, T Y) const;
00097 
00107     bool Intersects(const Rect<T>& Rectangle, Rect<T>* OverlappingRect = NULL) const;
00108 
00110     // Member data
00112     T Left;   
00113     T Top;    
00114     T Right;  
00115     T Bottom; 
00116 };
00117 
00118 #include <SFML/Graphics/Rect.inl>
00119 
00120 // Define the most common types
00121 typedef Rect<int>   IntRect;
00122 typedef Rect<float> FloatRect;
00123 
00124 } // namespace sf
00125 
00126 
00127 #endif // SFML_RECT_HPP