#pragma once #include "ehs/EHS.h" #include "ehs/Str.h" #include "ehs/Array.h" #include "AnimBone.h" namespace ehs { class EHS_LIB_IO Animation { private: UInt_64 hashId; Str_8 id; float duration; Array animated; public: Animation(); Animation(Str_8 id, const float duration); Animation(Str_8 id, const float duration, UInt_64 size); Animation(Str_8 id, const float duration, Array animated); Animation(Animation&& anim) noexcept; Animation(const Animation& anim); Animation& operator=(Animation&& anim) noexcept; Animation& operator=(const Animation& anim); UInt_64 GetHashId() const; void SetId(Str_8 newId); Str_8 GetId() const; float GetDuration() const; Array GetAnimated() const; Array& GetAnimated(); Array Interpolate(const UInt_64 boneCount, const float elapsed) const; }; }