Skip to content

Commit 0a1b04d

Browse files
committed
General cleanup.
1 parent 8d3dc84 commit 0a1b04d

12 files changed

Lines changed: 218 additions & 371 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ OverEngineProfile-Runtime.json
3434
OverEngineProfile-Shutdown.json
3535

3636
# Other
37+
Sandbox/SandboxScene.oes
3738
OverEngine.log
3839
imgui.ini
39-

OverEngine/src/OverEngine/Core/Runtime/Serialization/ObjectSerializer.h

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#pragma once
2+
3+
#include "OverEngine/Core/Core.h"
4+
#include <yaml-cpp/yaml.h>
5+
6+
namespace OverEngine
7+
{
8+
template <typename T>
9+
class YamlEmitter;
10+
11+
#define OE_DECL_EMITTER(T) \
12+
template<> \
13+
struct YamlEmitter<T> \
14+
{ \
15+
static void Emit(YAML::Emitter& out, const T& v); \
16+
};
17+
18+
template <typename T>
19+
class YamlDecoder;
20+
21+
#define OE_DECL_DECODER(T) \
22+
template<> \
23+
struct YamlDecoder<T> \
24+
{ \
25+
static bool Decode(const YAML::Node& node, T& rhs); \
26+
};
27+
}
28+
29+
namespace YAML
30+
{
31+
template <typename T>
32+
YAML::Emitter& operator<<(YAML::Emitter& out, const T& v)
33+
{
34+
::OverEngine::YamlEmitter<T>::Emit(out, v);
35+
return out;
36+
}
37+
38+
template <typename T>
39+
struct convert<T, 0>
40+
{
41+
public:
42+
static bool decode(const Node& node, T& rhs)
43+
{
44+
return ::OverEngine::YamlDecoder<T>::Decode(node, rhs);
45+
}
46+
};
47+
}
Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,56 @@
11
#include "pcheader.h"
22
#include "YamlConverters.h"
33

4-
YAML::Emitter& operator<<(YAML::Emitter& out, const OverEngine::Vector2& v)
4+
namespace OverEngine
55
{
6-
out << YAML::Flow;
7-
out << YAML::BeginSeq << v.x << v.y << YAML::EndSeq;
8-
return out;
9-
}
6+
bool YamlDecoder<Vector2>::Decode(const YAML::Node& node, Vector2& rhs)
7+
{
8+
if (!node.IsSequence() || node.size() != 2)
9+
return false;
1010

11-
YAML::Emitter& operator<<(YAML::Emitter& out, const OverEngine::Vector3& v)
12-
{
13-
out << YAML::Flow;
14-
out << YAML::BeginSeq << v.x << v.y << v.z << YAML::EndSeq;
15-
return out;
16-
}
11+
rhs.x = node[0].as<float>();
12+
rhs.y = node[1].as<float>();
13+
return true;
14+
}
1715

18-
YAML::Emitter& operator<<(YAML::Emitter& out, const OverEngine::Vector4& v)
19-
{
20-
out << YAML::Flow;
21-
out << YAML::BeginSeq << v.x << v.y << v.z << v.w << YAML::EndSeq;
22-
return out;
16+
bool YamlDecoder<Vector3>::Decode(const YAML::Node& node, Vector3& rhs)
17+
{
18+
if (!node.IsSequence() || node.size() != 3)
19+
return false;
20+
21+
rhs.x = node[0].as<float>();
22+
rhs.y = node[1].as<float>();
23+
rhs.z = node[2].as<float>();
24+
return true;
25+
}
26+
27+
bool YamlDecoder<Vector4>::Decode(const YAML::Node& node, Vector4& rhs)
28+
{
29+
if (!node.IsSequence() || node.size() != 4)
30+
return false;
31+
32+
rhs.r = node[0].as<float>();
33+
rhs.g = node[1].as<float>();
34+
rhs.b = node[2].as<float>();
35+
rhs.a = node[3].as<float>();
36+
return true;
37+
}
38+
39+
void YamlEmitter<Vector2>::Emit(YAML::Emitter& out, const Vector2& v)
40+
{
41+
out << YAML::Flow;
42+
out << YAML::BeginSeq << v.x << v.y << YAML::EndSeq;
43+
}
44+
45+
void YamlEmitter<Vector3>::Emit(YAML::Emitter& out, const Vector3& v)
46+
{
47+
out << YAML::Flow;
48+
out << YAML::BeginSeq << v.x << v.y << v.z << YAML::EndSeq;
49+
}
50+
51+
void YamlEmitter<Vector4>::Emit(YAML::Emitter& out, const Vector4& v)
52+
{
53+
out << YAML::Flow;
54+
out << YAML::BeginSeq << v.x << v.y << v.z << v.w << YAML::EndSeq;
55+
}
2356
}
Lines changed: 8 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,16 @@
11
#pragma once
22

