From 4c849bc0dd4be550957e6db9886d97d22f8cdbf7 Mon Sep 17 00:00:00 2001 From: n Date: Fri, 27 Jun 2025 20:48:55 +0200 Subject: [PATCH 1/2] fix: animations process correctly with 3d object with opengl as renderer --- manim/mobject/opengl/opengl_mobject.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/manim/mobject/opengl/opengl_mobject.py b/manim/mobject/opengl/opengl_mobject.py index 6428995cd5..ca405d8871 100644 --- a/manim/mobject/opengl/opengl_mobject.py +++ b/manim/mobject/opengl/opengl_mobject.py @@ -2481,6 +2481,15 @@ def align_data(self, mobject: OpenGLMobject) -> Self: for key in mob1.data.keys() & mob2.data.keys(): if key == "points": continue + + # here we fixe the case when some transform function make the whole thing crashes + # it appears that in some cases a float or int is processed as an array so here change it with an ndarray of a single number + # that make the whole thing process correctly + if type(mob1.data[key]) == type(0.1) or type(mob1.data[key]) == type(1): + mob1.data[key] = np.array([mob1.data[key]]) + if type(mob2.data[key]) == type(0.1) or type(mob2.data[key]) == type(1): + mob2.data[key] = np.array([mob2.data[key]]) + arr1 = mob1.data[key] arr2 = mob2.data[key] if len(arr2) > len(arr1): From 25e8b1d263c8f688a5abefee898f430bc341a44e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 27 Jun 2025 19:18:35 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- manim/mobject/opengl/opengl_mobject.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manim/mobject/opengl/opengl_mobject.py b/manim/mobject/opengl/opengl_mobject.py index ca405d8871..e9459fd332 100644 --- a/manim/mobject/opengl/opengl_mobject.py +++ b/manim/mobject/opengl/opengl_mobject.py @@ -2481,13 +2481,13 @@ def align_data(self, mobject: OpenGLMobject) -> Self: for key in mob1.data.keys() & mob2.data.keys(): if key == "points": continue - + # here we fixe the case when some transform function make the whole thing crashes # it appears that in some cases a float or int is processed as an array so here change it with an ndarray of a single number - # that make the whole thing process correctly - if type(mob1.data[key]) == type(0.1) or type(mob1.data[key]) == type(1): + # that make the whole thing process correctly + if type(mob1.data[key]) == float or type(mob1.data[key]) == int: mob1.data[key] = np.array([mob1.data[key]]) - if type(mob2.data[key]) == type(0.1) or type(mob2.data[key]) == type(1): + if type(mob2.data[key]) == float or type(mob2.data[key]) == int: mob2.data[key] = np.array([mob2.data[key]]) arr1 = mob1.data[key]