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

#pragma once

#include "glmRTTI.h"
#include "glmCoreAPI.h"

namespace glm
{
	struct GLM_CORE_API AssetUnitV0
	{
		GLM_RTTI("20582eb3-50e1-4dde-8148-da5f9e05d5eb", AssetUnitV0, addAttributes);

	public:
		GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

		int _meshAssetIdx;
		int _assetGroupIdx;

		AssetUnitV0();
		~AssetUnitV0();

	protected:
		static void addAttributes();
	};

	/**
	* \brief Group of assets
	*/
	struct GLM_CORE_API AssetGroupV0
	{
		GLM_RTTI("2d9f936e-9230-4521-9d6d-2bad415fcf12", AssetGroupV0, addAttributes);

	public:
		GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

		/// The name of the group
		glm::GlmString _name;

		/// The children
		glm::Array<AssetUnitV0> _children;

		glm::PODArray<float> _weights; // if weights are empty all the children are selected

		glm::Array<AssetUnitV0> _excludedAssets;

		AssetGroupV0();
		~AssetGroupV0();

	protected:
		static void addAttributes();
	};
}

