Files
TSE/TSE_Math/src/Rect.hpp

49 lines
1.5 KiB
C++

#pragma once
#include "Vector2.hpp"
#include "Vector4.hpp"
#include "Types.hpp"
#include <vector>
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