#ifndef __ENGINE_SERIALIZATION_UTILITIES_H__
#define __ENGINE_SERIALIZATION_UTILITIES_H__

#include "3dmath/Quaternion.h"
#include "3dmath/Vector.h"
#include "bones/BoneAnimationSequence.h"

struct JSONNode;
struct Skeleton;

struct BoneAnimationList * BoneAnimationList_fromJSON(struct JSONNode * rootNode);
void BoneAnimationList_loadJSON(struct BoneAnimationList * self, struct JSONNode * rootNode);

struct BoneAnimationSequence_keyframe_boneTransform BoneAnimationSequence_keyframe_boneTransform_fromJSON(struct JSONNode * rootNode);
struct BoneAnimationSequence_keyframe BoneAnimationSequence_keyframe_fromJSON(struct JSONNode * rootNode);
BoneAnimationSequence * BoneAnimationSequence_fromJSON(struct JSONNode * rootNode);
Quaternion Quaternion_fromJSON(struct JSONNode * rootNode);

struct Skeleton * Skeleton_fromJSON(struct JSONNode * rootNode);
void Skeleton_loadJSON(struct Skeleton * self, struct JSONNode * rootNode);

Vector3 Vector3_fromJSON(struct JSONNode * rootNode);

#endif
