| package com.airbnb.lottie.model.content; |
| |
| import android.graphics.PointF; |
| |
| import com.airbnb.lottie.LottieDrawable; |
| import com.airbnb.lottie.animation.content.Content; |
| import com.airbnb.lottie.animation.content.PolystarContent; |
| import com.airbnb.lottie.model.animatable.AnimatableFloatValue; |
| import com.airbnb.lottie.model.animatable.AnimatableValue; |
| import com.airbnb.lottie.model.layer.BaseLayer; |
| |
| public class PolystarShape implements ContentModel { |
| public enum Type { |
| Star(1), |
| Polygon(2); |
| |
| private final int value; |
| |
| Type(int value) { |
| this.value = value; |
| } |
| |
| public static Type forValue(int value) { |
| for (Type type : Type.values()) { |
| if (type.value == value) { |
| return type; |
| } |
| } |
| return null; |
| } |
| } |
| |
| private final String name; |
| private final Type type; |
| private final AnimatableFloatValue points; |
| private final AnimatableValue<PointF, PointF> position; |
| private final AnimatableFloatValue rotation; |
| private final AnimatableFloatValue innerRadius; |
| private final AnimatableFloatValue outerRadius; |
| private final AnimatableFloatValue innerRoundedness; |
| private final AnimatableFloatValue outerRoundedness; |
| |
| public PolystarShape(String name, Type type, AnimatableFloatValue points, |
| AnimatableValue<PointF, PointF> position, |
| AnimatableFloatValue rotation, AnimatableFloatValue innerRadius, |
| AnimatableFloatValue outerRadius, AnimatableFloatValue innerRoundedness, |
| AnimatableFloatValue outerRoundedness) { |
| this.name = name; |
| this.type = type; |
| this.points = points; |
| this.position = position; |
| this.rotation = rotation; |
| this.innerRadius = innerRadius; |
| this.outerRadius = outerRadius; |
| this.innerRoundedness = innerRoundedness; |
| this.outerRoundedness = outerRoundedness; |
| } |
| |
| public String getName() { |
| return name; |
| } |
| |
| public Type getType() { |
| return type; |
| } |
| |
| public AnimatableFloatValue getPoints() { |
| return points; |
| } |
| |
| public AnimatableValue<PointF, PointF> getPosition() { |
| return position; |
| } |
| |
| public AnimatableFloatValue getRotation() { |
| return rotation; |
| } |
| |
| public AnimatableFloatValue getInnerRadius() { |
| return innerRadius; |
| } |
| |
| public AnimatableFloatValue getOuterRadius() { |
| return outerRadius; |
| } |
| |
| public AnimatableFloatValue getInnerRoundedness() { |
| return innerRoundedness; |
| } |
| |
| public AnimatableFloatValue getOuterRoundedness() { |
| return outerRoundedness; |
| } |
| |
| @Override public Content toContent(LottieDrawable drawable, BaseLayer layer) { |
| return new PolystarContent(drawable, layer, this); |
| } |
| } |