You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
643 B
29 lines
643 B
#pragma once |
|
|
|
#include "engine/point.hpp" |
|
#include "engine/size.hpp" |
|
|
|
namespace devilution { |
|
|
|
struct Rectangle { |
|
Point position; |
|
Size size; |
|
|
|
constexpr bool Contains(Point point) const |
|
{ |
|
return point.x >= this->position.x |
|
&& point.x < (this->position.x + this->size.width) |
|
&& point.y >= this->position.y |
|
&& point.y < (this->position.y + this->size.height); |
|
} |
|
|
|
/** |
|
* @brief Computes the center of this rectangle in integer coordinates. Values are truncated towards zero. |
|
*/ |
|
constexpr Point Center() const |
|
{ |
|
return position + Displacement(size / 2); |
|
} |
|
}; |
|
|
|
} // namespace devilution
|
|
|