From 982d437267253fd8ba40e407bb7f3ba1f5f8e998 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Thu, 4 Apr 2019 14:29:52 -0700 Subject: [PATCH] Use get_family_updaters to test if a mobject should be drawn during every frame of an animation --- manimlib/mobject/mobject.py | 6 ++++++ manimlib/scene/scene.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 6eeeec74..ca87344c 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -173,6 +173,12 @@ class Mobject(Container): def get_updaters(self): return self.updaters + def get_family_updaters(self): + return list(it.chain(*[ + sm.get_updaters() + for sm in self.get_family() + ])) + def add_updater(self, update_function, index=None, call_updater=True): if index is None: self.updaters.append(update_function) diff --git a/manimlib/scene/scene.py b/manimlib/scene/scene.py index 2a0ca6b4..7a8b69f6 100644 --- a/manimlib/scene/scene.py +++ b/manimlib/scene/scene.py @@ -288,7 +288,7 @@ class Scene(Container): for i, mob in enumerate(mobjects): update_possibilities = [ mob in animation_mobjects, - len(mob.get_updaters()) > 0, + len(mob.get_family_updaters()) > 0, mob in self.foreground_mobjects ] if any(update_possibilities):