package rainbowPackage;

import javafx.scene.paint.Color;

public class ColorArrayReverser
{
	ColorTooSimilar colorTooSimilar = new ColorTooSimilar();
	RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	int b = 0;
	public Color[] colorArray;
	public ColorArrayReverser()
	{
		colorArray = new Color[0];
	}
	public ColorArrayReverser(int Length)
	{
		colorArray = new Color[Length];
	}
	public ColorArrayReverser(Color[] ColorArray)
	{
		colorArray = ColorArray;
	}
	public Color[] ReverseArray(Color[] ColorArray)
	{
		colorArray = ColorArray;
		for (int a = 0; a < ColorArray.length; a++)
		{
			b = ColorArray.length - 1 - a;
			if ( !colorTooSimilar.ColorTooSimilarFunction(ColorArray[a], ColorArray[ColorArray.length - 1 - a]) )
				colorArray[b] = ColorArray[a];
			else
			{
				rainbowSoftColor.RainbowSoftColorFunction(2, 1, ColorArray[a], ColorArray[ColorArray.length - 1 - a] );
				if ( !colorTooSimilar.ColorTooSimilarFunction(rainbowSoftColor.ToFXColor(), VibrantColors.Pink.ToFXColor()) )
					colorArray[b] = VibrantColors.Pink.ToFXColor();
				else if ( !colorTooSimilar.ColorTooSimilarFunction(rainbowSoftColor.ToFXColor(), VibrantColors.NeonGreen.ToFXColor()) )
					colorArray[b] = VibrantColors.NeonGreen.ToFXColor();
				else //if ( !colorTooSimilar.ColorTooSimilarFunction(rainbowSoftColor.ToFXColor(), VibrantColors.OxylBlue.ToFXColor()) )
					colorArray[b] = VibrantColors.OxylBlue.ToFXColor();
			}
		}
		return colorArray;
	}
	public int Length()
	{
		return colorArray.length;
	}
	public void set(Color[] ColorArray) { colorArray = ColorArray; }//14th Square DiagnosticsClass.java
	public Color[] get() { return colorArray; }
}