diff --git a/manimlib/animation/specialized.py b/manimlib/animation/specialized.py index c4f5457d..a0812b4c 100644 --- a/manimlib/animation/specialized.py +++ b/manimlib/animation/specialized.py @@ -1,51 +1,10 @@ -import operator as op - from manimlib.animation.composition import LaggedStart -from manimlib.animation.transform import ApplyMethod from manimlib.animation.transform import Restore from manimlib.constants import WHITE from manimlib.constants import BLACK from manimlib.mobject.geometry import Circle -from manimlib.mobject.svg.drawings import Car from manimlib.mobject.types.vectorized_mobject import VGroup from manimlib.utils.config_ops import digest_config -from manimlib.utils.space_ops import get_norm - - -class MoveCar(ApplyMethod): - CONFIG = { - "moving_forward": True, - "run_time": 5, - } - - def __init__(self, car, target_point, **kwargs): - self.check_if_input_is_car(car) - self.target_point = target_point - super().__init__(car.move_to, target_point, **kwargs) - - def check_if_input_is_car(self, car): - if not isinstance(car, Car): - raise Exception("MoveCar must take in Car object") - - def begin(self): - super().begin() - car = self.mobject - distance = get_norm(op.sub( - self.target_mobject.get_right(), - self.starting_mobject.get_right(), - )) - if not self.moving_forward: - distance *= -1 - tire_radius = car.get_tires()[0].get_width() / 2 - self.total_tire_radians = -distance / tire_radius - - def interpolate_mobject(self, alpha): - ApplyMethod.interpolate_mobject(self, alpha) - if alpha == 0: - return - radians = alpha * self.total_tire_radians - for tire in self.mobject.get_tires(): - tire.rotate_in_place(radians) class Broadcast(LaggedStart):