Unravel Engine C++ Reference
Loading...
Searching...
No Matches
vector.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <math/math.h>
6
7namespace ser20
8{
9template<typename Archive, typename T, math::qualifier P>
10inline void SERIALIZE_FUNCTION_NAME(Archive& ar, math::tvec2<T, P>& obj)
11{
12 try_serialize(ar, ser20::make_nvp("x", obj.x));
13 try_serialize(ar, ser20::make_nvp("y", obj.y));
14}
15
16template<typename Archive, typename T, math::qualifier P>
17inline void SERIALIZE_FUNCTION_NAME(Archive& ar, math::tvec3<T, P>& obj)
18{
19 try_serialize(ar, ser20::make_nvp("x", obj.x));
20 try_serialize(ar, ser20::make_nvp("y", obj.y));
21 try_serialize(ar, ser20::make_nvp("z", obj.z));
22}
23
24template<typename Archive, typename T, math::qualifier P>
25inline void SERIALIZE_FUNCTION_NAME(Archive& ar, math::tvec4<T, P>& obj)
26{
27 try_serialize(ar, ser20::make_nvp("x", obj.x));
28 try_serialize(ar, ser20::make_nvp("y", obj.y));
29 try_serialize(ar, ser20::make_nvp("z", obj.z));
30 try_serialize(ar, ser20::make_nvp("w", obj.w));
31}
32
33template<typename Archive>
34inline void SERIALIZE_FUNCTION_NAME(Archive& ar, math::color& obj)
35{
36 try_serialize(ar, ser20::make_nvp("r", obj.value.r));
37 try_serialize(ar, ser20::make_nvp("g", obj.value.g));
38 try_serialize(ar, ser20::make_nvp("b", obj.value.b));
39 try_serialize(ar, ser20::make_nvp("a", obj.value.a));
40}
41
42
43template<typename Archive, typename T>
45{
46 try_serialize(ar, ser20::make_nvp("progress", obj.progress));
47 try_serialize(ar, ser20::make_nvp("element", obj.element));
48}
49
50
51template<typename Archive, typename T>
52inline void SAVE_FUNCTION_NAME(Archive& ar, const math::gradient<T>& obj)
53{
54 const auto& points = obj.get_points();
55 try_save(ar, ser20::make_nvp("points", points));
56}
57template<typename Archive, typename T>
58inline void LOAD_FUNCTION_NAME(Archive& ar, math::gradient<T>& obj)
59{
60 std::vector<typename math::gradient<T>::point_t> points;
61 if(try_load(ar, ser20::make_nvp("points", points)))
62 {
63 obj.set_points(points);
64 }
65}
66
67
68} // namespace ser20
auto get_points() const noexcept -> const points_t &
Definition gradient.hpp:45
void set_points(const points_t &points)
Definition gradient.hpp:37
Definition yaml.hpp:46
auto try_serialize(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool
auto try_save(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool
#define LOAD_FUNCTION_NAME
#define SERIALIZE_FUNCTION_NAME
auto try_load(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool
#define SAVE_FUNCTION_NAME
vec4 value
Definition color.h:80