rcpp_framework/core/math/rect2i.h

45 lines
1.0 KiB
C++

#ifndef RECT2I_H
#define RECT2I_H
#include "vector2i.h"
class Rect2i {
public:
float get_area() const;
bool intersects(const Rect2i &b) const;
bool intersects_include_borders(const Rect2i &b) const;
bool encloses(const Rect2i &b) const;
bool has_no_area() const;
bool has_point(const int px, const int py) const;
bool is_equal_approx(const Rect2i &b) const;
void grow(const int by);
void shrink(const int by);
void expand_to(const Vector2i &p_vector);
Vector2i position() const;
Vector2i size() const;
Rect2i &operator+=(const Rect2i &b);
Rect2i &operator-=(const Rect2i &b);
friend Rect2i operator+(Rect2i lhs, const Rect2i &rhs);
friend Rect2i operator-(Rect2i lhs, const Rect2i &rhs);
friend bool operator==(const Rect2i &a, const Rect2i &b);
friend bool operator!=(const Rect2i &a, const Rect2i &b);
Rect2i();
Rect2i(const Rect2i &b);
Rect2i(const int rx, const int ry);
Rect2i(const int rx, const int ry, const int rw, const int rh);
Rect2i(const Vector2i &position, const Vector2i &size);
int x;
int y;
int w;
int h;
};
#endif