From 8ef71bb9304425bdc7844e41fb7bba61d21752bb Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Thu, 26 Jan 2023 16:43:40 -0800 Subject: [PATCH] Don't use 'become' for interpolate at alpha = 0 or 1 --- manimlib/animation/transform.py | 4 ---- manimlib/mobject/mobject.py | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/manimlib/animation/transform.py b/manimlib/animation/transform.py index 555a85b3..9c07747d 100644 --- a/manimlib/animation/transform.py +++ b/manimlib/animation/transform.py @@ -121,10 +121,6 @@ class Transform(Animation): target_copy: Mobject, alpha: float ): - if alpha == 0: - submob.become(start) - elif alpha == 1: - submob.become(target_copy) submob.interpolate(start, target_copy, alpha, self.path_func) return self diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 9c9faf36..872feda5 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -1719,6 +1719,12 @@ class Mobject(object): keys = [k for k in self.data.dtype.names if k not in self.locked_data_keys] if keys: self.note_changed_data() + if alpha == 0: + self.data[:] = mobject1.data[:] + keys = [] + elif alpha == 1: + self.data[:] = mobject2.data[:] + keys = [] for key in keys: func = path_func if key in self.pointlike_data_keys else interpolate md1 = mobject1.data[key]