mirror of
https://github.com/3b1b/manim.git
synced 2025-04-13 09:47:07 +00:00
Removed sync_animation_run_times_and_rate_funcs, and changed
the implementaiton of Scene.play and AnimationGroup so as to not change the run_time and rate_func of the animations passed in.
This commit is contained in:
parent
36a4aacdf9
commit
e632be304d
3 changed files with 11 additions and 21 deletions
|
@ -129,19 +129,6 @@ class Animation(object):
|
|||
return self
|
||||
|
||||
|
||||
def sync_animation_run_times_and_rate_funcs(*animations, **kwargs):
|
||||
for animation in animations:
|
||||
animation.update_config(**kwargs)
|
||||
max_run_time = max([a.run_time for a in animations])
|
||||
for animation in animations:
|
||||
if animation.run_time != max_run_time:
|
||||
new_rate_func = squish_rate_func(
|
||||
animation.get_rate_func(),
|
||||
0, float(animation.run_time)/max_run_time
|
||||
)
|
||||
animation.set_rate_func(new_rate_func)
|
||||
animation.set_run_time(max_run_time)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ from mobject import Mobject, Group
|
|||
from mobject.vectorized_mobject import VMobject
|
||||
from mobject.tex_mobject import TextMobject
|
||||
from animation import Animation
|
||||
from animation import sync_animation_run_times_and_rate_funcs
|
||||
from transform import Transform
|
||||
|
||||
class Rotating(Animation):
|
||||
|
@ -492,15 +491,17 @@ class AnimationGroup(Animation):
|
|||
self.empty = True
|
||||
self.run_time = 0
|
||||
else:
|
||||
# Should really make copies of animations, instead of messing with originals...
|
||||
sync_animation_run_times_and_rate_funcs(*sub_anims, **kwargs)
|
||||
for anim in sub_anims:
|
||||
# If AnimationGroup is called with any configuration,
|
||||
# it is propagated to the sub_animations
|
||||
anim.update_config(**kwargs)
|
||||
self.run_time = max([a.run_time for a in sub_anims])
|
||||
everything = Mobject(*[a.mobject for a in sub_anims])
|
||||
Animation.__init__(self, everything, **kwargs)
|
||||
|
||||
def update_mobject(self, alpha):
|
||||
def update(self, alpha):
|
||||
for anim in self.sub_anims:
|
||||
anim.update(alpha)
|
||||
anim.update(alpha * self.run_time / anim.run_time)
|
||||
|
||||
def clean_up(self, *args, **kwargs):
|
||||
for anim in self.sub_anims:
|
||||
|
|
|
@ -17,7 +17,6 @@ from camera import Camera
|
|||
from tk_scene import TkSceneRoot
|
||||
from mobject import Mobject, VMobject
|
||||
from animation import Animation
|
||||
from animation.animation import sync_animation_run_times_and_rate_funcs
|
||||
from animation.transform import MoveToTarget
|
||||
from animation.continual_animation import ContinualAnimation
|
||||
from container import *
|
||||
|
@ -336,7 +335,7 @@ class Scene(Container):
|
|||
return time_progression
|
||||
|
||||
def get_animation_time_progression(self, animations):
|
||||
run_time = animations[0].run_time
|
||||
run_time = np.max([animation.run_time for animation in animations])
|
||||
time_progression = self.get_time_progression(run_time)
|
||||
time_progression.set_description("".join([
|
||||
"Animation %d: "%self.num_plays,
|
||||
|
@ -422,7 +421,10 @@ class Scene(Container):
|
|||
|
||||
animations = self.compile_play_args_to_animation_list(*args)
|
||||
|
||||
sync_animation_run_times_and_rate_funcs(*animations, **kwargs)
|
||||
for animation in animations:
|
||||
# This is where kwargs to play like run_time and rate_func
|
||||
# get applied to all animations
|
||||
animation.update_config(**kwargs)
|
||||
moving_mobjects = self.get_moving_mobjects(*animations)
|
||||
self.update_frame(excluded_mobjects = moving_mobjects)
|
||||
static_image = self.get_frame()
|
||||
|
|
Loading…
Add table
Reference in a new issue