#pragma once struct __declspec(novtable) IAnimateable { virtual ~IAnimateable() {}; virtual void OnAnimate(double argPosition, unsigned int argUserData) = 0; }; struct __declspec(novtable) IEvent { virtual ~IEvent() {}; virtual void OnEvent(unsigned int argUserData) = 0; }; struct __declspec(novtable) IAnimationManager { virtual ~IAnimationManager() {}; virtual void AddDemoTimeAnimation(double argBeginTime, double argEndTime, IAnimateable* argValue, unsigned int argUserData = 0) = 0; virtual void AddRealTimeAnimation(double argBeginTime, double argEndTime, IAnimateable* argValue, unsigned int argUserData = 0) = 0; virtual void AddDemoTimeEvent(double argTime, IEvent* argValue, unsigned int argUserData = 0) = 0; virtual void AddRealTimeEvent(double argTime, IEvent* argValue, unsigned int argUserData = 0) = 0; virtual void Animate() = 0; };