#ifndef __PSHAG_IMETAANIM_HPP__ #define __PSHAG_IMETAANIM_HPP__ #include "../RetroTypes.hpp" #include namespace urde { class CAnimTreeNode; class CAnimSysContext; class CMetaAnimTreeBuildOrders; class CPrimitive; enum class EMetaAnimType { Primitive, Blend, PhaseBlend, Random, Sequence }; class IMetaAnim { public: virtual ~IMetaAnim() = default; virtual std::shared_ptr GetAnimationTree(const CAnimSysContext& animSys, const CMetaAnimTreeBuildOrders& orders) const=0; virtual void GetUniquePrimitives(std::set& primsOut) const=0; virtual EMetaAnimType GetType() const=0; virtual std::shared_ptr VGetAnimationTree(const CAnimSysContext& animSys, const CMetaAnimTreeBuildOrders& orders) const=0; }; } #endif // __PSHAG_IMETAANIM_HPP__