diff --git a/manimlib/scene/scene.py b/manimlib/scene/scene.py index 014ea528..37b76964 100644 --- a/manimlib/scene/scene.py +++ b/manimlib/scene/scene.py @@ -39,8 +39,6 @@ class Scene(Container): ) self.mobjects = [] - # TODO, remove need for foreground mobjects - self.foreground_mobjects = [] self.num_plays = 0 self.time = 0 self.original_skipping_status = self.skip_animations @@ -127,10 +125,7 @@ class Scene(Container): if self.skip_animations and not ignore_skipping: return if mobjects is None: - mobjects = list_update( - self.mobjects, - self.foreground_mobjects, - ) + mobjects = self.mobjects if background is not None: self.set_camera_pixel_array(background) else: @@ -187,7 +182,6 @@ class Scene(Container): Mobjects will be displayed, from background to foreground in the order with which they are added. """ - mobjects = [*mobjects, *self.foreground_mobjects] self.restructure_mobjects(to_remove=mobjects) self.mobjects += mobjects return self @@ -205,13 +199,10 @@ class Scene(Container): return self def remove(self, *mobjects): - for list_name in "mobjects", "foreground_mobjects": - self.restructure_mobjects(mobjects, list_name, False) + self.restructure_mobjects(mobjects, extract_families=False) return self - def restructure_mobjects(self, to_remove, - mobject_list_name="mobjects", - extract_families=True): + def restructure_mobjects(self, to_remove, extract_families=True): """ In cases where the scene contains a group, e.g. Group(m1, m2, m3), but one of its submobjects is removed, e.g. scene.remove(m1), the list of mobjects @@ -220,9 +211,7 @@ class Scene(Container): """ if extract_families: to_remove = self.camera.extract_mobject_family_members(to_remove) - _list = getattr(self, mobject_list_name) - new_list = self.get_restructured_mobject_list(_list, to_remove) - setattr(self, mobject_list_name, new_list) + self.mobjects = self.get_restructured_mobject_list(self.mobjects, to_remove) return self def get_restructured_mobject_list(self, mobjects, to_remove): @@ -240,25 +229,6 @@ class Scene(Container): add_safe_mobjects_from_list(mobjects, set(to_remove)) return new_mobjects - # TODO, remove this, and calls to this - def add_foreground_mobjects(self, *mobjects): - self.foreground_mobjects = list_update( - self.foreground_mobjects, - mobjects - ) - self.add(*mobjects) - return self - - def add_foreground_mobject(self, mobject): - return self.add_foreground_mobjects(mobject) - - def remove_foreground_mobjects(self, *to_remove): - self.restructure_mobjects(to_remove, "foreground_mobjects") - return self - - def remove_foreground_mobject(self, mobject): - return self.remove_foreground_mobjects(mobject) - def bring_to_front(self, *mobjects): self.add(*mobjects) return self @@ -270,7 +240,6 @@ class Scene(Container): def clear(self): self.mobjects = [] - self.foreground_mobjects = [] return self def get_mobjects(self): @@ -287,12 +256,9 @@ class Scene(Container): animation_mobjects = [anim.mobject for anim in animations] mobjects = self.get_mobject_family_members() for i, mob in enumerate(mobjects): - update_possibilities = [ - mob in animation_mobjects, - len(mob.get_family_updaters()) > 0, - mob in self.foreground_mobjects - ] - if any(update_possibilities): + animated = (mob in animation_mobjects) + updated = (len(mob.get_family_updaters()) > 0) + if animated or updated: return mobjects[i:] return []