Add animation mode to infinetly loop

This commit is contained in:
Malin Ejdbo
2021-03-18 16:08:38 +01:00
parent d534b7dbaf
commit 4eb7c8abce
2 changed files with 15 additions and 0 deletions

View File

@@ -163,6 +163,7 @@ namespace {
enum class AnimationMode {
Once,
LoopFromStart,
LoopInfinitely,
Bounce
};
@@ -336,6 +337,9 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary)
case Parameters::AnimationMode::LoopFromStart:
_animationMode = AnimationMode::LoopFromStart;
break;
case Parameters::AnimationMode::LoopInfinitely:
_animationMode = AnimationMode::LoopInfinitely;
break;
case Parameters::AnimationMode::Bounce:
_animationMode = AnimationMode::Bounce;
break;
@@ -587,6 +591,16 @@ void RenderableModel::update(const UpdateData& data) {
_geometry->animationDuration()
);
break;
case AnimationMode::LoopInfinitely:
realtiveTime = std::fmod(
data.time.j2000Seconds() - data.time.convertTime(_animationStart),
_geometry->animationDuration()
);
if (realtiveTime < 0) {
realtiveTime += _geometry->animationDuration();
}
break;
case AnimationMode::Once:
default:
realtiveTime =

View File

@@ -73,6 +73,7 @@ private:
enum class AnimationMode {
Once = 0,
LoopFromStart,
LoopInfinitely,
Bounce
};