Skip to content

Commit 4051ee1

Browse files
committed
Pass Scene to play() and wait()
1 parent 57a2ead commit 4051ee1

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

manim/renderer/cairo_renderer.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
from ..utils.caching import handle_caching_play, handle_caching_wait
99

1010

11+
def manage_scene_reference(func):
12+
def wrapper(self, scene, *args, **kwargs):
13+
setattr(self, "temp_scene_ref", scene)
14+
func(self, *args, **kwargs)
15+
delattr(self, "temp_scene_ref")
16+
17+
return wrapper
18+
19+
1120
def handle_play_like_call(func):
1221
"""
1322
This method is used internally to wrap the
@@ -74,11 +83,13 @@ def __init__(self, scene, camera_class, **kwargs):
7483
self.num_plays = 0
7584
self.time = 0
7685

86+
@manage_scene_reference
7787
@handle_caching_play
7888
@handle_play_like_call
7989
def play(self, *args, **kwargs):
8090
self.scene.play_internal(*args, **kwargs)
8191

92+
@manage_scene_reference
8293
@handle_caching_wait
8394
@handle_play_like_call
8495
def wait(self, duration=DEFAULT_WAIT_TIME, stop_condition=None):

manim/scene/scene.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -761,10 +761,10 @@ def finish_animations(self, animations):
761761
self.update_mobjects(0)
762762

763763
def wait(self, duration=DEFAULT_WAIT_TIME, stop_condition=None):
764-
self.renderer.wait(duration=duration, stop_condition=stop_condition)
764+
self.renderer.wait(self, duration=duration, stop_condition=stop_condition)
765765

766766
def play(self, *args, **kwargs):
767-
self.renderer.play(*args, **kwargs)
767+
self.renderer.play(self, *args, **kwargs)
768768

769769
def play_internal(self, *args, **kwargs):
770770
"""

0 commit comments

Comments
 (0)