Radium Engine  1.5.0
SkeletonBasedAnimationSystem.hpp
1 #pragma once
2 
3 #include <Engine/Scene/ItemEntry.hpp>
4 #include <Engine/Scene/System.hpp>
5 
6 namespace Ra {
7 namespace Engine {
8 namespace Scene {
9 
14 class RA_ENGINE_API SkeletonBasedAnimationSystem : public System
15 {
16  public:
19 
21 
23  SkeletonBasedAnimationSystem& operator=( const SkeletonBasedAnimationSystem& ) = delete;
24 
27 
29  void generateTasks( Core::TaskQueue* taskQueue, const FrameInfo& frameInfo ) override;
30 
32  void handleAssetLoading( Entity* entity, const Core::Asset::FileData* fileData ) override;
34 
37 
39  void setXray( bool on );
40 
42  bool isXrayOn();
43 
45  void toggleSkeleton( const bool status );
47 
49  inline void enforceUpdate() { m_time = -1; }
50 
51  private:
53  bool m_xrayOn { false };
54 
56  Scalar m_time { 0_ra };
57 };
58 
59 } // namespace Scene
60 } // namespace Engine
61 } // namespace Ra
An entity is an scene element. It ties together components with a transform.
Definition: Entity.hpp:23
void enforceUpdate()
Enforce Skeleton update at the next frame.
Definition: Cage.cpp:3
Structure passed to each system before they fill the task queue.
Definition: FrameInfo.hpp:8