Loading utils/include/utils/serialization.hpp +69 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,18 @@ inline void serialize_reflection_value(Serializer& s, const com::Reflection::Val case com::Reflection::TypeID::VEC4U: s.object(com::as<com::Reflection::ValueVEC4U>(value)->value); break; case com::Reflection::TypeID::MAT2X2: s.object(com::as<com::Reflection::ValueMAT2X2>(value)->value); break; case com::Reflection::TypeID::MAT3X3: s.object(com::as<com::Reflection::ValueMAT3X3>(value)->value); break; case com::Reflection::TypeID::MAT4X4: s.object(com::as<com::Reflection::ValueMAT4X4>(value)->value); break; case com::Reflection::TypeID::QUAT: s.object(com::as<com::Reflection::ValueQUAT>(value)->value); break; case com::Reflection::TypeID::PATH: serialize_path(s, com::as<com::Reflection::ValuePATH>(value)->value); break; Loading Loading @@ -196,6 +208,30 @@ inline com::Reflection::ValuePtr deserialize_reflection_value(Deserializer& s) s.object(value); return com::make_value<com::Reflection::ValueVEC4U>(value); } case com::Reflection::TypeID::MAT2X2: { mat2x2 value; s.object(value); return com::make_value<com::Reflection::ValueMAT2X2>(value); } case com::Reflection::TypeID::MAT3X3: { mat3x3 value; s.object(value); return com::make_value<com::Reflection::ValueMAT3X3>(value); } case com::Reflection::TypeID::MAT4X4: { mat4x4 value; s.object(value); return com::make_value<com::Reflection::ValueMAT4X4>(value); } case com::Reflection::TypeID::QUAT: { quat value; s.object(value); return com::make_value<com::Reflection::ValueQUAT>(value); } case com::Reflection::TypeID::PATH: { com::ContextPath value; Loading Loading @@ -281,4 +317,37 @@ namespace bitsery { s.value4b(v.z); s.value4b(v.w); } template <typename S> void serialize(S& s, mat2x2& m) { s.object(m[0]); s.object(m[1]); } template <typename S> void serialize(S& s, mat3x3& m) { s.object(m[0]); s.object(m[1]); s.object(m[2]); } template <typename S> void serialize(S& s, mat4x4& m) { s.object(m[0]); s.object(m[1]); s.object(m[2]); s.object(m[3]); } template <typename S> void serialize(S& s, quat& q) { s.value4b(q.x); s.value4b(q.y); s.value4b(q.z); s.value4b(q.w); } } Loading
utils/include/utils/serialization.hpp +69 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,18 @@ inline void serialize_reflection_value(Serializer& s, const com::Reflection::Val case com::Reflection::TypeID::VEC4U: s.object(com::as<com::Reflection::ValueVEC4U>(value)->value); break; case com::Reflection::TypeID::MAT2X2: s.object(com::as<com::Reflection::ValueMAT2X2>(value)->value); break; case com::Reflection::TypeID::MAT3X3: s.object(com::as<com::Reflection::ValueMAT3X3>(value)->value); break; case com::Reflection::TypeID::MAT4X4: s.object(com::as<com::Reflection::ValueMAT4X4>(value)->value); break; case com::Reflection::TypeID::QUAT: s.object(com::as<com::Reflection::ValueQUAT>(value)->value); break; case com::Reflection::TypeID::PATH: serialize_path(s, com::as<com::Reflection::ValuePATH>(value)->value); break; Loading Loading @@ -196,6 +208,30 @@ inline com::Reflection::ValuePtr deserialize_reflection_value(Deserializer& s) s.object(value); return com::make_value<com::Reflection::ValueVEC4U>(value); } case com::Reflection::TypeID::MAT2X2: { mat2x2 value; s.object(value); return com::make_value<com::Reflection::ValueMAT2X2>(value); } case com::Reflection::TypeID::MAT3X3: { mat3x3 value; s.object(value); return com::make_value<com::Reflection::ValueMAT3X3>(value); } case com::Reflection::TypeID::MAT4X4: { mat4x4 value; s.object(value); return com::make_value<com::Reflection::ValueMAT4X4>(value); } case com::Reflection::TypeID::QUAT: { quat value; s.object(value); return com::make_value<com::Reflection::ValueQUAT>(value); } case com::Reflection::TypeID::PATH: { com::ContextPath value; Loading Loading @@ -281,4 +317,37 @@ namespace bitsery { s.value4b(v.z); s.value4b(v.w); } template <typename S> void serialize(S& s, mat2x2& m) { s.object(m[0]); s.object(m[1]); } template <typename S> void serialize(S& s, mat3x3& m) { s.object(m[0]); s.object(m[1]); s.object(m[2]); } template <typename S> void serialize(S& s, mat4x4& m) { s.object(m[0]); s.object(m[1]); s.object(m[2]); s.object(m[3]); } template <typename S> void serialize(S& s, quat& q) { s.value4b(q.x); s.value4b(q.y); s.value4b(q.z); s.value4b(q.w); } }