// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "state/StateEvent.hpp" namespace Dawn { struct Animation { public: bool_t loop = false; bool_t finished = false; float_t time = 0; float_t duration = 0; StateEvent<> eventAnimationEnd; /** * Ticks the animation along. Delta is whatever you want to update the * animation by (in seconds). Animations can overshoot if necessary and * will not be clamped (by default). Subclasses may interpret ticks in * different ways. * * @param delta Time delta (in seconds) to tick the animaiton by. */ virtual void tick(const float_t delta) = 0; /** * Restart a running animation. */ virtual void restart(); /** * Clears an animaton of all its animation items and keyframes. */ virtual void clear(); }; }