2018-12-24 12:37:51 -08:00
|
|
|
from manimlib.continual_animation.continual_animation import ContinualAnimation
|
2018-03-31 15:37:23 -07:00
|
|
|
|
2018-04-06 13:58:59 -07:00
|
|
|
|
2018-03-31 15:37:23 -07:00
|
|
|
class NormalAnimationAsContinualAnimation(ContinualAnimation):
|
|
|
|
CONFIG = {
|
2018-04-06 13:58:59 -07:00
|
|
|
"start_up_time": 0,
|
|
|
|
"wind_down_time": 0,
|
2018-03-31 15:37:23 -07:00
|
|
|
}
|
2018-04-06 13:58:59 -07:00
|
|
|
|
2018-03-31 15:37:23 -07:00
|
|
|
def __init__(self, animation, **kwargs):
|
|
|
|
self.animation = animation
|
|
|
|
ContinualAnimation.__init__(self, animation.mobject, **kwargs)
|
|
|
|
|
|
|
|
def update_mobject(self, dt):
|
|
|
|
self.animation.update(
|
2018-04-06 13:58:59 -07:00
|
|
|
min(float(self.internal_time) / self.animation.run_time, 1)
|
2018-03-31 15:37:23 -07:00
|
|
|
)
|
|
|
|
|
2018-04-06 13:58:59 -07:00
|
|
|
|
2018-03-31 15:37:23 -07:00
|
|
|
class CycleAnimation(ContinualAnimation):
|
|
|
|
def __init__(self, animation, **kwargs):
|
|
|
|
self.animation = animation
|
|
|
|
ContinualAnimation.__init__(self, animation.mobject, **kwargs)
|
|
|
|
|
|
|
|
def update_mobject(self, dt):
|
|
|
|
mod_value = self.internal_time % self.animation.run_time
|
2018-04-06 13:58:59 -07:00
|
|
|
alpha = mod_value / float(self.animation.run_time)
|
2018-03-31 15:37:23 -07:00
|
|
|
self.animation.update(alpha)
|