Animación Vulkan 1.0
Animación de tiro libre baloncesto con motor gráfico desarrollado en clase
Cargando...
Buscando...
Nada coincide
GEAnimation.h
Ir a la documentación de este archivo.
1
6
7#pragma once
8
9#include <glm/glm.hpp>
10#include <string>
11#include <map>
12#include <vector>
13
14class GESkeleton;
15
20struct Keyframe {
21 float time;
22 std::map<std::string, glm::vec3> poses;
23 glm::vec3 skeletonPosition;
24};
25
31private:
32 std::vector<Keyframe> keyframes;
33 float duration;
35 bool loop;
36 bool paused;
37
38public:
44 GEAnimation(float duration, bool loop = true);
45
52 void addKeyframe(float time, const std::map<std::string, glm::vec3>& poses,
53 glm::vec3 skeletonPos = glm::vec3(0.0f));
58 void update(float deltaTime);
62 void reset();
66 void pause();
70 void resume();
74 void togglePause();
75
81 glm::vec3 getPoseAt(const std::string& jointName) const;
86 glm::vec3 getSkeletonPosition() const;
91 void applyToSkeleton(GESkeleton* skeleton);
92
97 float getCurrentTime() const;
102 float getDuration() const;
107 int getCurrentKeyframeIndex() const;
112 int getKeyframeCount() const;
117 bool isPaused() const;
118
122 void nextKeyframe();
126 void prevKeyframe();
127};
void applyToSkeleton(GESkeleton *skeleton)
Aplica la animación actual al esqueleto.
Definition GEAnimation.cpp:172
bool paused
Definition GEAnimation.h:36
glm::vec3 getSkeletonPosition() const
Obtiene la posición del esqueleto interpolada.
Definition GEAnimation.cpp:143
float getCurrentTime() const
Obtiene el tiempo actual de la animación.
Definition GEAnimation.cpp:201
void togglePause()
Alterna pausa/reproducción.
Definition GEAnimation.cpp:88
float currentTime
Definition GEAnimation.h:34
float getDuration() const
Obtiene la duración de la animación.
Definition GEAnimation.cpp:210
void nextKeyframe()
Avanza al siguiente keyframe.
Definition GEAnimation.cpp:250
void pause()
Pausa la animación.
Definition GEAnimation.cpp:72
void prevKeyframe()
Retrocede al keyframe anterior.
Definition GEAnimation.cpp:266
int getCurrentKeyframeIndex() const
Obtiene el índice del keyframe actual.
Definition GEAnimation.cpp:219
void reset()
Reinicia la animación.
Definition GEAnimation.cpp:63
GEAnimation(float duration, bool loop=true)
Constructor de la animación.
Definition GEAnimation.cpp:13
float duration
Definition GEAnimation.h:33
int getKeyframeCount() const
Obtiene el número de keyframes.
Definition GEAnimation.cpp:233
glm::vec3 getPoseAt(const std::string &jointName) const
Obtiene la pose interpolada para una articulación.
Definition GEAnimation.cpp:98
bool isPaused() const
Indica si la animación está pausada.
Definition GEAnimation.cpp:242
std::vector< Keyframe > keyframes
Definition GEAnimation.h:32
bool loop
Definition GEAnimation.h:35
void addKeyframe(float time, const std::map< std::string, glm::vec3 > &poses, glm::vec3 skeletonPos=glm::vec3(0.0f))
Añade un keyframe a la animación.
Definition GEAnimation.cpp:24
void resume()
Reanuda la animación.
Definition GEAnimation.cpp:80
void update(float deltaTime)
Actualiza el tiempo de la animación.
Definition GEAnimation.cpp:44
Representa un esqueleto completo con articulaciones jerárquicas.
Definition GESkeleton.h:20
Representa un fotograma clave de la animación.
Definition GEAnimation.h:20
float time
Tiempo del keyframe.
Definition GEAnimation.h:21
glm::vec3 skeletonPosition
Posición del esqueleto.
Definition GEAnimation.h:23
std::map< std::string, glm::vec3 > poses
Mapa de poses por nombre de articulación. nombre -> (angleX, angleY, angleZ).
Definition GEAnimation.h:22