AnimEngine
AnimationSystem.hpp
1 #pragma once
2 #ifndef KJY_ANIM_ENGINE_ANIMATION_SYSTEM_HPP_
3 #define KJY_ANIM_ENGINE_ANIMATION_SYSTEM_HPP_
4 #define GLFW_INCLUDE_NONE
5 #include <GLFW/glfw3.h>
6 #include "SystemInterface.hpp"
7 #include <components/attachable/KeyframeAnimation.hpp>
8 
9 class Animation_System : public SystemInterface{ // Unusual name formatting to indicate singleton
10  public:
11  static Animation_System& getInstance() {
12  static Animation_System _instance_;
13  return(_instance_);
14  }
15 
16  virtual void init(GLFWwindow* window);
17  virtual void process(Scene& scene, bool realtime);
18  virtual void process(Scene& scene) override {process(scene,true);}
19  virtual void processEntity(Scene& scene, Entity* entity, double timestep, double mAnimationTime);
20  virtual void applyAnimator(Scene& scene, Animator* animator, double timestep, double mAnimationTime);
21 
22  double getFrameDuration() const {return(mFrameDuration);}
23  void setFrameDuration(double duration){mFrameDuration = duration;}
24 
25  private:
26  double mFrameDuration = 1.0/24.0;
27 
28  GLFWwindow* _mWindow = nullptr;
29  Animation_System() {}
30 };
31 
32 
33 #endif
Definition: AnimationSystem.hpp:9
Definition: EntitiesBase.hpp:18
Definition: SystemInterface.hpp:6
Definition: Scene.hpp:12
Definition: KeyframeAnimation.hpp:130