#pragma once #include "Size.hpp" #include namespace frame { struct Vector { int32_t x; int32_t y; Vector() = default; Vector(int32_t x, int32_t y) : x(x) , y(y) { } Vector(Size const& size) : x(size.width) , y(size.height) { } void operator=(Size const& size) { x = size.width; y = size.height; } }; inline bool operator==(Vector const& a, Vector const& b) { return a.x == b.x && a.y == b.y; } inline bool operator!=(Vector const& a, Vector const& b) { return !(a == b); } inline Vector& operator+=(Vector& a, Vector const& b) { a.x += b.x; a.y += b.y; return a; } inline Vector& operator-=(Vector& a, Vector const& b) { a.x -= b.x; a.y -= b.y; return a; } inline std::ostream& operator<<(std::ostream& os, Vector const& v) { return os << "x: " << v.x << " y: " << v.y; } inline Vector operator+(Vector const& a, Vector const& b) { return {a.x + b.x, a.y + b.y}; } } // namespace frame