Minor cleanup to animation/update.py

This commit is contained in:
Grant Sanderson 2019-02-10 10:43:45 -08:00
parent 05c7196a6f
commit 92eaa733cd

View file

@ -1,6 +1,6 @@
import operator as op
from manimlib.animation.animation import Animation from manimlib.animation.animation import Animation
from manimlib.constants import *
from manimlib.utils.config_ops import digest_config
class UpdateFromFunc(Animation): class UpdateFromFunc(Animation):
@ -9,10 +9,13 @@ class UpdateFromFunc(Animation):
to be used when the state of one mobject is dependent to be used when the state of one mobject is dependent
on another simultaneously animated mobject on another simultaneously animated mobject
""" """
CONFIG = {
"suspend_mobject_updating": False,
}
def __init__(self, mobject, update_function, **kwargs): def __init__(self, mobject, update_function, **kwargs):
digest_config(self, kwargs, locals()) self.update_function = update_function
Animation.__init__(self, mobject, **kwargs) super().__init__(mobject, **kwargs)
def interpolate_mobject(self, alpha): def interpolate_mobject(self, alpha):
self.update_function(self.mobject) self.update_function(self.mobject)
@ -24,18 +27,15 @@ class UpdateFromAlphaFunc(UpdateFromFunc):
class MaintainPositionRelativeTo(Animation): class MaintainPositionRelativeTo(Animation):
CONFIG = {
"tracked_critical_point": ORIGIN
}
def __init__(self, mobject, tracked_mobject, **kwargs): def __init__(self, mobject, tracked_mobject, **kwargs):
digest_config(self, kwargs, locals()) self.tracked_mobject = tracked_mobject
tcp = self.tracked_critical_point self.diff = op.sub(
self.diff = mobject.get_critical_point(tcp) - \ mobject.get_center(),
tracked_mobject.get_critical_point(tcp) tracked_mobject.get_center(),
Animation.__init__(self, mobject, **kwargs) )
super().__init__(mobject, **kwargs)
def interpolate_mobject(self, alpha): def interpolate_mobject(self, alpha):
target = self.tracked_mobject.get_critical_point(self.tracked_critical_point) target = self.tracked_mobject.get_center()
location = self.mobject.get_critical_point(self.tracked_critical_point) location = self.mobject.get_center()
self.mobject.shift(target - location + self.diff) self.mobject.shift(target - location + self.diff)