2021-11-12 21:16:43 +01:00
|
|
|
//
|
|
|
|
// Created by martin on 12.11.21.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef ANIMTESTBED_ANIMNODE_H
|
|
|
|
#define ANIMTESTBED_ANIMNODE_H
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
#include "AnimationController.h"
|
|
|
|
|
|
|
|
struct AnimNode {
|
|
|
|
AnimNode(AnimationController* animation_controller) : m_animation_controller(animation_controller) {}
|
|
|
|
virtual ~AnimNode() {};
|
|
|
|
|
|
|
|
std::string m_name;
|
|
|
|
float m_current_time;
|
|
|
|
AnimationController* m_animation_controller;
|
|
|
|
ozz::vector<ozz::math::SoaTransform> m_local_matrices;
|
|
|
|
|
|
|
|
virtual void Reset() {
|
|
|
|
m_current_time = 0.f;
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void Update(float dt) {
|
|
|
|
m_current_time += dt;
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void Evaluate(ozz::vector<ozz::math::SoaTransform>* local_matrices) = 0;
|
|
|
|
|
2021-11-12 22:12:25 +01:00
|
|
|
virtual void CollectNodeOrdering (std::vector<AnimNode*>& anim_nodes) = 0;
|
|
|
|
|
2021-11-12 21:16:43 +01:00
|
|
|
virtual void DrawDebugUi() {};
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //ANIMTESTBED_ANIMNODE_H
|