SFML - Simple and Fast Multimedia Library
Main Page
Namespaces
Classes
Files
File List
Rect.inl00001
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
00029 template <typename T>
00030 Rect<T>::Rect() :
00031 Left (0),
00032 Top (0),
00033 Right (0),
00034 Bottom(0)
00035 {
00036
00037 }
00038
00039
00043 template <typename T>
00044 Rect<T>::Rect(T LeftCoord, T TopCoord, T RightCoord, T BottomCoord) :
00045 Left (LeftCoord),
00046 Top (TopCoord),
00047 Right (RightCoord),
00048 Bottom(BottomCoord)
00049 {
00050
00051 }
00052
00053
00057 template <typename T>
00058 T Rect<T>::GetWidth() const
00059 {
00060 return Right - Left;
00061 }
00062
00063
00067 template <typename T>
00068 T Rect<T>::GetHeight() const
00069 {
00070 return Bottom - Top;
00071 }
00072
00073
00077 template <typename T>
00078 void Rect<T>::Offset(T OffsetX, T OffsetY)
00079 {
00080 Left += OffsetX;
00081 Right += OffsetX;
00082 Top += OffsetY;
00083 Bottom += OffsetY;
00084 }
00085
00086
00090 template <typename T>
00091 bool Rect<T>::Contains(T X, T Y) const
00092 {
00093 return (X >= Left) && (X <= Right) && (Y >= Top) && (Y <= Bottom);
00094 }
00095
00096
00100 template <typename T>
00101 bool Rect<T>::Intersects(const Rect<T>& Rectangle, Rect<T>* OverlappingRect) const
00102 {
00103 // Compute overlapping rect
00104 Rect Overlapping(std::max(Left, Rectangle.Left),
00105 std::max(Top, Rectangle.Top),
00106 std::min(Right, Rectangle.Right),
00107 std::min(Bottom, Rectangle.Bottom));
00108
00109 // If overlapping rect is valid, then there is intersection
00110 if ((Overlapping.Left < Overlapping.Right) && (Overlapping.Top < Overlapping.Bottom))
00111 {
00112 if (OverlappingRect)
00113 *OverlappingRect = Overlapping;
00114 return true;
00115 }
00116 else
00117 {
00118 if (OverlappingRect)
00119 *OverlappingRect = Rect(0, 0, 0, 0);
00120 return false;
00121 }
00122 }
:: Copyright © 2007-2008 Laurent Gomila, all rights reserved ::
Documentation generated by doxygen 1.5.2 ::
Wyszukiwarka
Podobne podstrony:
Resource 8inl sourceUnicode 8inl sourceResourcePtr 8inl sourceRect 8hpp sourceSelector 8inl sourceVector3 8inl sourceVector2 8inl sourceMatrix3 8inl sourcesource30Matrix3?pp sourceThread?pp sourcearm biquad ?scade ?1 ?st q31? sourcefunction pdf rectarm conv ?2? sourcearm mat mult q15? sourcearm fir lattice init q31? sourcearm fir ?cimate ?st q15? sourcewięcej podobnych podstron