mirror of
https://github.com/3b1b/manim.git
synced 2025-04-13 09:47:07 +00:00
Clean up around z_index
This commit is contained in:
parent
aebf2220a6
commit
1f55832a6a
3 changed files with 12 additions and 8 deletions
|
@ -29,9 +29,11 @@ class CameraFrame(Mobject):
|
|||
# Field of view in the y direction
|
||||
fovy: float = 45 * DEGREES,
|
||||
euler_axes: str = "zxz",
|
||||
# This keeps it ordered first in a scene
|
||||
z_index=-1,
|
||||
**kwargs,
|
||||
):
|
||||
super().__init__(**kwargs)
|
||||
super().__init__(z_index=z_index, **kwargs)
|
||||
|
||||
self.uniforms["orientation"] = Rotation.identity().as_quat()
|
||||
self.uniforms["fovy"] = fovy
|
||||
|
|
|
@ -94,7 +94,6 @@ class Mobject(object):
|
|||
self.texture_paths = texture_paths
|
||||
self.depth_test = depth_test
|
||||
self.z_index = z_index
|
||||
self._scene_order = 0
|
||||
|
||||
# Internal state
|
||||
self.submobjects: list[Mobject] = []
|
||||
|
@ -1246,6 +1245,10 @@ class Mobject(object):
|
|||
def set_z(self, z: float, direction: Vect3 = ORIGIN) -> Self:
|
||||
return self.set_coord(z, 2, direction)
|
||||
|
||||
def set_z_index(self, z_index: int) -> Self:
|
||||
self.z_index = z_index
|
||||
return self
|
||||
|
||||
def space_out_submobjects(self, factor: float = 1.5, **kwargs) -> Self:
|
||||
self.scale(factor, **kwargs)
|
||||
for submob in self.submobjects:
|
||||
|
|
|
@ -414,13 +414,12 @@ 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.z_index, m._scene_order))
|
||||
|
||||
# Reorder based on z_index
|
||||
id_to_scene_order = {id(m): idx for idx, m in enumerate(self.mobjects)}
|
||||
self.mobjects.sort(key=lambda m: (m.z_index, id_to_scene_order[id(m)]))
|
||||
|
||||
self.id_to_mobject_map.update({
|
||||
id(sm): sm
|
||||
for m in new_mobjects
|
||||
|
|
Loading…
Add table
Reference in a new issue