Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
animationmanager.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <glm/glm.hpp>
4#include <map>
5#include <vector>
6#include <unordered_map>
7#include <utility>
8#include <random>
9
10#include <assimp/scene.h>
11#include <assimp/Importer.hpp>
12#include "client/animation.hpp"
13#include "client/bone.hpp"
15
16#define MAX_FRAME_TIME 0.033
17
19{
20public:
21 explicit AnimationManager();
22
23 void updateAnimation(float dt);
24
25 Model* updateFrameAnimation(float dt);
26
27 void playAnimation(Animation* pAnimation);
28
29 void calculateBoneTransform(const AssimpNodeData* node, glm::mat4 parentTransform);
30
31 void addAnimation(Animation* anim, ModelType modelType, AnimState animState);
32
33 void setAnimation(EntityID id, ModelType modelType, AnimState animState);
34
35 void setFrameAnimation(EntityID id, ModelType modelType, AnimState animState);
36
37 std::vector<glm::mat4> getFinalBoneMatrices() { return m_finalBoneMatrices; }
38
39private:
40 std::vector<glm::mat4> m_finalBoneMatrices;
41 std::unordered_map<EntityID, std::pair<float, Animation*>> entityAnimFrameMap;
42 std::unordered_map<EntityID, std::pair<float, Animation*>> entityAnimMap;
43 std::unordered_map<ModelType, std::unordered_map<AnimState, Animation*>> objAnimMap;
44 Animation* m_currentAnimation;
45 EntityID currEntity;
46 float m_currentTime;
47 float m_deltaTime;
48 double lastFrameTime;
49 int currFrame;
50};
Definition: animationmanager.hpp:19
void playAnimation(Animation *pAnimation)
Definition: animationmanager.cpp:45
void calculateBoneTransform(const AssimpNodeData *node, glm::mat4 parentTransform)
Definition: animationmanager.cpp:50
std::vector< glm::mat4 > getFinalBoneMatrices()
Definition: animationmanager.hpp:37
void setFrameAnimation(EntityID id, ModelType modelType, AnimState animState)
Definition: animationmanager.cpp:89
AnimationManager()
Definition: animationmanager.cpp:3
void addAnimation(Animation *anim, ModelType modelType, AnimState animState)
Definition: animationmanager.cpp:99
void updateAnimation(float dt)
Definition: animationmanager.cpp:19
Model * updateFrameAnimation(float dt)
Definition: animationmanager.cpp:31
void setAnimation(EntityID id, ModelType modelType, AnimState animState)
Definition: animationmanager.cpp:82
Definition: animation.hpp:19
Definition: model.hpp:124
ModelType
Enumeration of every render model in the game.
Definition: sharedmodel.hpp:6
AnimState
Definition: sharedobject.hpp:261
Definition: animation.hpp:12
uint32_t EntityID
Global Object ID (when the server or client references an object with a particular EntityID,...
Definition: typedefs.hpp:9