All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SceneModelAnimator.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Rendering.h"
6 #include "Types.h"
7 
8 namespace Eegeo
9 {
10  namespace Rendering
11  {
12  namespace SceneModels
13  {
15  {
16  public:
17 
18  SceneModelAnimator(SceneModel& sceneModel, float fps);
19 
20  void Play();
21  void Update(float dt);
22  void Stop();
23 
24  void SetFps(float fps);
25  const float GetFps() const;
26 
27  void SetLoopAnimation(bool loopAnimation);
28  const bool GetAnimationIsLooped() const;
29 
30  const float GetAnimationLengthInSeconds() const;
31  const float GetAnimationProgressInSeconds() const;
32 
33  private:
34 
35  SceneModel& m_sceneModel;
36 
37  float m_fps;
38  float m_totalAnimationTime;
39  float m_animationProgress;
40  u32 m_frameCount;
41  bool m_loop;
42  bool m_playing;
43 
44  void CalculateAnimationTime();
45  void RefreshSceneModel();
46  };
47  }
48  }
49 }