00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef HEADER_RECT_HXX
00021 #define HEADER_RECT_HXX
00022
00023 #include "math.hxx"
00024 #include "vector2d.hxx"
00025
00027 template<class T>
00028 class Rect
00029 {
00030 private:
00031 public:
00032 T x1;
00033 T y1;
00034 T x2;
00035 T y2;
00036
00037 Rect ()
00038 {
00039 }
00040
00041 Rect (const T& x1_,
00042 const T& y1_,
00043 const T& x2_,
00044 const T& y2_)
00045 : x1 (Math::min(x1_, x2_)),
00046 y1 (Math::min(y1_, y2_)),
00047 x2 (Math::max(x1_, x2_)),
00048 y2 (Math::max(y1_, y2_))
00049 {}
00050
00051 T get_width ()
00052 {
00053 return x2 - x1;
00054 }
00055
00056 T get_height ()
00057 {
00058 return x2 - x1;
00059 }
00060
00061 Vector2d get_center () const
00062 {
00063 return Vector2d ((x1 + x2)/2.0f,
00064 (y1 + y2)/2.0f);
00065 }
00066 };
00067
00068 #endif
00069
00070