Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
GlmSerialize.cpp
Go to the documentation of this file.
2#include <glm/gtx/quaternion.hpp>
3
4namespace 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}
static void deserialize(nlohmann::json &archive, glm::vec3 &vector)
static void Serialize(nlohmann::json &archive, const glm::vec3 &vector)
Log category system implementation.