Skip to content

Commit 2da90b2

Browse files
Fix bugs with not clearing buffer
1 parent d14231d commit 2da90b2

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

manim/animation/animation.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
__all__ = ["Animation", "Wait", "override_animation"]
1818

19-
2019
from copy import deepcopy
2120
from typing import TYPE_CHECKING, Callable, Iterable, Sequence, TypeVar
2221

@@ -273,6 +272,11 @@ def update_mobjects(self, dt: float) -> None:
273272
for mob in self.get_all_mobjects_to_update():
274273
mob.update(dt)
275274

275+
def process_subanimation_buffer(self, buffer: SceneBuffer):
276+
self.buffer.add(*buffer.to_add)
277+
self.buffer.remove(*buffer.to_remove)
278+
self.buffer.clear()
279+
276280
def get_all_mobjects_to_update(self) -> list[Mobject]:
277281
"""Get all mobjects to be updated during the animation.
278282

manim/animation/composition.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,6 @@ def finish(self) -> None:
9999
self.group.resume_updating()
100100
self._on_finish(self.buffer)
101101

102-
def process_subanimation_buffer(self, buffer: SceneBuffer) -> None:
103-
self.buffer.add(*buffer.to_add)
104-
self.buffer.remove(*buffer.to_remove)
105-
106102
def update_mobjects(self, dt: float) -> None:
107103
for anim in self.animations:
108104
anim.update_mobjects(dt)

manim/animation/speedmodifier.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -277,16 +277,11 @@ def interpolate(self, alpha: float) -> None:
277277
def update_mobjects(self, dt: float) -> None:
278278
self.anim.update_mobjects(dt)
279279

280-
def finish(self) -> None:
281-
ChangeSpeed.is_changing_dt = False
282-
self.anim.finish()
283-
284280
def begin(self) -> None:
285281
self.anim.begin()
286-
self.buffer.add(*self.anim.buffer.to_add)
287-
self.buffer.remove(*self.anim.buffer.to_remove)
282+
self.process_subanimation_buffer(self.anim.buffer)
288283

289284
def finish(self) -> None:
285+
ChangeSpeed.is_changing_dt = False
290286
self.anim.finish()
291-
self.buffer.add(*self.anim.buffer.to_add)
292-
self.buffer.remove(*self.anim.buffer.to_remove)
287+
self.process_subanimation_buffer(self.anim.buffer)

manim/scene/scene.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def __str__(self) -> str:
133133
def process_buffer(self, buffer: SceneBuffer) -> None:
134134
self.remove(*buffer.to_remove)
135135
self.add(*buffer.to_add)
136+
buffer.clear()
136137

137138
def run(self) -> None:
138139
self.virtual_animation_start_time: float = 0

0 commit comments

Comments
 (0)