JK2eA
 All Classes Functions Variables
SkeletalAnimationManager.h
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