Radium Engine  1.5.20
Loading...
Searching...
No Matches
AssimpAnimationDataLoader.hpp
1#pragma once
2
3#include <Core/Asset/AnimationTime.hpp>
4#include <Core/Asset/DataLoader.hpp>
5#include <IO/RaIO.hpp>
6
7struct aiScene;
8struct aiAnimation;
9struct aiNodeAnim;
10
11namespace Ra {
12namespace Core {
13namespace Asset {
14class AnimationData;
15struct HandleAnimation;
16} // namespace Asset
17} // namespace Core
18
19namespace IO {
20
26 : public Core::Asset::DataLoader<Core::Asset::AnimationData>
27{
28 public:
29 explicit AssimpAnimationDataLoader( const bool VERBOSE_MODE = false );
30
32
33 void loadData( const aiScene* scene,
35
36 protected:
40 bool sceneHasAnimation( const aiScene* scene ) const;
41
45 uint sceneAnimationSize( const aiScene* scene ) const;
46
50 void fetchName( const aiAnimation* anim, Core::Asset::AnimationData* data ) const;
51
55 void fetchTime( const aiAnimation* anim, Core::Asset::AnimationData* data ) const;
56
60 void loadAnimationData( const aiScene* scene,
62
66 void fetchAnimation( const aiAnimation* anim, Core::Asset::AnimationData* data ) const;
67
72 void fetchHandleAnimation( aiNodeAnim* node,
74 const Core::Asset::AnimationTime::Time dt ) const;
75};
76
77} // namespace IO
78} // namespace Ra
~AssimpAnimationDataLoader() override
DESTRUCTOR.
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:3