From 99493fc4f783d41988af38ad9d5f0215cfbe174a Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Thu, 10 Oct 2024 15:13:33 -0500 Subject: [PATCH] Fix issue with Difference https://github.com/3b1b/manim/issues/2174 --- manimlib/mobject/boolean_ops.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/manimlib/mobject/boolean_ops.py b/manimlib/mobject/boolean_ops.py index 464b54f5..1fdc16e2 100644 --- a/manimlib/mobject/boolean_ops.py +++ b/manimlib/mobject/boolean_ops.py @@ -11,15 +11,15 @@ from manimlib.mobject.types.vectorized_mobject import VMobject def _convert_vmobject_to_skia_path(vmobject: VMobject) -> pathops.Path: path = pathops.Path() - subpaths = vmobject.get_subpaths_from_points(vmobject.get_all_points()) - for subpath in subpaths: - quads = vmobject.get_bezier_tuples_from_points(subpath) - start = subpath[0] - path.moveTo(*start[:2]) - for p0, p1, p2 in quads: - path.quadTo(*p1[:2], *p2[:2]) - if vmobject.consider_points_equal(subpath[0], subpath[-1]): - path.close() + for submob in vmobject.family_members_with_points(): + for subpath in submob.get_subpaths(): + quads = vmobject.get_bezier_tuples_from_points(subpath) + start = subpath[0] + path.moveTo(*start[:2]) + for p0, p1, p2 in quads: + path.quadTo(*p1[:2], *p2[:2]) + if vmobject.consider_points_equal(subpath[0], subpath[-1]): + path.close() return path