#pragma once using microsec = long long; struct Coordinates { float x = 0.; float y = 0.; constexpr inline Coordinates operator+(const Coordinates& right) const noexcept { return {right.x + x, right.y + y}; } constexpr inline Coordinates operator-(const Coordinates& right) const noexcept { return {right.x - x, right.y - y}; } inline void moveBy(float x, float y) noexcept { this->x += x; this->y += y; } inline void moveBy(const Coordinates& right) noexcept { this->x += right.x; this->y += right.y; } inline void scale(float factor) noexcept { x *= factor; y *= factor; } };