return "Stripes";
}
@Override
public List<RGBColor> generateKeyFrames(int pKeyFrameCount) {
RGBColor stripeColor = createStripeColor();
List<RGBColor> baseColors = new StrongHueRandomGradientGenerator().generateKeyFrames(pKeyFrameCount);
List<RGBColor> res = new ArrayList<RGBColor>();
int stripeWidth = 1 + (int) (Math.random() * 2);
int colorWidth = 3 + (int) (Math.random() * 5);
int colorIdx = 0;
while (res.size() < RGBPalette.PALETTE_SIZE) {
for (int i = 0; i < stripeWidth; i++) {
res.add(stripeColor);
}
RGBColor colorLeft = baseColors.get(colorIdx++);
if (colorIdx >= baseColors.size()) {
colorIdx = 0;
}
RGBColor colorRight = baseColors.get(colorIdx++);
if (colorIdx >= baseColors.size()) {
colorIdx = 0;
}
res.add(colorLeft);
for (int i = 1; i < colorWidth; i++) {
double scl = (double) i / (double) (colorWidth - 1);
double r = colorLeft.getRed() + (colorRight.getRed() - colorLeft.getRed()) * scl;
double g = colorLeft.getGreen() + (colorRight.getGreen() - colorLeft.getGreen()) * scl;
double b = colorLeft.getBlue() + (colorRight.getBlue() - colorLeft.getBlue()) * scl;
RGBColor color = new RGBColor(Tools.roundColor(r), Tools.roundColor(g), Tools.roundColor(b));
res.add(color);
}
}
while (res.size() >= RGBPalette.PALETTE_SIZE) {