Rect 8inl source


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 source
Unicode 8inl source
ResourcePtr 8inl source
Rect 8hpp source
Selector 8inl source
Vector3 8inl source
Vector2 8inl source
Matrix3 8inl source
source30
Matrix3?pp source
Thread?pp source
arm biquad ?scade ?1 ?st q31? source
function pdf rect
arm conv ?2? source
arm mat mult q15? source
arm fir lattice init q31? source
arm fir ?cimate ?st q15? source

więcej podobnych podstron