#pragma once #include "ITransformationAnimation.h" #include "IEngine.h" class TransformationAnimation : public ITransformationAnimation { public: TransformationAnimation(IEngine& argEngine); virtual ~TransformationAnimation(); virtual std::wstring get_Name() const; virtual void AddKeyFrame(const KeyFrame& argKeyFrame); virtual float get_Duration() const; virtual D3DXMATRIX GetTransformationAtTime(float argTime); protected: std::map::const_iterator FindLowerBoundKey(float argTime, KeyFrameTarget::Enumeration argTarget) const; std::map::const_iterator FindUpperBoundKey(float argTime, KeyFrameTarget::Enumeration argTarget) const; private: IEngine& m_Engine; string16 m_Name; std::map m_Keys[3]; };