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

#pragma once

#include "glmRTTI.h"

namespace glm
{
	struct AssetManagerV1;

	/**
	* \brief Crowd Rendering Type
	*/
	struct RenderingTypeV0
	{
		GLM_RTTI("b5dbdf37-b8d9-4d5c-8779-b541d58649e2", RenderingTypeV0, addAttributes)
	public:

		GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

		/// The name of the rendering type
		glm::GlmString _name;

		/// The weights of assets, by asset group name
		glm::Array<std::pair<glm::GlmString, glm::PODArray<float> > > _assetWeights;

		/// The asset manager this rendering type is associated to
		AssetManagerV1* _assetManager;

		/// The number of entities that use this rendering type
		unsigned int _ownCount;

		RenderingTypeV0();

	protected:
		/**
		* \brief Inspection needed method declaring the inspectable attributes.
		*/
		static void addAttributes();
	};
}

