mirror of https://github.com/bjornbytes/lovr.git
Add AnimationData;
This commit is contained in:
parent
be087fd108
commit
28dec31e18
|
@ -0,0 +1,17 @@
|
|||
#include "loaders/animation.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
AnimationData* lovrAnimationDataCreate(const char* name) {
|
||||
AnimationData* animationData = malloc(sizeof(AnimationData));
|
||||
if (!animationData) return NULL;
|
||||
|
||||
animationData->name = name;
|
||||
map_init(&animationData->channels);
|
||||
|
||||
return animationData;
|
||||
}
|
||||
|
||||
void lovrAnimationDataDestroy(AnimationData* animationData) {
|
||||
map_deinit(&animationData->channels);
|
||||
free(animationData);
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
#include "lib/vec/vec.h"
|
||||
#include "lib/map/map.h"
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct {
|
||||
double time;
|
||||
float data[4];
|
||||
} Keyframe;
|
||||
|
||||
typedef vec_t(Keyframe) vec_keyframe_t;
|
||||
|
||||
typedef struct {
|
||||
const char* node;
|
||||
vec_keyframe_t positionKeyframes;
|
||||
vec_keyframe_t rotationKeyframes;
|
||||
vec_keyframe_t scaleKeyframes;
|
||||
} AnimationChannel;
|
||||
|
||||
typedef map_t(AnimationChannel) map_channel_t;
|
||||
|
||||
typedef struct {
|
||||
const char* name;
|
||||
map_channel_t channels;
|
||||
int channelCount;
|
||||
} AnimationData;
|
||||
|
||||
AnimationData* lovrAnimationDataCreate(const char* name);
|
||||
void lovrAnimationDataDestroy(AnimationData* animationData);
|
Loading…
Reference in New Issue