#pragma once #include "interfaces/bounds.hpp" #include "interfaces/vector2.hpp" class Bounds : public IBounds { public: explicit Bounds(const IBoundsOptions &options); [[nodiscard]] unsigned int width() const override; void width(unsigned int width) override; [[nodiscard]] unsigned int height() const override; void height(unsigned int height) override; [[nodiscard]] CoordsValidation validate_coords(const IVector2 &coords) const override; const IBounds &operator*=(const IBounds &bounds) override; const IBounds &operator+=(const IBounds &bounds) override; const IBounds &operator-=(const IBounds &bounds) override; private: unsigned int _width = 0U; unsigned int _height = 0U; };