00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "stdmisc.h"
00027
00028 #include "nel/misc/rect.h"
00029 #include "nel/misc/vector_2f.h"
00030
00031
00032 namespace NLMISC {
00033
00034
00035 void CRect::extend (sint32 x, sint32 y)
00036 {
00037 if (x<X)
00038 {
00039 Width+=(uint32)(X-x);
00040 x=X;
00041 }
00042 else if (x>=(X+(sint32)Width))
00043 Width=(uint32)(x-X+1);
00044 if (y<Y)
00045 {
00046 Height+=(uint32)(Y-y);
00047 y=Y;
00048 }
00049 else if (y>=(Y+(sint32)Height))
00050 Height=(uint32)(y-Y+1);
00051 }
00052
00053
00054
00055 void CRect::setWH(sint32 x, sint32 y, uint32 width, uint32 height)
00056 {
00057 X=x;
00058 Y=y;
00059 Width=width;
00060 Height=height;
00061 }
00062
00063
00064
00065 void CRect::set(sint32 x0, sint32 y0, sint32 x1, sint32 y1)
00066 {
00067 if (x0 < x1)
00068 {
00069 X = x0;
00070 Width = x1 - x0;
00071 }
00072 else
00073 {
00074 X = x1;
00075 Width = y0 - y1;
00076 }
00077
00078 if (y0 < y1)
00079 {
00080 Y = y0;
00081 Height = y1 - y0;
00082 }
00083 else
00084 {
00085 Y = y1;
00086 Height = y0 - y1;
00087 }
00088 }
00089
00090
00091 CRect::CRect (sint32 x, sint32 y, uint32 width, uint32 height)
00092 {
00093 setWH(x, y, width, height);
00094 }
00095
00096
00097
00098
00099 }