From 1a6231471949b606d8b852fe135c073638ed73ef Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Sat, 28 Jan 2023 10:10:51 -0800 Subject: [PATCH] Add a "clear" option for Mobjects This not only sets the submobject list to 0, but removes self from the parent lists --- manimlib/mobject/mobject.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index ebe82af6..f7b9f0f0 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -408,8 +408,13 @@ class Mobject(object): self.assemble_family() return self - def remove(self, *to_remove: Mobject, reassemble: bool = True): - for parent in self.get_family(): + def remove( + self, + *to_remove: Mobject, + reassemble: bool = True, + recurse: bool = True + ): + for parent in self.get_family(recurse): for child in to_remove: if child in parent.submobjects: parent.submobjects.remove(child) @@ -419,6 +424,9 @@ class Mobject(object): parent.assemble_family() return self + def clear(self): + self.remove(*self.submobjects, recurse=False) + def add_to_back(self, *mobjects: Mobject): self.set_submobjects(list_update(mobjects, self.submobjects)) return self