Radium Engine  1.5.20
Loading...
Searching...
No Matches
SkeletonBasedAnimationSystem.hpp
1#pragma once
2
3#include "Engine/Data/TextureManager.hpp"
4#include <Engine/Scene/ItemEntry.hpp>
5#include <Engine/Scene/System.hpp>
6
7namespace Ra {
8namespace Engine {
9namespace Scene {
10
15class RA_ENGINE_API SkeletonBasedAnimationSystem : public System
16{
17 public:
20
22
25
28
30 void generateTasks( Core::TaskQueue* taskQueue, const FrameInfo& frameInfo ) override;
31
33 void handleAssetLoading( Entity* entity, const Core::Asset::FileData* fileData ) override;
35
38
40 void setXray( bool on );
41
43 bool isXrayOn();
44
46 void toggleSkeleton( const bool status );
48
50 inline void enforceUpdate() { m_time = -1; }
51
52 private:
54 bool m_xrayOn { false };
55
57 Scalar m_time { 0_ra };
58
59 Data::TextureManager::TextureHandle m_heatMapTextureHandle;
60};
61
62} // namespace Scene
63} // namespace Engine
64} // namespace Ra
This class allows tasks to be registered and then executed in parallel on separate threads.
Definition TaskQueue.hpp:48
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.
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:3
Structure passed to each system before they fill the task queue.
Definition FrameInfo.hpp:8