CrossFramework Library
|
00001 00006 #if defined(XBASE_INCLUDED_AABBOX2I_HPP) 00007 #else 00008 #define XBASE_INCLUDED_AABBOX2I_HPP 00009 00010 //------------------------------------------------------------ 00011 #include <XBase/Vector2i.hpp> 00012 00013 //------------------------------------------------------------ 00014 namespace XBase { 00015 class AABBox2; 00016 } 00017 00018 //------------------------------------------------------------ 00019 namespace XBase { 00021 00022 00044 class AABBox2i 00045 { 00046 public: 00047 //------------------------------------------------------------ 00049 00050 static const AABBox2i Largest(); 00051 00052 00053 //------------------------------------------------------------ 00055 00056 AABBox2i(); 00057 AABBox2i( const Vector2iPOD& aBegin ); 00058 AABBox2i( const Vector2iPOD& aBegin , uint aWidth , uint aHeight ); 00059 00060 00061 //------------------------------------------------------------ 00063 00064 const Vector2iPOD begin()const; 00065 const Vector2iPOD end()const; 00066 const Vector2iPOD min()const; 00067 const Vector2iPOD term()const; 00068 00069 00070 //------------------------------------------------------------ 00072 00073 uint width()const; 00074 uint height()const; 00075 00076 00077 //------------------------------------------------------------ 00079 00080 bool isPositive()const; 00081 const AABBox2i toPositive()const; 00082 00083 00084 //------------------------------------------------------------ 00086 00087 const AABBox2i merge( const AABBox2i& aAABB )const; 00088 void mergeAssign( const AABBox2i& aAABB ); 00089 00090 00091 //------------------------------------------------------------ 00093 00094 00099 bool isIntersects( const AABBox2i& aAABB )const; 00100 00105 bool isContains( const Vector2iPOD& aPos )const; 00106 00112 bool isContains( const AABBox2i& aAABB )const; 00114 00115 //------------------------------------------------------------ 00117 00118 const AABBox2i add( const Vector2iPOD& aTrans )const; 00119 const AABBox2i sub( const Vector2iPOD& aTrans )const; 00120 void addAssign( const Vector2iPOD& aTrans ); 00121 void subAssign( const Vector2iPOD& aTrans ); 00122 00123 00124 //------------------------------------------------------------ 00126 00127 const AABBox2i operator+( const Vector2iPOD& )const; 00128 const AABBox2i operator-( const Vector2iPOD& )const; 00129 AABBox2i& operator+=( const Vector2iPOD& ); 00130 AABBox2i& operator-=( const Vector2iPOD& ); 00131 00132 00133 //------------------------------------------------------------ 00135 00136 const AABBox2 toAABB2f()const; 00137 00138 00139 private: 00140 Vector2i mMin; 00141 Vector2i mTerm; 00142 }; 00144 } 00145 //------------------------------------------------------------ 00146 #endif 00147 // EOF