From b3386ad7a733e5ff5dc73983cbeaa0f3583518fe Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Wed, 21 Aug 2024 14:29:40 -0500 Subject: [PATCH] Add an option for VMobject.add_line to add a null line --- manimlib/mobject/geometry.py | 2 +- manimlib/mobject/types/vectorized_mobject.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/manimlib/mobject/geometry.py b/manimlib/mobject/geometry.py index 2f1a4730..d8ab2ad3 100644 --- a/manimlib/mobject/geometry.py +++ b/manimlib/mobject/geometry.py @@ -687,7 +687,7 @@ class Arrow(Line): if self.path_arc > 0 and self.buff > 0: self.insert_n_curves(10) # Is this needed? self.pointwise_become_partial(self, 0.0, 1.0 - alpha) - self.add_line_to(self.get_end()) + self.add_line_to(self.get_end(), allow_null_line=True) self.add_line_to(prev_end) self.n_tip_points = 3 return self diff --git a/manimlib/mobject/types/vectorized_mobject.py b/manimlib/mobject/types/vectorized_mobject.py index fb57ff19..46641a52 100644 --- a/manimlib/mobject/types/vectorized_mobject.py +++ b/manimlib/mobject/types/vectorized_mobject.py @@ -513,10 +513,10 @@ class VMobject(Mobject): self.append_points([handle, anchor]) return self - def add_line_to(self, point: Vect3) -> Self: + def add_line_to(self, point: Vect3, allow_null_line: bool = False) -> Self: self.throw_error_if_no_points() last_point = self.get_last_point() - if self.consider_points_equal(last_point, point): + if not allow_null_line and self.consider_points_equal(last_point, point): return self alphas = np.linspace(0, 1, 5 if self.long_lines else 3) self.append_points(outer_interpolate(last_point, point, alphas[1:]))