From 0b5e9d4a8bda88a9ccd69477e3d80b5512c61160 Mon Sep 17 00:00:00 2001 From: german2020 Date: Sun, 27 Aug 2023 15:35:22 +0800 Subject: [PATCH 1/4] add zorder to mobject --- manimlib/mobject/mobject.py | 3 +++ manimlib/scene/scene.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 9f4f2a18..911bc73f 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -83,6 +83,7 @@ class Mobject(object): # If true, the mobject will not get rotated according to camera position is_fixed_in_frame: bool = False, depth_test: bool = False, + zorder: int = 0, ): self.color = color self.opacity = opacity @@ -90,6 +91,8 @@ class Mobject(object): self.texture_paths = texture_paths self._is_fixed_in_frame = is_fixed_in_frame self.depth_test = depth_test + self.zorder = zorder + self._scene_order = 0 # Internal state self.submobjects: list[Mobject] = [] diff --git a/manimlib/scene/scene.py b/manimlib/scene/scene.py index ed4bd5fc..8fa807e3 100644 --- a/manimlib/scene/scene.py +++ b/manimlib/scene/scene.py @@ -414,7 +414,13 @@ class Scene(object): foreground in the order with which they are added. """ self.remove(*new_mobjects) + idx = 0 + scene_order = len(self.mobjects) + for m in new_mobjects: + m._scene_order = scene_order+idx + idx += 1 self.mobjects += new_mobjects + self.mobjects = [self.mobjects[0]]+sorted(self.mobjects[1:], key=lambda m:(m.zorder,m._scene_order)) self.id_to_mobject_map.update({ id(sm): sm for m in new_mobjects From 133cec97259dbeceb4b91165d59ee0fc01af06eb Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Fri, 6 Sep 2024 10:11:21 -0700 Subject: [PATCH 2/4] zorder -> z_index --- manimlib/mobject/mobject.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 911bc73f..43832cc5 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -83,7 +83,7 @@ class Mobject(object): # If true, the mobject will not get rotated according to camera position is_fixed_in_frame: bool = False, depth_test: bool = False, - zorder: int = 0, + z_index: int = 0, ): self.color = color self.opacity = opacity From c8326d1ccefe8fc32377040d3af33aecda91bf50 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Fri, 6 Sep 2024 10:11:26 -0700 Subject: [PATCH 3/4] zorder -> z_index --- manimlib/mobject/mobject.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 43832cc5..2c433c13 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -91,7 +91,7 @@ class Mobject(object): self.texture_paths = texture_paths self._is_fixed_in_frame = is_fixed_in_frame self.depth_test = depth_test - self.zorder = zorder + self.z_index = z_index self._scene_order = 0 # Internal state From 08f7cb8d3e82e553ba481077391cea0d003be789 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Fri, 6 Sep 2024 10:11:31 -0700 Subject: [PATCH 4/4] zorder -> z_index --- manimlib/scene/scene.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manimlib/scene/scene.py b/manimlib/scene/scene.py index 8fa807e3..bb77b420 100644 --- a/manimlib/scene/scene.py +++ b/manimlib/scene/scene.py @@ -420,7 +420,7 @@ class Scene(object): m._scene_order = scene_order+idx idx += 1 self.mobjects += new_mobjects - self.mobjects = [self.mobjects[0]]+sorted(self.mobjects[1:], key=lambda m:(m.zorder,m._scene_order)) + self.mobjects = [self.mobjects[0]]+sorted(self.mobjects[1:], key=lambda m:(m.z_index, m._scene_order)) self.id_to_mobject_map.update({ id(sm): sm for m in new_mobjects