#pragma once #include "../RetroTypes.hpp" namespace urde { class CAnimTreeNode; struct CAnimSysContext; enum class EMetaTransType { MetaAnim, Trans, PhaseTrans, Snap }; class IMetaTrans { public: virtual ~IMetaTrans() = default; virtual std::shared_ptr VGetTransitionTree(const std::weak_ptr& a, const std::weak_ptr& b, const CAnimSysContext& animSys) const=0; virtual EMetaTransType GetType() const=0; std::shared_ptr GetTransitionTree(const std::weak_ptr& a, const std::weak_ptr& b, const CAnimSysContext& animSys) { return VGetTransitionTree(a, b, animSys); } }; }