#pragma once #include "Game/SaveMap/ISave.h" struct Vector3D; struct Vector2D : public ISave { double x = 0, y = 0; Vector2D() = default; Vector2D(const double x, const double y); Vector2D(const Vector3D& vec3D); Vector2D operator+(const Vector2D& v) const; Vector2D operator-(const Vector2D& v) const; std::shared_ptr save() override; void load(std::shared_ptr save) override; }; struct Vector3D : public ISave { double x = 0, y = 0, z = 0; Vector3D() = default; Vector3D(const double x, const double y, const double z); Vector3D(const Vector2D& vec2D); Vector3D operator+(const Vector3D& v) const; Vector3D operator-(const Vector3D& v) const; std::shared_ptr save() override; void load(std::shared_ptr save) override; };