From 3738f0a48e24b173f66d78822e331393c31dfe16 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Thu, 29 Dec 2022 12:02:28 -0800 Subject: [PATCH] Add Mobject.has_same_shape_as --- manimlib/mobject/mobject.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index dc33efcb..c9fdef77 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -671,6 +671,16 @@ class Mobject(object): return False return True + def has_same_shape_as(self, mobject: Mobject) -> bool: + # Normalize both point sets by centering and making height 1 + points1, points2 = ( + (m.get_all_points() - m.get_center()) / m.get_height() + for m in (self, mobject) + ) + if len(points1) != len(points2): + return False + return bool(np.isclose(points1, points2).all()) + # Creating new Mobjects from this one def replicate(self, n: int) -> Group: