Skip to content

Commit 771a732

Browse files
committed
Added Scene.interact()
1 parent b3b0572 commit 771a732

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

example_scenes/opengl.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
class Test(Scene):
1212
def construct(self):
13-
square = OpenGLSquare()
14-
square.add_updater(lambda s: s.move_to(self.mouse_point))
15-
self.add(square)
16-
self.wait(60)
13+
circle = OpenGLCircle()
14+
self.play(circle.animate.shift(RIGHT))
15+
circle.add_updater(lambda s: s.move_to(self.mouse_point))
16+
self.interact()
1717

1818

1919
class InteractiveDevelopment(Scene):

manim/renderer/opengl_renderer.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,6 @@ def update_frame():
390390
if self.window is not None:
391391
self.window.swap_buffers()
392392
while self.animation_elapsed_time < frame_offset:
393-
# TODO: Just sleep?
394393
update_frame()
395394
self.window.swap_buffers()
396395

manim/scene/scene.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,16 @@ def play_internal(self, skip_rendering=False):
879879
self.update_mobjects(0)
880880
self.renderer.static_image = None
881881

882+
def interact(self):
883+
self.quit_interaction = False
884+
while not (self.renderer.window.is_closing or self.quit_interaction):
885+
self.renderer.animation_start_time = 0
886+
dt = 1 / config["frame_rate"]
887+
self.renderer.render(self, dt, self.moving_mobjects)
888+
self.update_mobjects(dt)
889+
if self.renderer.window.is_closing:
890+
self.renderer.window.destroy()
891+
882892
def embed(self):
883893
if not config["preview"]:
884894
logger.warning("Called embed() while no preview window is available.")

0 commit comments

Comments
 (0)