/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
***************************************************************************/

#pragma once

#include "glmTypes.h"
#include "glmHierarchicalBoneV0.h"

namespace glm
{

	struct HierarchicalSkeletonDescriptionV0
	{
		GLM_VIRTUAL_RTTI( "e57e4f19-c3b3-4a37-a4f1-9bb2e3a9f5c3", glm::HierarchicalSkeletonDescriptionV0, addAttributes )

	public:

		GLM_CLASS_STAT_ID( glm::MemoryStatIds::Simulation)

		HierarchicalSkeletonDescriptionV0();
		virtual ~HierarchicalSkeletonDescriptionV0();

		//************************************************************
		//! @name Serialized data
		//************************************************************
		//@{
		glm::GlmString	_name;
		HierarchicalBoneV0*			_rootBone;		//!< root bone of the skeleton
		Array<HierarchicalBoneV0*>	_bones;			//!< list of all bones of the skeleton (including the root bone)
		//@}

		/** 
		* \brief Clear the description and destruct bones
		*/
		virtual void clear();

	private:
		GLM_DISALLOW_COPY_AND_ASSIGN(HierarchicalSkeletonDescriptionV0);

		static void addAttributes() ;
	};
}
