Skip to content

Commit

Permalink
Add FlashyFadeIn
Browse files Browse the repository at this point in the history
  • Loading branch information
3b1b committed Aug 19, 2021
1 parent 573d630 commit c08ea4e
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions manimlib/animation/indication.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from manimlib.animation.creation import ShowCreation
from manimlib.animation.creation import ShowPartial
from manimlib.animation.fading import FadeOut
from manimlib.animation.fading import FadeIn
from manimlib.animation.transform import Transform
from manimlib.mobject.types.vectorized_mobject import VMobject
from manimlib.mobject.geometry import Circle
Expand All @@ -21,6 +22,8 @@
from manimlib.utils.config_ops import digest_config
from manimlib.utils.rate_functions import there_and_back
from manimlib.utils.rate_functions import wiggle
from manimlib.utils.rate_functions import smooth
from manimlib.utils.rate_functions import squish_rate_func


class FocusOn(Transform):
Expand Down Expand Up @@ -361,3 +364,22 @@ class TurnInsideOut(Transform):

def create_target(self):
return self.mobject.copy().reverse_points()


class FlashyFadeIn(AnimationGroup):
CONFIG = {
"fade_lag": 0,
}

def __init__(self, vmobject, stroke_width=2, **kwargs):
digest_config(self, kwargs)
outline = vmobject.copy()
outline.set_fill(opacity=0)
outline.set_stroke(width=stroke_width, opacity=1)

rate_func = kwargs.get("rate_func", smooth)
super().__init__(
FadeIn(vmobject, rate_func=squish_rate_func(rate_func, self.fade_lag, 1)),
VShowPassingFlash(outline, time_width=1),
**kwargs
)

0 comments on commit c08ea4e

Please sign in to comment.