From 8c1a9fc988c1cfe146474fbf39d43e0bb2c302ab Mon Sep 17 00:00:00 2001 From: David Williams <dwilliams@nobiastx.com> Date: Tue, 6 Dec 2022 16:57:27 -0800 Subject: [PATCH] Correctly check for duration "once" for fixed or computed duration --- src/mol-plugin-state/animation/built-in/model-index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mol-plugin-state/animation/built-in/model-index.ts b/src/mol-plugin-state/animation/built-in/model-index.ts index bc969c86f..ecec3d638 100644 --- a/src/mol-plugin-state/animation/built-in/model-index.ts +++ b/src/mol-plugin-state/animation/built-in/model-index.ts @@ -124,6 +124,11 @@ export const AnimateModelIndex = PluginStateAnimation.create({ ? params.duration.params.durationInS * 1000 : Math.ceil(1000 * traj.data.frameCount / params.duration.params.targetFps); + if (params.mode.name === 'once' && t.current >= durationInMs) { + isEnd = true; + return { modelIndex: traj.data.frameCount-1 }; + } + let phase: number = (t.current % durationInMs) / durationInMs; if (params.mode.name === 'loop') { if (params.mode.params.direction === 'backward') { @@ -135,7 +140,6 @@ export const AnimateModelIndex = PluginStateAnimation.create({ } const modelIndex = Math.min(Math.floor(traj.data.frameCount * phase), traj.data.frameCount - 1); - isEnd = isEnd || modelIndex === traj.data.frameCount - 1; return { modelIndex }; } }); -- GitLab