From 274b180eaa9bc973637c382829abc58660b16d00 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Tue, 9 May 2017 12:25:28 -0700 Subject: [PATCH] Added foreground_mobjects to scenes, so that static mobjects can be on top of animated ones --- scene/scene.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/scene/scene.py b/scene/scene.py index c0b2dcc0..917ae5ac 100644 --- a/scene/scene.py +++ b/scene/scene.py @@ -32,6 +32,7 @@ class Scene(object): self.camera = self.camera_class(**self.camera_config) self.frames = [] self.mobjects = [] + self.foreground_mobjects = [] self.num_plays = 0 self.setup() @@ -160,6 +161,27 @@ class Scene(object): self.mobjects = filter(should_keep, self.mobjects) return self + 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, *mobjects): + self.foreground_mobjects = filter( + lambda m : m not in mobjects, + self.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 @@ -183,7 +205,8 @@ class Scene(object): """ """ moving_mobjects = self.extract_mobject_family_members( - *[anim.mobject for anim in animations] + *[anim.mobject for anim in animations] + \ + self.foreground_mobjects ) static_mobjects = filter( lambda m : m not in moving_mobjects,