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

#pragma once

#include "glmRTTI.h"

#include "glmAssetGroup.h"
#include "glmAssetGroupV1.h"
#include "glmClothAsset.h"

#include "glmMeshAssetV1.h"

namespace glm
{
    /**
	* \brief Mesh Asset
	* \ introduction of ClothAssetV0
	*/
    struct GLM_CORE_API MeshAssetV2
    {
        GLM_RTTI("71cd3d9c-af8a-487e-8ed9-29a0285858bb", MeshAssetV2, addAttributes)
    public:
        GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

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

        glm::PODArray<int> _shadingGroups;

        glm::Array<AssetUnitV1> _excludedAssets;

        ClothAssetV0 _clothAsset;

        MeshAssetV2();
        MeshAssetV2(MeshAssetV1& meshAssetV1);

        /**
		* \brief V0 backwards compatibility
		*/
        void createFromV1(MeshAssetV1& meshAssetV1);

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