blob: 41b6dc08f4ed08df94cf7ef2f74ff91a3dda6ec7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#include "bounds.hpp"
Bounds::Bounds(const BoundsOptions &options)
: _width(options.width), _height(options.height)
{
}
uint32_t Bounds::get_width() const noexcept
{
return _width;
}
void Bounds::set_width(uint32_t width) noexcept
{
_width = width;
}
uint32_t Bounds::get_height() const noexcept
{
return _height;
}
void Bounds::set_height(uint32_t height) noexcept
{
_height = height;
}
CoordsValidation Bounds::validate_coords(const Vector2 &coords) const noexcept
{
if (static_cast<uint32_t>(coords.get_x()) >= _width)
{
return CoordsValidation::X_HIGH;
}
if (static_cast<uint32_t>(coords.get_x()) <= 0)
{
return CoordsValidation::X_LOW;
}
if (static_cast<uint32_t>(coords.get_y()) >= _height)
{
return CoordsValidation::Y_HIGH;
}
if (static_cast<uint32_t>(coords.get_y()) <= 0)
{
return CoordsValidation::Y_LOW;
}
return CoordsValidation::VALID;
}
const Bounds &Bounds::operator*=(const Bounds &bounds) noexcept
{
_width *= bounds._width;
_height *= bounds._height;
return *this;
}
const Bounds &Bounds::operator+=(const Bounds &bounds) noexcept
{
_width += bounds._width;
_height += bounds._height;
return *this;
}
const Bounds &Bounds::operator-=(const Bounds &bounds) noexcept
{
_width -= bounds._width;
_height -= bounds._height;
return *this;
}
|