#pragma once

#include "ehs/EHS.h"
#include "ehs/Array.h"
#include "KeyFrame.h"

namespace ehs
{
	class EHS_LIB_IO AnimBone
	{
	private:
		UInt_8 boneId;
		Array<KeyFrame> keyFrames;

	public:
		AnimBone();

		AnimBone(const UInt_8 boneId);

		AnimBone(const UInt_8 boneId, const UInt_64 size);

		AnimBone(const UInt_8 boneId, Array<KeyFrame> keyFrames);

		AnimBone(AnimBone&& anim) noexcept;

		AnimBone(const AnimBone& anim);

		AnimBone& operator=(AnimBone&& anim) noexcept;

		AnimBone& operator=(const AnimBone& anim);

		UInt_8 GetBoneId() const;

		Array<KeyFrame> GetKeyFrames() const;

		Array<KeyFrame>& GetKeyFrames();

		float GetPrevAndNext(KeyFrame& prev, KeyFrame& next, const float elapsed) const;
	};
}