Rework Serialization functions
add name and handle more types
This commit is contained in:
@@ -767,7 +767,7 @@ namespace Nz
|
||||
template<AngleUnit Unit, typename T>
|
||||
bool Serialize(SerializationContext& context, Angle<Unit, T> angle, TypeTag<Angle<Unit, T>>)
|
||||
{
|
||||
if (!Serialize(context, angle.value))
|
||||
if (!Serialize(context, "value", angle.value))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -783,7 +783,7 @@ namespace Nz
|
||||
template<AngleUnit Unit, typename T>
|
||||
bool Unserialize(SerializationContext& context, Angle<Unit, T>* angle, TypeTag<Angle<Unit, T>>)
|
||||
{
|
||||
if (!Unserialize(context, &angle->value))
|
||||
if (!Unserialize(context, "value", &angle->value))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -421,13 +421,13 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const BoundingVolume<T>& boundingVolume, TypeTag<BoundingVolume<T>>)
|
||||
{
|
||||
if (!Serialize(context, static_cast<UInt8>(boundingVolume.extent)))
|
||||
if (!Serialize(context, "extent", static_cast<UInt8>(boundingVolume.extent)))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, boundingVolume.aabb))
|
||||
if (!Serialize(context, "aabb", boundingVolume.aabb))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, boundingVolume.obb))
|
||||
if (!Serialize(context, "obb", boundingVolume.obb))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -446,7 +446,7 @@ namespace Nz
|
||||
bool Unserialize(SerializationContext& context, BoundingVolume<T>* boundingVolume, TypeTag<BoundingVolume<T>>)
|
||||
{
|
||||
UInt8 extend;
|
||||
if (!Unserialize(context, &extend))
|
||||
if (!Unserialize(context, "extent", &extend))
|
||||
return false;
|
||||
|
||||
if (extend > UnderlyingCast(Extent::Max))
|
||||
@@ -454,10 +454,10 @@ namespace Nz
|
||||
|
||||
boundingVolume->extent = static_cast<Extent>(extend);
|
||||
|
||||
if (!Unserialize(context, &boundingVolume->aabb))
|
||||
if (!Unserialize(context, "aabb", &boundingVolume->aabb))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &boundingVolume->obb))
|
||||
if (!Unserialize(context, "obb", &boundingVolume->obb))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -754,22 +754,22 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Box<T>& box, TypeTag<Box<T>>)
|
||||
{
|
||||
if (!Serialize(context, box.x))
|
||||
if (!Serialize(context, "x", box.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, box.y))
|
||||
if (!Serialize(context, "y", box.y))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, box.z))
|
||||
if (!Serialize(context, "z", box.z))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, box.width))
|
||||
if (!Serialize(context, "width", box.width))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, box.height))
|
||||
if (!Serialize(context, "height", box.height))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, box.depth))
|
||||
if (!Serialize(context, "depth", box.depth))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -785,22 +785,22 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Box<T>* box, TypeTag<Box<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &box->x))
|
||||
if (!Unserialize(context, "x", &box->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &box->y))
|
||||
if (!Unserialize(context, "y", &box->y))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &box->z))
|
||||
if (!Unserialize(context, "z", &box->z))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &box->width))
|
||||
if (!Unserialize(context, "width", &box->width))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &box->height))
|
||||
if (!Unserialize(context, "height", &box->height))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &box->depth))
|
||||
if (!Unserialize(context, "depth", &box->depth))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -294,13 +294,13 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const EulerAngles<T>& angles, TypeTag<EulerAngles<T>>)
|
||||
{
|
||||
if (!Serialize(context, angles.pitch))
|
||||
if (!Serialize(context, "pitch", angles.pitch))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, angles.yaw))
|
||||
if (!Serialize(context, "yaw", angles.yaw))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, angles.roll))
|
||||
if (!Serialize(context, "roll", angles.roll))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -316,13 +316,13 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, EulerAngles<T>* angles, TypeTag<EulerAngles<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &angles->pitch))
|
||||
if (!Unserialize(context, "pitch", &angles->pitch))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &angles->yaw))
|
||||
if (!Unserialize(context, "yaw", &angles->yaw))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &angles->roll))
|
||||
if (!Unserialize(context, "roll", &angles->roll))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -608,13 +608,7 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Frustum<T>& frustum, TypeTag<Frustum<T>>)
|
||||
{
|
||||
for (const auto& plane : frustum.m_planes)
|
||||
{
|
||||
if (!Serialize(context, plane))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return Serialize(context, "planes", frustum.m_planes);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -627,13 +621,7 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Frustum<T>* frustum, TypeTag<Frustum<T>>)
|
||||
{
|
||||
for (auto& plane : frustum->m_planes)
|
||||
{
|
||||
if (!Unserialize(context, &plane))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return Unserialize(context, "planes", &frustum->m_planes);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
@@ -1368,7 +1368,7 @@ namespace Nz
|
||||
{
|
||||
for (unsigned int i = 0; i < 16; ++i)
|
||||
{
|
||||
if (!Serialize(context, matrix[i]))
|
||||
if (!Serialize(context, "", matrix[i]))
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1388,7 +1388,7 @@ namespace Nz
|
||||
T* head = &matrix->m11;
|
||||
for (unsigned int i = 0; i < 16; ++i)
|
||||
{
|
||||
if (!Unserialize(context, head + i))
|
||||
if (!Unserialize(context, "", head + i))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -217,16 +217,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const OrientedBox<T>& obb, TypeTag<OrientedBox<T>>)
|
||||
{
|
||||
if (!Serialize(context, obb.localBox))
|
||||
if (!Serialize(context, "localBox", obb.localBox))
|
||||
return false;
|
||||
|
||||
for (auto&& corner : obb.m_corners)
|
||||
{
|
||||
if (!Serialize(context, corner))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return Serialize(context, "corners", obb.m_corners);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -239,16 +233,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, OrientedBox<T>* obb, TypeTag<OrientedBox<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &obb->localBox))
|
||||
if (!Unserialize(context, "localBox", &obb->localBox))
|
||||
return false;
|
||||
|
||||
for (auto&& corner : obb->m_corners)
|
||||
{
|
||||
if (!Unserialize(context, &corner))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return Unserialize(context, "corners", &obb->m_corners);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
@@ -282,10 +282,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Plane<T>& plane, TypeTag<Plane<T>>)
|
||||
{
|
||||
if (!Serialize(context, plane.normal))
|
||||
if (!Serialize(context, "normal", plane.normal))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, plane.distance))
|
||||
if (!Serialize(context, "distance", plane.distance))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -301,10 +301,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Plane<T>* plane, TypeTag<Plane<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &plane->normal))
|
||||
if (!Unserialize(context, "normal", &plane->normal))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &plane->distance))
|
||||
if (!Unserialize(context, "distance", &plane->distance))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -788,16 +788,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Quaternion<T>& quat, TypeTag<Quaternion<T>>)
|
||||
{
|
||||
if (!Serialize(context, quat.x))
|
||||
if (!Serialize(context, "x", quat.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, quat.y))
|
||||
if (!Serialize(context, "y", quat.y))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, quat.z))
|
||||
if (!Serialize(context, "z", quat.z))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, quat.w))
|
||||
if (!Serialize(context, "w", quat.w))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -813,16 +813,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Quaternion<T>* quat, TypeTag<Quaternion<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &quat->x))
|
||||
if (!Unserialize(context, "x", &quat->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &quat->y))
|
||||
if (!Unserialize(context, "y", &quat->y))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &quat->z))
|
||||
if (!Unserialize(context, "z", &quat->z))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &quat->w))
|
||||
if (!Unserialize(context, "w", &quat->w))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -575,10 +575,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Ray<T>& ray, TypeTag<Ray<T>>)
|
||||
{
|
||||
if (!Serialize(context, ray.origin))
|
||||
if (!Serialize(context, "origin", ray.origin))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, ray.direction))
|
||||
if (!Serialize(context, "direction", ray.direction))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -594,10 +594,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Ray<T>* ray, TypeTag<Ray<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &ray->origin))
|
||||
if (!Unserialize(context, "origin", &ray->origin))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &ray->direction))
|
||||
if (!Unserialize(context, "direction", &ray->direction))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -625,16 +625,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Rect<T>& rect, TypeTag<Rect<T>>)
|
||||
{
|
||||
if (!Serialize(context, rect.x))
|
||||
if (!Serialize(context, "x", rect.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, rect.y))
|
||||
if (!Serialize(context, "y", rect.y))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, rect.width))
|
||||
if (!Serialize(context, "width", rect.width))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, rect.height))
|
||||
if (!Serialize(context, "height", rect.height))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -650,16 +650,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Rect<T>* rect, TypeTag<Rect<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &rect->x))
|
||||
if (!Unserialize(context, "x", &rect->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &rect->y))
|
||||
if (!Unserialize(context, "y", &rect->y))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &rect->width))
|
||||
if (!Unserialize(context, "width", &rect->width))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &rect->height))
|
||||
if (!Unserialize(context, "height", &rect->height))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -507,16 +507,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Sphere<T>& sphere, TypeTag<Sphere<T>>)
|
||||
{
|
||||
if (!Serialize(context, sphere.x))
|
||||
if (!Serialize(context, "x", sphere.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, sphere.y))
|
||||
if (!Serialize(context, "y", sphere.y))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, sphere.z))
|
||||
if (!Serialize(context, "z", sphere.z))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, sphere.radius))
|
||||
if (!Serialize(context, "radius", sphere.radius))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -532,16 +532,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Sphere<T>* sphere, TypeTag<Sphere<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &sphere->x))
|
||||
if (!Unserialize(context, "x", &sphere->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &sphere->y))
|
||||
if (!Unserialize(context, "y", &sphere->y))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &sphere->z))
|
||||
if (!Unserialize(context, "z", &sphere->z))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &sphere->radius))
|
||||
if (!Unserialize(context, "radius", &sphere->radius))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -775,10 +775,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Vector2<T>& vector, TypeTag<Vector2<T>>)
|
||||
{
|
||||
if (!Serialize(context, vector.x))
|
||||
if (!Serialize(context, "x", vector.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, vector.y))
|
||||
if (!Serialize(context, "y", vector.y))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -794,10 +794,10 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Vector2<T>* vector, TypeTag<Vector2<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &vector->x))
|
||||
if (!Unserialize(context, "x", &vector->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &vector->y))
|
||||
if (!Unserialize(context, "y", &vector->y))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -956,13 +956,13 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Vector3<T>& vector, TypeTag<Vector3<T>>)
|
||||
{
|
||||
if (!Serialize(context, vector.x))
|
||||
if (!Serialize(context, "x", vector.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, vector.y))
|
||||
if (!Serialize(context, "y", vector.y))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, vector.z))
|
||||
if (!Serialize(context, "z", vector.z))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -978,13 +978,13 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Vector3<T>* vector, TypeTag<Vector3<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &vector->x))
|
||||
if (!Unserialize(context, "x", &vector->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &vector->y))
|
||||
if (!Unserialize(context, "y", &vector->y))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &vector->z))
|
||||
if (!Unserialize(context, "z", &vector->z))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -758,16 +758,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Serialize(SerializationContext& context, const Vector4<T>& vector, TypeTag<Vector4<T>>)
|
||||
{
|
||||
if (!Serialize(context, vector.x))
|
||||
if (!Serialize(context, "x", vector.x))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, vector.y))
|
||||
if (!Serialize(context, "y", vector.y))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, vector.z))
|
||||
if (!Serialize(context, "z", vector.z))
|
||||
return false;
|
||||
|
||||
if (!Serialize(context, vector.w))
|
||||
if (!Serialize(context, "w", vector.w))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -783,16 +783,16 @@ namespace Nz
|
||||
template<typename T>
|
||||
bool Unserialize(SerializationContext& context, Vector4<T>* vector, TypeTag<Vector4<T>>)
|
||||
{
|
||||
if (!Unserialize(context, &vector->x))
|
||||
if (!Unserialize(context, "x", &vector->x))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &vector->y))
|
||||
if (!Unserialize(context, "y", &vector->y))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &vector->z))
|
||||
if (!Unserialize(context, "z", &vector->z))
|
||||
return false;
|
||||
|
||||
if (!Unserialize(context, &vector->w))
|
||||
if (!Unserialize(context, "w", &vector->w))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user