Fix compilation for gcc/clang + tests for serialization

Former-commit-id: db9c93a1db3c57f268fc17e411402e071fc8675a
This commit is contained in:
Gawaboumga
2016-04-04 10:17:05 +02:00
parent 85c2cd43e7
commit 265e1c0fbd
20 changed files with 747 additions and 22 deletions

View File

@@ -636,7 +636,7 @@ namespace Nz
if (extend > Extend_Max)
return false;
boundingVolume->extend = extend;
boundingVolume->extend = static_cast<Extend>(extend);
if (!Unserialize(context, &boundingVolume->aabb))
return false;

View File

@@ -55,6 +55,11 @@ namespace Nz
String ToString() const;
template<typename U>
friend bool Serialize(SerializationContext& context, const Frustum<U>& frustum);
template<typename U>
friend bool Unserialize(SerializationContext& context, Frustum<U>* frustum);
private:
Vector3<T> m_corners[BoxCorner_Max+1];
Plane<T> m_planes[FrustumPlane_Max+1];
@@ -62,9 +67,6 @@ namespace Nz
typedef Frustum<double> Frustumd;
typedef Frustum<float> Frustumf;
template<typename T> bool Serialize(SerializationContext& context, const Frustum<T>& frustum);
template<typename T> bool Unserialize(SerializationContext& context, Frustum<T>* frustum);
}
template<typename T>

View File

@@ -688,13 +688,13 @@ namespace Nz
{
for (unsigned int i = 0; i <= BoxCorner_Max; ++i)
{
if (!Serialize(context, m_corners[i]))
if (!Serialize(context, frustum.m_corners[i]))
return false;
}
for (unsigned int i = 0; i <= FrustumPlane_Max; ++i)
{
if (!Serialize(context, m_planes[i]))
if (!Serialize(context, frustum.m_planes[i]))
return false;
}
@@ -702,24 +702,24 @@ namespace Nz
}
/*!
* \brief Unserializes a Matrix4
* \brief Unserializes a Frustum
* \return true if successfully unserialized
*
* \param context Serialization context
* \param matrix Output matrix
* \param matrix Output frustum
*/
template<typename T>
bool Unserialize(SerializationContext& context, Frustum<T>* frustum)
{
for (unsigned int i = 0; i <= BoxCorner_Max; ++i)
{
if (!Unserialize(context, &m_corners[i]))
if (!Unserialize(context, &frustum->m_corners[i]))
return false;
}
for (unsigned int i = 0; i <= FrustumPlane_Max; ++i)
{
if (!Unserialize(context, &m_planes[i]))
if (!Unserialize(context, &frustum->m_planes[i]))
return false;
}