package rainbowPackage;

//import java.awt.Dimension;
import javafx.geometry.Dimension2D;

//import javafx.application.Platform;
//import javafx.scene.image.PixelReader;
import javafx.scene.paint.Color;

public class RainbowPostPattern2D
{
	private VibrantColors vibrantColors = new VibrantColors();
	private VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	private double[] rgb = {0,0,0}, argb = {0,0,0,1};
	private Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	//private Color[] fxColorArray = { Color.PINK, Color.GREEN, Color.SKYBLUE, Color.BROWN, Color.BEIGE };
	//private ArrayReverser arrayReverser = new ArrayReverser();
	private ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//private ColorSlider tempColorSlider = new ColorSlider();
	//private TransparencySlider transparencySlider = new TransparencySlider( vibrantColors.Black );
	private double colorBeingChecked = 0, opacityBeingChecked = 1;
	//private ColorFader tempColorFader = new ColorFader();
	//private ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//private boolean colorTooSimilarBoolean = false;
	//private ArrayReverser arrayReverser = new ArrayReverser();
	//private RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	//private double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	private RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	private RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	private DisplayType displayType = new DisplayType();
	//private ColorDecide colorDecide = new ColorDecide();
	private IndependentTextBackgroundColorPasser independentTextBackgroundColorPasser = new IndependentTextBackgroundColorPasser();
	private Dimension2D halfedDim = new Dimension2D( 1920, 1080 );
	//private boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	//private final int maxIndexOfHorizontalColorBars = 17, maxIndexOfVerticalColorBars = 3;
	//private int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	boolean returnImmediately = false, laterReversed = false;//, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public RainbowPostPattern2D()//Creates Class And Sets Color To Opake Black //
	{
		rgb = new double[]{0,0,0};
		argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( rgb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public RainbowPostPattern2D( Color FXColor )//Creates Class And Sets Color With JavaFX Color Class //
	{
		fxColor = FXColor;
		rainbowSoftColor = new RainbowSoftColor( FXColor );
		rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 };
		argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() };
	}
	public RainbowPostPattern2D( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitterCapper(ARGB[z]);
			argb[z] = ColorValueFitterCapper(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitterCapper(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitterCapper(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public Color ToFXColor()//Returns Color In JavaFX
	{
		//fxColor = rainbowSoftColor.ToFXColor();
		//return vibrantColors.Red.ToFXColor();//TESTING ONLY
		return fxColor;
	}
	public Color ToFXColor( double[] ARGB )//Changes Class To ARGB Value And Returns Color In JavaFX //
	{
		for (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitterCapper(ARGB[z]);
			argb[z] = ColorValueFitterCapper(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitterCapper(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitterCapper(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}
	public double AccessTextTransitionFactor()
	{
		return displayType.AccessTextTransitionFactor();
	}
	
	//Basic Example Of How Colors Change Then Go Through Final String Based Choice ReProcessing. Figure This Function Entirely Before Moving On If Analyzing RainbowSoft2D.
	public Color RainbowClock(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double NumberOfClockHands, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;
		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), Math.PI / 2., false
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), Math.PI / 2., false
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( BackgroundColorOverlay && displayType.AccessLaterReversed() == ReversedColors )
		{	
			//fxColor = fxColor.interpolate( BackgroundColorToOverlay, BackgroundColorToOverlay.getOpacity() );//Useless As Well As Line Below Until A Useful Java Function Comes Out
			//pattern2D.set( fxColor );
			transparencySlider.CombineColors( pattern2D.ToFXColor(), BackgroundColorToOverlay );
			//transparencySlider.TransparencySliderFunction( 1.0, BackgroundColorToOverlay.getOpacity(), pattern2D.ToFXColor(), BackgroundColorToOverlay );
			pattern2D.set( transparencySlider.ToFXColor() );
		}
		else if ( TextColorOverlay && displayType.AccessLaterReversed() != ReversedColors )
		{
			//fxColor = fxColor.interpolate( TextColorToOverlay, TextColorToOverlay.getOpacity() );//Useless As Well As Line Below Until A Useful Java Function Comes Out
			//pattern2D.set( fxColor );
			transparencySlider.CombineColors( pattern2D.ToFXColor(), TextColorToOverlay );
			//transparencySlider.TransparencySliderFunction( 1.0, TextColorToOverlay.getOpacity(), pattern2D.ToFXColor(), TextColorToOverlay );
			pattern2D.set( transparencySlider.ToFXColor() );
		}// */
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		
		/*if ( !(displayType.AccessLaterReversed() != Reversed) && BrowserPRColor.getOpacity() > 0 && ( TypeOfDisplay != "FullDisplayNoBrowser" || TypeOfDisplay != "TextDisplayOnly" || TypeOfDisplay != "TextDisplayOnlyWhiteShowingBackground" ) )
		{
			transparencySlider.CombineColors( pattern2D.ToFXColor(), BrowserPRColor );
			pattern2D.set( transparencySlider.ToFXColor() );
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();//colorDecide.NextColorDecide ( vibrantColors.Black, vibrantColors.Black, pattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), someTargetColorHit, displayType.AccessLaterReversed() != ReversedColors, NextStepColorTooSimilarEffect, InvertBasisFromBackground, false );
		return fxColor;
		/*if ( !laterReversed )
		{
			//transparencySlider.TransparencySliderFunction( RepeatFactor, LocationOfColorMovement, vibrantColors.Magenta, vibrantColors.ClearMagenta );
			//transparencySlider.set( vibrantColors.Magenta );
			/*if ( LocationOfColorMovement < 0.5)//UnComment Below To ColorDecide.NextColorDecide To Get Text Fade In Back And Fourth
				transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper ( 1 - 6 * LocationOfColorMovement ) } );//1. - LocationOfColorMovement } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			else
				transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper ( 2 * LocationOfColorMovement - 1 ) } );
			BrowserPW.setColor( x, y, transparencySlider.ToFXColor() );// #/
			pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor, /*vibrantColorCombos.RainbowFXcolorsWPinkCenter,#/ displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock
			if ( displayType.textTransitionFactor > 0 )
				pattern2D.TransparencySliderFunction( 1, displayType.textTransitionFactor, pattern2D.ToFXColor(), pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor, /*vibrantColorCombos.RainbowFXcolorsReverse,#/ !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) ) );// #/
			if ( InvertBoth || InvertJustOrigional )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//transparencySlider.TransparencySliderFunction(ColorsFactor, LocationOfStillMovement / fullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			//pattern2D.set( transparencySlider.ToFXColor() );

			//System.out.println( "arrayReverser.Length(): " + arrayReverser.Length() );
			//tempTransparencySlider.CombineColors( pattern2D.ToFXColor(), transparencySlider.ToFXColor() );
			return colorDecide.NextColorDecide ( vibrantColors.Black, vibrantColors.Black, pattern2D.ToFXColor(), BrowserPRColor /*tempTransparencySlider.ToFXColor()#/, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.AccessSomeTargetColorHit(), someTargetColorHit, displayType.AccessLaterReversed() != ReversedColors, NextStepColorTooSimilarEffect, InvertBasisFromBackground, false );
		}
		else
		{
		//pattern2D.RainbowRingGradated( ringSize * Dim.getHeight() / 2. * ColorsFactor, ringSize * halfedDim.getHeight() * LocationOfStillMovement / fullSliderRunThrough, ringSize * halfedDim.getHeight() * LocationOfColorMovement / fullSliderRunThrough + 29.22094508301405, ( x - ( Dim.getWidth() / 2. + 11. ) * XScaleFactor) * Dim.getHeight() / 1788., ( y - Dim.getHeight() / 2. + ( 1. - 8. ) ) * Dim.getHeight() / 783., ringSize * Dim.getHeight() / 2., (1. - ringSize ) * Dim.getHeight() / 2. - .5, Dim.getHeight() / 2., vibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );//Figure Out What To Use Instead Of ColorsFactor
		//pattern2D.RainbowStrobeVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, vibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
		//pattern2D.SimpleCustomColor( 1880. * XScaleFactor * ColorsFactor, - 1880. * XScaleFactor * LocationOfStillMovement / fullSliderRunThrough, - 1880. * XScaleFactor * LocationOfColorMovement / fullSliderRunThrough, x - 1880. * XScaleFactor , 1880. * XScaleFactor , BrightnessMultiplyer, Gradations, vibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, BlockAdjustment );
		//pattern2D.RainbowRingVaryated( ringSize * Dim.getHeight() / 2. * ColorsFactor, ringSize * halfedDim.getHeight() * LocationOfStillMovement / fullSliderRunThrough, ringSize * halfedDim.getHeight() * LocationOfColorMovement / fullSliderRunThrough + 29.22094508301405, ( x - Dim.getWidth() / 2. + 11.) * Dim.getHeight() / 3576., ( y - Dim.getHeight() / 2. + 1. - 8. ) * Dim.getHeight() / 1566., ringSize * Dim.getHeight() / 2., 0, 99999/*(1. - ringSize ) * Dim.getHeight() / 2. - .5, Dim.getHeight() / 2. #/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
		//pattern2D.RainbowClockVaryated( ColorsFactor * Math.PI / 2., Math.PI * ( LocationOfStillMovement / fullSliderRunThrough ) / 2., - Math.PI * ( - LocationOfColorMovement / fullSliderRunThrough ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor / ColorsFactor * Math.PI / 2., vibrantColorCombos.RainbowFXcolors, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			//System.out.println( "laterReversed != Reversed: " + ( laterReversed != ReversedColors ) );
			pattern2D.RainbowClockVaryated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );// Simple Double Slider 1 Rotation Rainbow Clock laterReversed */
		//return fxColor;
		//}
	}
	
	public Color RainbowFanOutClock(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double NumberOfClockHands, double ExponentValue, double FanOutRadius, double RingDisplacement, double InnerCutOffRadius, double OuterCutOffRadius, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;
		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), Math.PI / 2., false
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), Math.PI / 2., false
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
	}
	
	public Color RainbowKaladaScope(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double NumberOfClockHands, double ExponentValue, double FanOutRadius, double RingDisplacement, double InnerCutOffRadius, double OuterCutOffRadius, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;
		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), Math.PI / 2., false
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), Math.PI / 2., false
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowKaladaScope( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowFanOutClock( 2 * Math.PI * ColorsFactor / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfStillMovement / ( NumberOfClockHands * fullSliderRunThrough ), 2 * Math.PI * LocationOfColorMovement / ( NumberOfClockHands * fullSliderRunThrough ), - ( x - halfedDim.getWidth() ), y - halfedDim.getHeight(), 2 * Math.PI * RepeatFactor / ( NumberOfClockHands * fullSliderRunThrough ), FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
	}

	public Color RainbowHorizontal(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double RainbowWidth, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )//400 1525
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
					else
						pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else
				pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else if ( !InvertInsteadOfReverse )
				pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else
				pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				else
					pattern2D.SimpleCustomColor( RainbowWidth * ColorsFactor / fullSliderRunThrough, RainbowWidth * LocationOfStillMovement / fullSliderRunThrough, RainbowWidth * LocationOfColorMovement / fullSliderRunThrough, x, RainbowWidth * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}

	public Color RainbowRing(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double NumberOfRingsVertically, double RingDisplacement, double InnerCutOffRadius, double OuterCutOffRadius, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;//1;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )//halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ) + 29.22094508301405
				if ( !laterReversed )//
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowRingGradated( halfedDim.getHeight() * ColorsFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfStillMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), halfedDim.getHeight() * LocationOfColorMovement / ( NumberOfRingsVertically * fullSliderRunThrough ), x - halfedDim.getWidth(), y - halfedDim.getHeight(), halfedDim.getHeight() * RepeatFactor / ( NumberOfRingsVertically * fullSliderRunThrough ), FullSliderRunThrough, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}

	public Color RainbowStrobe(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowStrobeGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, halfedDim, -halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}

	public Color RainbowSpiral(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double halfScreenDiagionalLength, double SpiralFactor, double NumberOfSpirals, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowSpiralGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}

	public Color RainbowCheapFractal(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse ) //Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, Math.PI / 2., false
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowCheapFractalGradated( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - halfedDim.getWidth() ) * XScaleFactor, ( y - halfedDim.getHeight() ) * YScaleFactor, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}


	public Color RainbowExponentiator(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, double x, double y, double RepeatFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		//pattern2D.RainbowDoubleExponentiator( - ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}

	public Color RainbowDoubleExponentiator(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, double x, double y, double RepeatFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		//pattern2D.RainbowDoubleExponentiator( - ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else if ( !InvertInsteadOfReverse )
						pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
					else
						pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, true, !InvertInsteadOfReverse ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			else
				pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else if ( !InvertInsteadOfReverse )
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				else
					pattern2D.RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, 4., 1, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ), BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}
	
	public Color RainbowFlasher(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double RainbowWidth, double halfScreenDiagionalLength, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		//double ringSize = 0.175979734764;
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		//halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//someTargetColorHit = true; browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, laterReversed, false, true ) );//reversalOfBackgroundEffectsSlave ) );//DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, vibrantColors.Black, BrowserPRColor, displayType.AccessLaterReversed(), reversalOfBackgroundEffectsSlave ) ); //DisplayTypeDeterminer ( TypeOfDisplay, vibrantColors.Black, BrowserPRColor, laterReversed )
		laterReversed = ( displayType.AccessLaterReversed() || SwapColorComboDuo ) && !( displayType.AccessLaterReversed() && SwapColorComboDuo );
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		//double fullSliderRunThrough = Math.abs(FullSliderRunThrough);
		//browserHit = false;//UnComment For No Browser Fade In As Well As Use Just Below transparencySlider.
		if ( displayType.AccessReturnImmediately() )
			//if ( browserHit )
			//{ //transparencySlider.set( new double[]{ 255. * BrowserPRColor.getRed(), 255. * BrowserPRColor.getGreen(), 255. * BrowserPRColor.getBlue(), tempTransparencySlider.OpacityValueFitterCapperCapper( 1.5 * LocationOfColorMovement ) } );//new double[]{ 255. * vibrantColors.Magenta.getRed(), 255. * vibrantColors.Magenta.getGreen(), 255. * vibrantColors.Magenta.getBlue(), 1. - LocationOfColorMovement }
			//return //transparencySlider.ToFXColor(); }
			//else
			return fxColor;

		if ( ColorSet == null || ColorSet[0] == null || ColorSet[0][0] == null )
		{
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else if ( !InvertInsteadOfReverse )//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else//10 23 vibrantColorCombos.HalfGrayToDarkGreyFX																																																	/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			//pattern2D.RainbowClockVaryaGradatedorsFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.getWidth(), y - halfedDim.getHeight(), RepeatFactor, vibrantColorCombos.RainbowFXcolorsReverseNoPink/#vibrantColorCombos.ImperialFXcolors#/, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );//Simple Double Slider 1 Rotation Rainbow Clock And For Text Pixel Blending Testing
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
					else if ( !InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverse, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
					else//																																																																				/#vibrantColorCombos.HalfGrayToDarkGreyFX#/
						pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseNoPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				else
					if ( !laterReversed || InvertInsteadOfReverse )
						pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsReverseWYellowDarkWOPink, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
					else
						pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterBrightBlueInsteadOfBlue, true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 1 )
		{
			pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, false, false, !InvertInsteadOfReverse ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else if ( ColorSet.length == 2 )
		{
			if ( !laterReversed || InvertInsteadOfReverse )
				pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else
				pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed || InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				else
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		else
		{
			if ( !laterReversed )
				pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else if ( !InvertInsteadOfReverse )
				pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			else
				pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, displayType.AccessLaterReversed() && !InvertInsteadOfReverse );
			if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );//fxColor = pattern2D.ToFXColor();//Useless For Now
			tempColor = pattern2D.ToFXColor();
			pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
			if ( displayType.AccessTextTransitionFactor() < 0.999 && displayType.AccessTextTransitionFactor() > 0.001 && TextOutlineBlendingToBasisInvert )
			{
				fxColor = pattern2D.ToFXColor();
				if ( !laterReversed )
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[0], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[1], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( !displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				else
					pattern2D.SimpleCustomColor( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( ColorSet[2], true, false, ReversedRainbow ), OpacityBefore, OpacityAfter, BlockAdjustment, !( displayType.AccessLaterReversed() && !InvertInsteadOfReverse ) );
				if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() == ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() != ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() == ReversedColors ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				tempColor = pattern2D.ToFXColor();
				pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() == ReversedColors ) );
				tempColor = pattern2D.ToFXColor();
				pattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
			}
		}
		/*if ( ColorSet.length == 1 && ColorSet[0][0].getOpacity() == 0 && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 2 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else if ( ColorSet.length == 3 && ( ColorSet[0][0].getOpacity() == 0 || ColorSet[1][0].getOpacity() == 0 || ColorSet[2][0].getOpacity() == 0 ) && pattern2D.ToFXColor().getRed() == 4 / 255 && pattern2D.ToFXColor().getGreen() == 1 / 255 && pattern2D.ToFXColor().getBlue() == 3 / 255 )
		{
			pattern2D.set(vibrantColors.Clear);
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = rainbowSoftColor.ToFXColor();
		}
		else
		{
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			fxColor = pattern2D.ToFXColor();
		}// */
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		fxColor = pattern2D.ToFXColor();
		return fxColor;
		//}
	}// */
	
	/*public Color RawSelector ( String Selection, int SubSelection, double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double RainbowWidth, double NumberOfRingsVertically, double InnerCutOffRadius, double OuterCutOffRadius, double SpiralFactor, double NumberOfSpirals, double halfScreenDiagionalLength, double ExponentValue, double ColorFlipper, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		if ( Selection == "RainbowHorizontal" )
			return RainbowHorizontal( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowClock" )
			return RainbowClock( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowRing" )
			return RainbowRing( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, NumberOfRingsVertically, InnerCutOffRadius, OuterCutOffRadius, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowStrobe" )
			return RainbowStrobe( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowSpiral" )
			return RainbowSpiral( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowCheapFractal" )
			return RainbowCheapFractal( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "Selector" )
			return pattern2D.Selector( Selection, SubSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, new Dimension( (int)Dim.getWidth()/2, (int)Dim.getHeight()/2 ), ColorSet, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, ExponentValue, ColorFlipper, laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
		else if ( Selection == "FullSelector" )
			return pattern2D.FullSelector( Selection, SubSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, new Dimension( (int)Dim.getWidth()/2, (int)Dim.getHeight()/2 ), ColorSet, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, ExponentValue, ColorFlipper, laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
		else if ( Selection == "RainbowExponentiator" )
			return RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, FullSliderRunThrough, x, y, RepeatFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowDoubleExponentiator" )
			return RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, FullSliderRunThrough, x, y, RepeatFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else
			return pattern2D.SimpleCustomColor( Dim.getWidth() * ColorsFactor / fullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / fullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / fullSliderRunThrough, (double)x, Dim.getWidth() * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.FireFXcolors, OpacityBefore, OpacityAfter, BlockAdjustment );
		//return pattern2D.SimpleCustomColor( Dim.getWidth() * ColorsFactor / fullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / fullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / fullSliderRunThrough, (double)x, Dim.getWidth() * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.FireFXcolors, false, true, true ), OpacityBefore, OpacityAfter, BlockAdjustment );
	}// */
	public Color Selector ( String Selection, int SubSelection, double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double x, double y, double RepeatFactor, double FullSliderRunThrough, double RainbowWidth, double NumberOfClockHands, double FanOutRadius,double NumberOfRingsVertically, double RingDisplacement, double InnerCutOffRadius, double OuterCutOffRadius, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double halfScreenDiagionalLength, double ExponentValue, double ColorFlipper, double XScaleFactor, double YScaleFactor, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean BlockAdjustment, Color BrowserPRColor, Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean AuxiliarySwitch, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] ColorSet )
	{//"RainbowHorizontal" "RainbowClock" "RainbowRing" "RainbowStrobe" "RainbowSpiral" "RainbowCheapFractal" "RainbowExponentiator" "RainbowDoubleExponentiator" "RainbowFlasher"
		if ( Selection == "RainbowHorizontal" )
			fxColor = RainbowHorizontal( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowClock" )
			fxColor = RainbowClock( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, NumberOfClockHands, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowFanOutClock" )
			fxColor = RainbowFanOutClock( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, /*PixelWriter BrowserPW,*/ Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowKaladaScope" )
			fxColor = RainbowKaladaScope( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, NumberOfClockHands, ExponentValue, FanOutRadius, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, /*PixelWriter BrowserPW,*/ Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowRing" )
			fxColor = RainbowRing( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowStrobe" )
			fxColor = RainbowStrobe( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowSpiral" )
			fxColor = RainbowSpiral( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, halfScreenDiagionalLength, SpiralFactor, NumberOfSpirals, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowCheapFractal" )
			fxColor = RainbowCheapFractal( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "Selector" )
			fxColor = pattern2D.Selector( Selection, SubSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, new Dimension2D( Dim.getWidth()/2, Dim.getHeight()/2 ), ColorSet, RingDisplacement, NumberOfClockHands, FanOutRadius, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, ExponentValue, ColorFlipper, laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
		else if ( Selection == "FullSelector" )
			fxColor = pattern2D.FullSelector( Selection, SubSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim, new Dimension2D( Dim.getWidth()/2, Dim.getHeight()/2 ), ColorSet, RingDisplacement, NumberOfClockHands, FanOutRadius, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, NumberOfSpirals, halfScreenDiagionalLength, ExponentValue, ColorFlipper, laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment );
		else if ( Selection == "RainbowExponentiator" )
			fxColor = RainbowExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, FullSliderRunThrough, x, y, RepeatFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowDoubleExponentiator" )
			fxColor = RainbowDoubleExponentiator( ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, FullSliderRunThrough, x, y, RepeatFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else if ( Selection == "RainbowFlasher" )
			fxColor = RainbowFlasher( ColorsFactor, 0 * LocationOfStillMovement, 0 * LocationOfColorMovement, LocationOfColorMovement + 0.004, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, halfScreenDiagionalLength, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, BlockAdjustment, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		else
			fxColor = pattern2D.SimpleCustomColor( Dim.getWidth() * ColorsFactor / Math.abs(FullSliderRunThrough), Dim.getWidth() * LocationOfStillMovement / Math.abs(FullSliderRunThrough), Dim.getWidth() * LocationOfColorMovement / Math.abs(FullSliderRunThrough), (double)x, Dim.getWidth() * RepeatFactor / Math.abs(FullSliderRunThrough), FullSliderRunThrough, BrightnessMultiplyer, Gradations, vibrantColorCombos.FireFXcolors, OpacityBefore, OpacityAfter, BlockAdjustment );
		//return pattern2D.SimpleCustomColor( Dim.getWidth() * ColorsFactor / fullSliderRunThrough, Dim.getWidth() * LocationOfStillMovement / fullSliderRunThrough, Dim.getWidth() * LocationOfColorMovement / fullSliderRunThrough, (double)x, Dim.getWidth() * RepeatFactor / fullSliderRunThrough, FullSliderRunThrough, BrightnessMultiplyer, Gradations, colorArrayReverser.ReverseArray( vibrantColorCombos.FireFXcolors, false, true, true ), OpacityBefore, OpacityAfter, BlockAdjustment );
		return fxColor;
	}
	
	public Color TransparencySliderFunction(double ColorInterval, double Loc, Color ColorBefore, Color ColorAfter)//5th Square DiagnosticsClass.java
	{
		argb[0] = ColorValueFitterCapper( ToTwoFiveFivergb(ColorAfter.getRed() + ColorBefore.getRed() - ColorBefore.getRed() * Loc/ColorInterval - ColorAfter.getRed() * ( ColorInterval - Loc ) / ColorInterval ) );
		argb[1] = ColorValueFitterCapper( ToTwoFiveFivergb(ColorAfter.getGreen() + ColorBefore.getGreen() - ColorBefore.getGreen() * Loc/ColorInterval - ColorAfter.getGreen() * ( ColorInterval - Loc ) / ColorInterval ) );
		argb[2] = ColorValueFitterCapper( ToTwoFiveFivergb(ColorAfter.getBlue() + ColorBefore.getBlue() - ColorBefore.getBlue() * Loc/ColorInterval - ColorAfter.getBlue() * ( ColorInterval - Loc ) / ColorInterval ) );
		argb[3] = OpacityValueFitterCapper( ColorAfter.getOpacity() + ColorBefore.getOpacity() - ColorBefore.getOpacity() * Loc/ColorInterval - ColorAfter.getOpacity() * ( ColorInterval - Loc ) / ColorInterval );
		fxColor = Color.rgb((int)argb[0], (int)argb[1], (int)argb[2], OpacityValueFitterCapper( argb[3] ) );
		return fxColor;
	}
	public Color TransparencySliderFunction(double ColorInterval, double Loc, double BrightnessMultiplyer, int Gradations, Color ColorBefore, Color ColorAfter, double OpacityBefore, double OpacityAfter)
	{//Naitivly In Splash someTargetColorHit = true;: postPattern2D.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), BrightnessMultiplyer, Gradations, tempColor, fxColor, OpacityBefore, OpacityAfter );
		argb[0] = ColorValueFitterCapper( ToTwoFiveFivergb( ColorAfter.getRed() + ColorBefore.getRed() - ColorBefore.getRed() * Math.floor( Loc/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) - ColorAfter.getRed() * Math.floor( ( ColorInterval - Loc )/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) ) );
		argb[1] = ColorValueFitterCapper( ToTwoFiveFivergb( ColorAfter.getGreen() + ColorBefore.getGreen() - ColorBefore.getGreen() * Math.floor( Loc/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) - ColorAfter.getGreen() * Math.floor( ( ColorInterval - Loc )/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) ) );
		argb[2] = ColorValueFitterCapper( ToTwoFiveFivergb( ColorAfter.getBlue() + ColorBefore.getBlue() - ColorBefore.getBlue() * Math.floor( Loc/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) - ColorAfter.getBlue() * Math.floor( ( ColorInterval - Loc )/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) ) );
		if ( BrightnessMultiplyer <= 1 && BrightnessMultiplyer >= 0 )
			for ( int z = 0; z <= 2; z++ )
				argb[z] = ColorValueFitterCapper( argb[z] * BrightnessMultiplyer );
		else
		{
			for (int z = 0; z <= 2; z++)
			{
				argb[z] = (int) ( argb[z] + ( argb[z] + 4 ) * ( BrightnessMultiplyer - 1 ) );
				if ( argb[z] > 255 )
					argb[z] = 255;
				argb[z] = ColorValueFitterCapper( argb[z]);
			}
		}
		argb[3] = OpacityValueFitterCapper( OpacityAfter + OpacityBefore - OpacityBefore * Math.floor( Loc/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) - OpacityAfter * Math.floor( ( ColorInterval - Loc )/ColorInterval * ( Gradations + 2 ) ) / ( Gradations + 1 ) );
		rainbowSoftColor.set( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}
	/*public Color[] CustomColorsReverser ( Color[] FXcolorArray )//Reverses Custom Colors By Flipping Around Colors Like Rainbow Reversal Without Changing Any Colors Like Green In Rainbow To Pink In laterReversed //
	{//!!Use ColorArrayReverser If Visual Clarity And Appeal Is Needed!!
		fxColorArray = new Color[FXcolorArray.length];
		for (int c = 0; c < FXcolorArray.length; c++)
			fxColorArray[c] = FXcolorArray[ FXcolorArray.length - c - 1 ];
		return fxColorArray;
	}// */
	public double ColorValueFitterCapper ( double ColorToBeChecked )
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = 0;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitterCapper ( double OpacityToBeChecked )
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = 0;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = 1;
		return opacityBeingChecked;
	}
	public double ColorValueFitter ( double ColorToBeChecked )
	{
		colorBeingChecked = ColorToBeChecked;
		while ( colorBeingChecked < -4080 )
			colorBeingChecked = colorBeingChecked + 4080;
		while ( colorBeingChecked < 0 )
			colorBeingChecked = colorBeingChecked + 255;
		while ( colorBeingChecked > 4080 )
			colorBeingChecked = colorBeingChecked - 4080;
		while ( colorBeingChecked > 255 )
			colorBeingChecked = colorBeingChecked - 255;
		return Math.round(colorBeingChecked);
	}
	public double OpacityValueFitter ( double OpacityToBeChecked )
	{
		opacityBeingChecked = OpacityToBeChecked;
		while ( opacityBeingChecked < -16 )
			opacityBeingChecked = opacityBeingChecked + 16;
		while ( opacityBeingChecked < 0 )
			opacityBeingChecked = opacityBeingChecked + 1;
		while ( opacityBeingChecked > 16 )
			opacityBeingChecked = opacityBeingChecked - 16;
		while ( opacityBeingChecked > 1 )
			opacityBeingChecked = opacityBeingChecked - 1;
		return opacityBeingChecked;
	}
	public double ToTwoFiveFivergb ( double ZeroToOne )
	{	return 255 * ZeroToOne;	}
	public void set(double[] ARGB) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitterCapper(ARGB[0])), (int)(ColorValueFitterCapper(ARGB[1])), (int)(ColorValueFitterCapper(ARGB[2])), OpacityValueFitterCapper(ARGB[3]) ); rainbowSoftColor = new RainbowSoftColor( ARGB ); }//Assigns Colors With ARGB //29th Square In SimpleDiagnosticsClass.java
	public void set(Color FXColor) { fxColor = FXColor; argb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255, FXColor.getOpacity() }; rgb = new double[] { FXColor.getRed() * 255, FXColor.getGreen() * 255, FXColor.getBlue() * 255 }; rainbowSoftColor = new RainbowSoftColor( argb ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { fxColor = rainbowSoftColor.ToFXColor(); return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}
