From f4f2f46428104791df94ed772c585432fa06cc8c Mon Sep 17 00:00:00 2001 From: Henrik Skov Midtiby Date: Mon, 11 Aug 2025 22:21:29 +0200 Subject: [PATCH 1/3] Refactor suggested by Chopan50 --- manim/mobject/text/text_mobject.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/manim/mobject/text/text_mobject.py b/manim/mobject/text/text_mobject.py index 42b57b4ae1..7133918699 100644 --- a/manim/mobject/text/text_mobject.py +++ b/manim/mobject/text/text_mobject.py @@ -94,14 +94,16 @@ def remove_invisible_chars(mobject: SVGMobject) -> SVGMobject: :class:`~.SVGMobject` The SVGMobject without unwanted invisible characters. """ - # TODO: Refactor needed - iscode = False if mobject.__class__.__name__ == "Text": - mobject = mobject[:] + return exclude_dots_from_mobject(mobject[:]) elif mobject.__class__.__name__ == "Code": - iscode = True - code = mobject - mobject = mobject.code + mobject.code = exclude_dots_from_mobject(mobject.code) + return mobject + else: + return exclude_dots_from_mobject(mobject) + + +def exclude_dots_from_mobject(mobject: SVGMobject) -> SVGMobject: mobject_without_dots = VGroup() if mobject[0].__class__ == VGroup: for i in range(len(mobject)): @@ -109,9 +111,6 @@ def remove_invisible_chars(mobject: SVGMobject) -> SVGMobject: mobject_without_dots[i].add(*(k for k in mobject[i] if k.__class__ != Dot)) else: mobject_without_dots.add(*(k for k in mobject if k.__class__ != Dot)) - if iscode: - code.code = mobject_without_dots - return code return mobject_without_dots From f4f7387856b8e4de8fe1271e5c4675f1656e1a81 Mon Sep 17 00:00:00 2001 From: Henrik Skov Midtiby Date: Wed, 13 Aug 2025 08:00:36 +0200 Subject: [PATCH 2/3] Code cleanup --- manim/mobject/text/text_mobject.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/manim/mobject/text/text_mobject.py b/manim/mobject/text/text_mobject.py index 7133918699..ea472d143f 100644 --- a/manim/mobject/text/text_mobject.py +++ b/manim/mobject/text/text_mobject.py @@ -94,23 +94,14 @@ def remove_invisible_chars(mobject: SVGMobject) -> SVGMobject: :class:`~.SVGMobject` The SVGMobject without unwanted invisible characters. """ - if mobject.__class__.__name__ == "Text": - return exclude_dots_from_mobject(mobject[:]) - elif mobject.__class__.__name__ == "Code": - mobject.code = exclude_dots_from_mobject(mobject.code) - return mobject - else: - return exclude_dots_from_mobject(mobject) - - -def exclude_dots_from_mobject(mobject: SVGMobject) -> SVGMobject: mobject_without_dots = VGroup() - if mobject[0].__class__ == VGroup: - for i in range(len(mobject)): - mobject_without_dots.add(VGroup()) - mobject_without_dots[i].add(*(k for k in mobject[i] if k.__class__ != Dot)) + if isinstance(mobject[0], VGroup): + for submob in mobject: + mobject_without_dots.add( + VGroup(k for k in submob if not isinstance(k, Dot)) + ) else: - mobject_without_dots.add(*(k for k in mobject if k.__class__ != Dot)) + mobject_without_dots.add(*(k for k in mobject if not isinstance(k, Dot))) return mobject_without_dots From 012744f006560d3cd557695669e247c8feae0be3 Mon Sep 17 00:00:00 2001 From: Henrik Skov Midtiby Date: Wed, 13 Aug 2025 08:03:14 +0200 Subject: [PATCH 3/3] ... --- manim/mobject/text/text_mobject.py | 1 - 1 file changed, 1 deletion(-) diff --git a/manim/mobject/text/text_mobject.py b/manim/mobject/text/text_mobject.py index 490f78d74a..18518ea3f6 100644 --- a/manim/mobject/text/text_mobject.py +++ b/manim/mobject/text/text_mobject.py @@ -71,7 +71,6 @@ def construct(self): from manim.constants import * from manim.mobject.geometry.arc import Dot from manim.mobject.svg.svg_mobject import SVGMobject -from manim.mobject.text.code_mobject import Code from manim.mobject.types.vectorized_mobject import VGroup, VMobject from manim.typing import Point3D from manim.utils.color import ManimColor, ParsableManimColor, color_gradient