Vulkan Schnee
0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
GlmSerialize.cpp
Go to the documentation of this file.
1
#include <
Engine/Serialization/GlmSerialize.h
>
2
#include <glm/gtx/quaternion.hpp>
3
4
namespace
EngineCore
{
5
void
GlmSerialize::Serialize
(nlohmann::json &archive,
const
glm::vec3 &vector) {
6
archive[
VectorSerial::X
] = vector.x;
7
archive[
VectorSerial::Y
] = vector.y;
8
archive[
VectorSerial::Z
] = vector.z;
9
}
10
11
void
GlmSerialize::Serialize
(nlohmann::json &archive, glm::mat4 matrix) {
12
for
(uint8_t x = 0; x < 4; x++) {
13
for
(uint8_t y = 0; y < 4; y++) {
14
archive[x][y] = matrix[x][y];
15
}
16
}
17
}
18
19
void
GlmSerialize::Serialize
(nlohmann::json &archive, glm::quat quaternion) {
20
archive[
QuaternionSerial::X
] = quaternion.x;
21
archive[
QuaternionSerial::Y
] = quaternion.y;
22
archive[
QuaternionSerial::Z
] = quaternion.z;
23
archive[
QuaternionSerial::W
] = quaternion.w;
24
}
25
26
void
GlmSerialize::deserialize
(nlohmann::json &archive, glm::vec3 &vector) {
27
vector.x = archive.at(
VectorSerial::X
).get<
float
>();
28
vector.y = archive.at(
VectorSerial::Y
).get<
float
>();
29
vector.z = archive.at(
VectorSerial::Z
).get<
float
>();
30
}
31
32
void
GlmSerialize::deserialize
(nlohmann::json &archive, glm::mat4 &matrix) {
33
for
(uint8_t x = 0; x < 4; x++) {
34
for
(uint8_t y = 0; y < 4; y++) {
35
matrix[x][y] = archive[x][y];
36
}
37
}
38
}
39
40
void
GlmSerialize::deserialize
(nlohmann::json &archive, glm::quat &quaternion) {
41
quaternion.x = archive.at(
QuaternionSerial::X
).get<
float
>();
42
quaternion.y = archive.at(
QuaternionSerial::Y
).get<
float
>();
43
quaternion.z = archive.at(
QuaternionSerial::Z
).get<
float
>();
44
quaternion.w = archive.at(
QuaternionSerial::W
).get<
float
>();
45
}
46
}
GlmSerialize.h
EngineCore::GlmSerialize::QuaternionSerial::Z
static std::string Z
Definition
GlmSerialize.h:30
EngineCore::GlmSerialize::QuaternionSerial::Y
static std::string Y
Definition
GlmSerialize.h:29
EngineCore::GlmSerialize::QuaternionSerial::X
static std::string X
Definition
GlmSerialize.h:28
EngineCore::GlmSerialize::QuaternionSerial::W
static std::string W
Definition
GlmSerialize.h:31
EngineCore::GlmSerialize::VectorSerial::Z
static std::string Z
Definition
GlmSerialize.h:23
EngineCore::GlmSerialize::VectorSerial::X
static std::string X
Definition
GlmSerialize.h:21
EngineCore::GlmSerialize::VectorSerial::Y
static std::string Y
Definition
GlmSerialize.h:22
EngineCore::GlmSerialize::deserialize
static void deserialize(nlohmann::json &archive, glm::vec3 &vector)
Definition
GlmSerialize.cpp:26
EngineCore::GlmSerialize::Serialize
static void Serialize(nlohmann::json &archive, const glm::vec3 &vector)
Definition
GlmSerialize.cpp:5
EngineCore
Log category system implementation.
Definition
CameraComponent.cpp:8
Engine
src
Engine
Serialization
GlmSerialize.cpp
Generated by
1.14.0