#ifndef Box_h_ #define Box_h_ #include #include #define GLM_ENABLE_EXPERIMENTAL #include "glm/common.hpp" #include "glm/vec2.hpp" struct Box { SDL_FRect rect = {0, 0, 0, 0}; Box(glm::vec2 = {0, 0}, glm::vec2 = {0, 0}); float get_x() const; float get_y() const; float get_w() const; float get_h() const; void set_x(float); void set_y(float); void set_w(float); void set_h(float); glm::vec2 get_size() const; void set_size(const glm::vec2&); float get_top() const; float get_right() const; float get_bottom() const; float get_left() const; void set_top(float); void set_right(float); void set_bottom(float); void set_left(float); glm::vec2 get_nw() const; glm::vec2 get_north() const; glm::vec2 get_ne() const; glm::vec2 get_east() const; glm::vec2 get_south() const; glm::vec2 get_west() const; glm::vec2 get_center() const; void set_nw(const glm::vec2&); void set_north(const glm::vec2&); void set_ne(const glm::vec2&); void set_east(const glm::vec2&); void set_south(const glm::vec2&); void set_west(const glm::vec2&); void set_center(const glm::vec2&); SDL_FRect* get_rect(); void zero(); void move(const glm::vec2&); std::string get_class_name() { return "Box"; } std::ostream& to_string (std::ostream&) const; }; std::ostream& operator<<(std::ostream&, const Box&); #include "extension.hpp" #endif