Smolgui
Immediate gui library based on SFML
Loading...
Searching...
No Matches
SerializeSFML.h
Go to the documentation of this file.
1#pragma once
2
3#include <nlohmann/json.hpp>
4#include <SFML/Graphics/Rect.hpp>
5#include <SFML/Graphics/Color.hpp>
6#include <SFML/System/Vector3.hpp>
7
9
10// for readability
11using json = nlohmann::json;
12
13namespace sf
14{
19
23template <typename T>
24void to_json (json& j, const sf::Vector2<T>& vector) {
25 j = json {
26 ToJson (vector, x),
27 ToJson (vector, y)
28 };
29}
30
31template <typename T>
32void from_json (const json& j, sf::Vector2<T>& vector) {
33 FromJson (vector, x);
34 FromJson (vector, y);
35}
36
40template <typename T>
41void to_json (json& j, const sf::Vector3<T>& vector) {
42 j = json {
43 ToJson (vector, x),
44 ToJson (vector, y),
45 ToJson (vector, z)
46 };
47}
48
49template <typename T>
50void from_json (const json& j, sf::Vector3<T>& vector) {
51 FromJson (vector, x);
52 FromJson (vector, y);
53 FromJson (vector, z);
54}
55
59template <typename T>
60void to_json (json& j, const sf::Rect<T>& rect) {
61 j = json {
62 ToJson (rect, position),
63 ToJson (rect, size)
64 };
65}
66
67template <typename T>
68void from_json (const json& j, sf::Rect<T>& rect) {
69 FromJson (rect, position);
70 FromJson (rect, size);
71}
72
73} // namespace sf
nlohmann::json json
Definition LoadJson.h:8
#define FromJson(object, member)
Definition Macro.h:7
#define ToJson(object, member)
Definition Macro.h:6
Definition Interpolation.h:11
Definition Interpolation.h:12
Definition Interpolation.h:9
void to_json(json &j, const sf::Vector2< T > &vector)
Definition SerializeSFML.h:24
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Color, r, g, b, a)
void from_json(const json &j, sf::Vector2< T > &vector)
Definition SerializeSFML.h:32