WIP transition to using sync track based synchronisation.

This commit is contained in:
Martin Felis
2021-11-19 12:40:14 +01:00
parent e2959aaed3
commit db3095fa07
16 changed files with 345 additions and 210 deletions
+3 -5
View File
@@ -25,14 +25,13 @@ struct AnimSamplerNode : public AnimNode {
ozz::vector<ozz::math::SoaTransform> m_local_matrices;
ozz::animation::SamplingCache m_sampling_cache;
void SetAnimation(ozz::animation::Animation* animation);
void SetAnimation(ozz::animation::Animation* animation, const SyncTrack& sync_track);
virtual void UpdateIsSynced(bool is_synced) override {
m_is_time_synced = is_synced;
}
virtual void EvalAnimDuration() override {
m_anim_duration = m_animation->duration();
virtual void UpdateSyncTrack() override {
}
virtual void UpdateTime(float dt) override {
@@ -42,8 +41,7 @@ struct AnimSamplerNode : public AnimNode {
m_anim_ratio = fmodf((float)m_current_time, 1.0f);
m_current_time = m_anim_ratio;
} else {
const float duration = m_animation->duration();
m_anim_ratio = fmodf((float)m_current_time / duration, 1.0f);
m_anim_ratio = fmodf((float)m_current_time / m_sync_track.m_duration, 1.0f);
}
}