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

#pragma once

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

namespace glm
{
    struct AssetManagerV2;
    struct GenericSpecificConverterMappingV5;
    class CharacterUserDataV0;

    struct GolaemCharacterV3 : public GolaemCharacterInterface
    {
        GLM_VIRTUAL_RTTI("41afbd35-0c01-4cf1-bc7e-92004ed9b3e0", glm::GolaemCharacterV3, addAttributes);

    public:
        GLM_CLASS_STAT_ID( glm::MemoryStatIds::Simulation)

        AssetManagerV2* _assetManager;

        GenericSpecificConverterMappingV5* _converterMapping; // animation data
        CharacterUserDataV0* _characterUserData;              // additional user data

        GolaemCharacterV3();
        ~GolaemCharacterV3();

    private:
        GLM_DISALLOW_COPY_AND_ASSIGN(GolaemCharacterV3);

        static void addAttributes();
    };
} // namespace glm
