#pragma once #include "Vector2.hpp" #include "Vector4.hpp" #include "Types.hpp" #include namespace TSE { class Rect { public: Vector2 p1, p2; /// @brief default constructer wicht all points starting at (0,0) Rect(); /// @brief constructor with floats for custom values /// @param x1 x component of min /// @param y1 y component of min /// @param x2 x component of max /// @param y2 y component of max Rect(float x1, float y1, float x2, float y2); /// @brief constructer with Vector2 for custom values /// @param _p1 min /// @param _p2 max Rect(const Vector2& _p1, const Vector2& _p2); /// @brief constructor wich Vector4 for custom Values /// @param v min -> (x,y) max -> (z,w) Rect(const Vector4& v); /// @brief copy constructor /// @param r the rect to me copied Rect(const Rect& r); /// @brief gives you the current width of the rect /// @return the width in local rect space float width() const; /// @brief gives you the current height of the rect /// @return the height in local rect space float height() const; /// @brief gives you the area of the rect based on the height() and width() functions /// @return the area in local rect space float area() const; bool operator==(const Rect& other) const; bool operator!=(const Rect& other) const; }; } // namespace TSE