Я пересоздал репозиторий из-за большого количества мусора в прошлом
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#include "Vector.h"
|
||||
|
||||
#include "Game/SaveMap/SaveMap.h"
|
||||
|
||||
Vector2D::Vector2D(const double x, const double y) : x(x), y(y)
|
||||
{}
|
||||
|
||||
Vector2D::Vector2D(const Vector3D& vec3D) : x(vec3D.x), y(vec3D.y)
|
||||
{}
|
||||
|
||||
Vector2D Vector2D::operator+(const Vector2D& v) const
|
||||
{
|
||||
return Vector2D{ x + v.x, y + v.y };
|
||||
}
|
||||
|
||||
Vector2D Vector2D::operator-(const Vector2D& v) const
|
||||
{
|
||||
return Vector2D{ x - v.x, y - v.y };
|
||||
}
|
||||
|
||||
std::shared_ptr<SaveMap> Vector2D::save()
|
||||
{
|
||||
std::unique_ptr<SaveMap> save = std::make_unique<SaveMap>("Vector2D");
|
||||
save->SaveDouble("x", x)->SaveDouble("y", y);
|
||||
return save;
|
||||
}
|
||||
|
||||
void Vector2D::load(std::shared_ptr<SaveMap> save)
|
||||
{
|
||||
x = save->GetDouble("x");
|
||||
y = save->GetDouble("y");
|
||||
}
|
||||
|
||||
Vector3D::Vector3D(const double x, const double y, const double z) : x(x), y(y), z(z)
|
||||
{}
|
||||
|
||||
Vector3D::Vector3D(const Vector2D& vec2D) : x(vec2D.x), y(vec2D.y)
|
||||
{}
|
||||
|
||||
Vector3D Vector3D::operator+(const Vector3D& v) const
|
||||
{
|
||||
return Vector3D{x + v.x, y + v.y, z + v.z};
|
||||
}
|
||||
|
||||
Vector3D Vector3D::operator-(const Vector3D& v) const
|
||||
{
|
||||
return Vector3D{ x - v.x, y - v.y, z - v.z };
|
||||
}
|
||||
|
||||
std::shared_ptr<SaveMap> Vector3D::save()
|
||||
{
|
||||
std::unique_ptr<SaveMap> save = std::make_unique<SaveMap>("Vector3D");
|
||||
save->SaveDouble("x", x)->SaveDouble("y", y)->SaveDouble("z", z);
|
||||
return save;
|
||||
}
|
||||
|
||||
void Vector3D::load(std::shared_ptr<SaveMap> save)
|
||||
{
|
||||
x = save->GetDouble("x");
|
||||
y = save->GetDouble("y");
|
||||
z = save->GetDouble("z");
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
#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<SaveMap> save() override;
|
||||
void load(std::shared_ptr<SaveMap> 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<SaveMap> save() override;
|
||||
void load(std::shared_ptr<SaveMap> save) override;
|
||||
};
|
||||
Reference in New Issue
Block a user