3+
#include "Serialization.h"
34
#include "OverEngine/Core/Core.h"
45
#include "OverEngine/Core/Math/Math.h"
56

6-
#include <yaml-cpp/yaml.h>
7-
8-
namespace YAML
7+
namespace OverEngine
98
{
10-
template<>
11-
struct convert<OverEngine::Vector2>
12-
{
13-
static Node encode(const OverEngine::Vector2& rhs)
14-
{
15-
Node node;
16-
node.push_back(rhs.x);
17-
node.push_back(rhs.y);
18-
node.SetStyle(EmitterStyle::Flow);
19-
return node;
20-
}
21-
22-
static bool decode(const Node& node, OverEngine::Vector2& rhs)
23-
{
24-
if (!node.IsSequence() || node.size() != 2)
25-
return false;
26-
27-
rhs.x = node[0].as<float>();
28-
rhs.y = node[1].as<float>();
29-
return true;
30-
}
31-
};
32-
33-
template<>
34-
struct convert<OverEngine::Vector3>
35-
{
36-
static Node encode(const OverEngine::Vector3& rhs)
37-
{
38-
Node node;
39-
node.push_back(rhs.x);
40-
node.push_back(rhs.y);
41-
node.SetStyle(EmitterStyle::Flow);
42-
return node;
43-
}
44-
45-
static bool decode(const Node& node, OverEngine::Vector3& rhs)
46-
{
47-
if (!node.IsSequence() || node.size() != 3)
48-
return false;
9+
OE_DECL_DECODER(Vector2)
10+
OE_DECL_DECODER(Vector3)
11+
OE_DECL_DECODER(Vector4)
4912

50-
rhs.x = node[0].as<float>();
51-
rhs.y = node[1].as<float>();
52-
rhs.z = node[2].as<float>();
53-
return true;
54-
}
55-
};
56-
57-
template<>
58-
struct convert<OverEngine::Vector4>
59-
{
60-
static Node encode(const OverEngine::Vector4& rhs)
61-
{
62-
Node node;
63-
node.push_back(rhs.x);
64-
node.push_back(rhs.y);
65-
node.push_back(rhs.z);
66-
node.push_back(rhs.w);
67-
node.SetStyle(EmitterStyle::Flow);
68-
return node;
69-
}
70-
71-
static bool decode(const Node& node, OverEngine::Vector4& rhs)
72-
{
73-
if (!node.IsSequence() || node.size() != 4)
74-
return false;
75-
76-
rhs.r = node[0].as<float>();
77-
rhs.g = node[1].as<float>();
78-
rhs.b = node[2].as<float>();
79-
rhs.a = node[3].as<float>();
80-
return true;
81-
}
82-
};
13+
OE_DECL_EMITTER(Vector2)
14+
OE_DECL_EMITTER(Vector3)
15+
OE_DECL_EMITTER(Vector4)
8316
}
84-
85-
YAML::Emitter& operator<<(YAML::Emitter& out, const OverEngine::Vector2& v);
86-
YAML::Emitter& operator<<(YAML::Emitter& out, const OverEngine::Vector3& v);
87-
YAML::Emitter& operator<<(YAML::Emitter& out, const OverEngine::Vector4& v);

0 commit comments

Comments
 (0)