|
JK2eA
|
00001 #pragma once 00002 00003 #include <map> 00004 00005 #define MAX_ANIM_CHANNELS 8 00006 00007 00012 class CSkeletalAnimationManager { 00013 friend class CAnimChannel; 00014 CSkeleton m_skeleton; 00015 00016 std::vector<CControllerSkeletalAnimation*> m_animations; 00017 00018 CSkeletalAnimationChannel m_animation_channels[MAX_ANIM_CHANNELS]; 00019 CSkeletalAnimationMixer* m_anim_mixer; 00020 00021 public: 00029 CSkeletalAnimationManager(FileManager* file, const int num_bones); 00033 ~CSkeletalAnimationManager(); 00034 00035 00039 void LoadAnimationData(FileManager* file, const int animation_count); 00040 00045 CSkeleton& GetSkeleton(); 00046 00047 00053 void AddAnimation(const char* file_name, const int id_channel); 00059 void ActivateAnimation(const int id, float fadein_time); 00064 void DeactivateChannel(const int id); 00065 00066 CControllerSkeletalAnimation* GetAnimation(const int id); 00067 00071 void Release(); 00072 00073 00077 void Play(float dt); 00078 00079 00080 00084 float* GetGPUMatrices(); 00085 00086 }; 00087
1.8.0