diff options
Diffstat (limited to 'Source/modules/asura-base/Math/Rect.hpp')
-rw-r--r-- | Source/modules/asura-base/Math/Rect.hpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/modules/asura-base/Math/Rect.hpp b/Source/modules/asura-base/Math/Rect.hpp new file mode 100644 index 0000000..af4fa78 --- /dev/null +++ b/Source/modules/asura-base/Math/Rect.hpp @@ -0,0 +1,50 @@ +#ifndef _ASURA_ENGINE_RECT_H_ +#define _ASURA_ENGINE_RECT_H_ + +namespace AsuraEngine +{ +namespace Math +{ + +template<typename T> +struct Rect +{ +public: + Rect(); + Rect(T x, T y, T w, T h); + ~Rect() {}; + + /// + /// x,yǷrectڡ + /// + bool Contain(T x, T y); + + /// + /// Ƿཻཻľ + /// + bool Intersect(const Rect& src, Rect& intersection); + + /// + /// Ƿཻཻľ + /// + static bool Intersect(const Rect<T>& src1, const Rect<T>& src2, Rect<T>& intersection); + + void Set(T x, T y, T w, T h); + + T x, y, w, h; +}; + +#include "Rect.inc" + +// Define the most common types +typedef Rect<int> Recti; +typedef Rect<unsigned int> Rectu; +typedef Rect<float> Rectf; +typedef Rect<long> Reftl; + +} +} + +namespace AEMath = AsuraEngine::Math; + +#endif
\ No newline at end of file |