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

#pragma once

#include "glmSDKAPI.h"
#include "glmMotionDefinitions.h"
#include "glmMemory.h"

namespace glm
{
    class AnimationInterface;

    class GLM_SDK_API MotionCollectionInterface
    {
    public: //static data
        GLM_ABSTRACTCLASS_STAT_ID(glm::MemoryStatIds::Simulation)

    public: //methods
        MotionCollectionInterface() {}
        virtual ~MotionCollectionInterface() {}

        virtual const char* getName() const = 0;

        virtual bool initMotionCollection() = 0;
        virtual void clearMotionCollection() = 0;

        virtual size_t getAnimationsCount() const = 0;
        virtual const AnimationInterface* getAnimation(size_t animationIndex) const = 0;
        virtual AnimationInterface* touchAnimation(size_t animationIndex) = 0;
    };
} // namespace glm
