From aad53d51d1a0bebd86f44adbe4ecf2b470423369 Mon Sep 17 00:00:00 2001 From: "J. Neugebauer" Date: Sun, 17 Jul 2022 08:54:34 +0200 Subject: [PATCH] FadeAnimation erstellt --- .../schule/ngb/zm/anim/FadeAnimation.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/schule/ngb/zm/anim/FadeAnimation.java diff --git a/src/main/java/schule/ngb/zm/anim/FadeAnimation.java b/src/main/java/schule/ngb/zm/anim/FadeAnimation.java new file mode 100644 index 0000000..ba230bd --- /dev/null +++ b/src/main/java/schule/ngb/zm/anim/FadeAnimation.java @@ -0,0 +1,44 @@ +package schule.ngb.zm.anim; + +import schule.ngb.zm.Color; +import schule.ngb.zm.Constants; +import schule.ngb.zm.shapes.Shape; + +import java.util.function.DoubleUnaryOperator; + +@SuppressWarnings( "unused" ) +public class FadeAnimation extends Animation { + + public static final int FADE_IN = 255; + + public static final int FADE_OUT = 0; + + private Shape object; + + private Color fill, stroke; + + private int fillAlpha, strokeAlpha, tAlpha; + + public FadeAnimation( Shape object, int alpha, int runtime, DoubleUnaryOperator easing ) { + super(runtime, easing); + + this.object = object; + fill = object.getFillColor(); + fillAlpha = fill.getAlpha(); + stroke = object.getStrokeColor(); + strokeAlpha = stroke.getAlpha(); + tAlpha = alpha; + } + + @Override + public Shape getAnimationTarget() { + return object; + } + + @Override + public void interpolate( double e ) { + object.setFillColor(new Color(fill, (int) Constants.interpolate(fillAlpha, tAlpha, e))); + object.setStrokeColor(new Color(stroke, (int) Constants.interpolate(strokeAlpha, tAlpha, e))); + } + +}