package rainbowPackage;

import javafx.scene.paint.Color;
//import java.awt.Dimension;
import javafx.geometry.Dimension2D;

public class FwaSplashLogo //RainbowSoft2D Houses A Series Of RainbowVideo.java Videos Or RainbowColorCodeSchemes.java For Frames

//FOR RainbowColorCodeSchemes.java! To Use RainbowSoftColorCodes And Access RainbowPattern2D.java Classes. This Class RainbowSoft2D Deals With Color Coding On 1 Layers To Make A Frame For RainbowVideo.java Which Accesses
{//This Class
	private VibrantColors vibrantColors = new VibrantColors();
	private VibrantColorCombos vibrantColorCombos = new VibrantColorCombos();
	private RainbowPostPattern2D postPattern2D = new RainbowPostPattern2D();
	private Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	//private Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//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 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 DeterminerForBasisImageHit determinerForBasisImageHit = new DeterminerForBasisImageHit();
	private Dimension2D halfedDim = new Dimension2D( 1920, 1080 );
	boolean returnImmediately = false, laterReversed = false, browserTextHit = false, basisImageStandOutHit = false, someTargetColorHit = true; //reversalOfBackgroundEffectsSlave = true;

	public FwaSplashLogo()//Creates Class And Sets Color To Opake Black //
	{
		//rgb = new double[]{0,0,0};
		//argb = new double[]{0,0,0,1};
		rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0} );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public FwaSplashLogo( 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 FwaSplashLogo( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		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 FwaLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, double x, double y, double RepeatFactor, double RainbowWidth, double NumberOfClockHands, double NumberOfRingsVertically, double RingDisplacement, double InnerCutOffRadius, double OuterCutOffRadius, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfScreenDiagionalLength, double ExponentValue, double ColorFlipper, double XScaleFactor, double YScaleFactor, double SuckInExponentialness, double SuckInDivisor, double LengthOfColorBar, RainbowOvalFitting[] Rainbowovalfitting, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, 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 ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean UseFadeAtAll, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		int subSelection = 0;

		double FanOutRadius = Dim.getHeight() / 2;

		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//halfedDim.setSize( Dim.getWidth() / 2, Dim.getHeight() / 2 );//Check Into If This Is Right
		someTargetColorHit = true; //browserHit = false;
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, browserTextHit, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );//reversalOfBackgroundEffectsSlave ) );
		browserTextHit = displayType.AccessLaterReversed() != laterReversed;
		laterReversed = displayType.AccessLaterReversed();
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		//postPattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{
		
		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			pattern2D.RainbowRingVaryated( ringSize * Dim.getHeight() / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.getHeight() ) * ringSize * Dim.getHeight() / ( 2. * videoSequenceLoopQuantity ), ( x - Dim.getWidth() / 2. ) * Dim.getHeight() / 1788., ( y - Dim.getHeight() / 2. + 1. ) * Dim.getHeight() / 783., ringSize * Dim.getHeight() / 2., (1. - ringSize ) * Dim.getHeight() / 2. - .5, Dim.getHeight() / 2., colorArrayReverser.ReverseArray( vibrantColorCombos.RainbowFXcolors, true, true, false, ReversedRainbow )WNeonGreenCenterReverse, false );
		}
		else
		{

		}// */

		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{
			postPattern2D.Selector( "RainbowStrobe", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Dim.getWidth() * 11.5 / 1920, y, RepeatFactor, FullSliderRunThrough, Dim.getWidth() * 1895 / 1920, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
			//postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Rainbowovalfitting[1].getXOfLeftOfRing(), y, RepeatFactor, FullSliderRunThrough, Rainbowovalfitting[1].xOfRightOfLeftOfRing - Rainbowovalfitting[1].xOfLeftOfRing, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154
			postPattern2D.Selector( "RainbowRing", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - 1927 * Dim.getWidth() / 3840 ) / 2.2868117797695264 + halfedDim.getWidth(), y - 1093 * Dim.getHeight() / 2160 + halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, FanOutRadius, 8, 29 * Dim.getHeight() / 2160, 0, 99999, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
			//postPattern2D.Selector( "RainbowRing", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - Rainbowovalfitting[0].getXofCenter() ) / Math.abs( Rainbowovalfitting[0].getWidthToHeightRatio() ) + halfedDim.getWidth(), y - Rainbowovalfitting[0].getYofCenter() + halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, Rainbowovalfitting[0].getNumberOfRings(), Rainbowovalfitting[0].getRingDisplacement(), 0, 99999, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Dim.getWidth() * 243.5 / 1920, y, RepeatFactor, FullSliderRunThrough, Dim.getWidth() * 1434.5 / 1920, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ), colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ) } );
			//postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Rainbowovalfitting[3].getXOfLeftOfRing(), y, RepeatFactor, FullSliderRunThrough, Rainbowovalfitting[3].getXOfRightOfRing() - Rainbowovalfitting[3].getXOfLeftOfRing(), NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ), colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ) } );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Dim.getWidth() * 400 / 1920, y, RepeatFactor, FullSliderRunThrough, Dim.getWidth() * 1125 / 1920, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ), colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ) } );
			//postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Rainbowovalfitting[4].getXOfLeftOfRing(), y, RepeatFactor, FullSliderRunThrough, Rainbowovalfitting[4].xOfRightOfLeftOfRing - Rainbowovalfitting[4].xOfLeftOfRing, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ), colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ) } );
			transparencySlider.TransparencySliderFunction(1., .5, postPattern2D.ToFXColor(), vibrantColors.Magenta );
			postPattern2D.set( transparencySlider.ToFXColor() );
			if ( ( InvertInsteadOfReverse && browserTextHit ) || InvertBoth || ( InvertJustOrigional && !browserTextHit ) || ( InvertTextAlways && browserTextHit ) )
				postPattern2D.set( postPattern2D.ToFXColor().invert() );
			//postPattern2D.TransparencySliderFunction(1., .5, BrightnessMultiplyer, Gradations, postPattern2D.ToFXColor(), vibrantColors.Magenta, OpacityBefore, OpacityAfter);
			postPattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( postPattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, browserTextHit ) );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			//postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, null );
			//postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink, vibrantColors.SkyBlue } } );
			//if ( !OverlayColorScheme )
			//	postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.OxylBlue, vibrantColors.Purple }, { vibrantColors.Pink, vibrantColors.Green } } );
			//else
			//	postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.OxylBlue, vibrantColors.Purple } } );
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
			else
				if ( !laterReversed )
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
			if ( ( InvertInsteadOfReverse && browserTextHit ) || InvertBoth || ( InvertJustOrigional && !browserTextHit ) || ( InvertTextAlways && browserTextHit ) )
				transparencySlider.set( transparencySlider.ToFXColor().invert() );
			postPattern2D.set( transparencySlider.ToFXColor() );
			//tempColor = postPattern2D.ToFXColor();
			//postPattern2D.TransparencySliderFunction(1., .5, BrightnessMultiplyer, Gradations, vibrantColors.Green, vibrantColors.Pink, OpacityBefore, OpacityAfter);
			postPattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, browserTextHit ) );
			if ( displayType.AccessTextTransitionFactor() > 0.001 )
			{
				fxColor = postPattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
					else if ( !InvertInsteadOfReverse )
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					else
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Pink, vibrantColors.Green );
				else
					if ( !laterReversed )
						transparencySlider.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.OxylBlue, vibrantColors.Purple );
					else
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				tempColor = transparencySlider.ToFXColor();
				transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
				postPattern2D.set( transparencySlider.ToFXColor() );
			}// */
		}
		else
		{
			someTargetColorHit = false;
			//if ( ( ShowBasisOverlayForBackground && !browserTextHit ) || ( ShowBasisOverlayForText && browserTextHit ) )
			postPattern2D.set( fxColor );
		}

		basisImageStandOutHit = !( BasisPRColor.getOpacity() == BackgroundBasisPRColor.getOpacity() && 
				BasisPRColor.getRed() == BackgroundBasisPRColor.getRed() && 
				BasisPRColor.getGreen() == BackgroundBasisPRColor.getGreen() && 
				BasisPRColor.getBlue() == BackgroundBasisPRColor.getBlue() )
				&& TypeOfDisplay != "BackgroundToBasisFullDisplay";
		boolean someTargetColorHitFromDisplayType = displayType.AccessSomeTargetColorHit();
		determinerForBasisImageHit.PixelColorDetermine( BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertBasisPicture, InvertBoth, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, BasisOverlaySperateTextColor, BasisOverlaySperateBackgroundColor, TextColorOverlay, BackgroundColorOverlay, ShowBasisOverlayForText, ShowBasisOverlayForBackground, BasisOverlaySeperateTextFade, BasisOverlaySeperateBackgroundFade, basisImageStandOutHit, someTargetColorHit, browserTextHit, displayType.AccessTextTransitionFactor(), someTargetColorHitFromDisplayType, laterReversed, UseFadeAtAll, postPattern2D.ToFXColor() );
		postPattern2D.set( determinerForBasisImageHit.ToFXColor() );
		/*if ( !browserTextHit && BrowserPRColor.getOpacity() > 0 && BrowserPRColor.getOpacity() < 1 )
		{
			transparencySlider.CombineColors( postPattern2D.ToFXColor(), BrowserPRColor );
			postPattern2D.set( transparencySlider.ToFXColor() );
		}// */
		rainbowSoftColor.set( postPattern2D.ToFXColor() );
		if ( basisImageStandOutHit && browserTextHit && ( InvertBoth || InvertBasisPicture ) )
			return colorDecide.NextColorDecide( BasisPRColor.invert(), BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHitFromDisplayType, browserTextHit, NextStepColorTooSimilarEffect, InvertBasisFromBackground, TypeOfDisplay == "BackgroundToBasisFullDisplay" );
		if ( determinerForBasisImageHit.ReturnImmediatly() )
			return postPattern2D.ToFXColor();
		return colorDecide.NextColorDecide( BasisPRColor, BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHitFromDisplayType, browserTextHit, NextStepColorTooSimilarEffect, InvertBasisFromBackground, TypeOfDisplay == "BackgroundToBasisFullDisplay" );
	}

	//DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! //DON"T USE ME !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! !!!!! 
	public Color FwaFlagLogoSplash(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double RainbowWidth, double NumberOfClockHands, double NumberOfRingsVertically, double RingDisplacement, double InnerCutOffRadius, double OuterCutOffRadius, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfScreenDiagionalLength, double ExponentValue, double ColorFlipper, double XScaleFactor, double YScaleFactor, double SuckInExponentialness, double SuckInDivisor, double LengthOfColorBar, RainbowOvalFitting[] Rainbowovalfitting, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, 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 ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, boolean TextOutlineBlendingToBasisInvert, Color TextColorToOverlay, Color BackgroundColorToOverlay, Color BasisOverlaySperateTextColor, Color BasisOverlaySperateBackgroundColor, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean ShowBasisOverlayForText, boolean ShowBasisOverlayForBackground, boolean BasisOverlaySeperateTextFade, boolean BasisOverlaySeperateBackgroundFade, boolean UseFadeAtAll, boolean OverlayColorScheme, Color[][] ColorSet )
	{
		postPattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		//double ringSize = 0.175979734764;//50 833 = 783 47 1835 = 1788 //0.175979734764//0.087989867382
		int subSelection = 0;

		double FanOutRadius = Dim.getHeight() / 2;

		halfedDim = new Dimension2D( Dim.getWidth() / 2, Dim.getHeight() / 2 );
		//halfedDim.setSize( Dim.getWidth() / 2, Dim.getHeight() / 2 );//Check Into If This Is Right
		someTargetColorHit = true; //browserHit = false;
		//rainbowSoftColor = new RainbowSoftColor( DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, browserTextHit ) );// reversalOfBackgroundEffectsSlave ) );
		laterReversed = ReversedColors;//reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, browserTextHit, ShowBasisOverlayForText, ShowBasisOverlayForBackground ) );// reversalOfBackgroundEffectsSlave ) );
		browserTextHit = displayType.AccessLaterReversed() != laterReversed;
		laterReversed = displayType.AccessLaterReversed();
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		//postPattern2D.set( rainbowSoftColor.ToFXColor() );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.AccessReturnImmediately() )
			return fxColor;

		/*if ( tertiaryXslider < videoSequenceLoopQuantity / 3. )
		{



		}
		else if ( tertiaryXslider < 2. * videoSequenceLoopQuantity / 3. )
		{
			postPattern2D.RainbowRing( ringSize * Dim.getHeight() / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.getHeight() ) * ringSize * Dim.getHeight() / ( 2. * videoSequenceLoopQuantity ), ( x - Dim.getWidth() / 2. ) * Dim.getHeight() / 1788., ( y - Dim.getHeight() / 2. + 1. ) * Dim.getHeight() / 783., ringSize * Dim.getHeight() / 2., (1. - ringSize ) * Dim.getHeight() / 2. - .5, Dim.getHeight() / 2., vibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false );
		}
		else
		{

		}// */


		if ( fxColor.getOpacity() == vibrantColors.White.getOpacity() &&
				fxColor.getRed() == vibrantColors.White.getRed() &&
				fxColor.getGreen() == vibrantColors.White.getGreen() &&
				fxColor.getBlue() == vibrantColors.White.getBlue() )
		{//RainbowStrobeGradated
			postPattern2D.Selector( "RainbowStrobe", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}//public Color RainbowStrobe(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, int x, int 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 Adjusted, Color BrowserPRColor, /*PixelWriter BrowserPW,*/ Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways,/*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean OverlayColorScheme, Color[][] colorSet )
		else if ( fxColor.getOpacity() == vibrantColors.Maroon.getOpacity() &&
				fxColor.getRed() == vibrantColors.Maroon.getRed() &&
				fxColor.getGreen() == vibrantColors.Maroon.getGreen() &&
				fxColor.getBlue() == vibrantColors.Maroon.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Dim.getWidth() * 11.5 / 1920, y, RepeatFactor, FullSliderRunThrough, Dim.getWidth() * 1895 / 1920, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
			//postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Rainbowovalfitting[1].getXOfLeftOfRing(), y, RepeatFactor, FullSliderRunThrough, Rainbowovalfitting[1].xOfRightOfLeftOfRing - Rainbowovalfitting[1].xOfLeftOfRing, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Lime.getOpacity() &&
				fxColor.getRed() == vibrantColors.Lime.getRed() &&
				fxColor.getGreen() == vibrantColors.Lime.getGreen() &&
				fxColor.getBlue() == vibrantColors.Lime.getBlue() )
		{//219 - 197 = 22 1040 / 783 = 0.7528846153846154 : - 16.56346153846154//RainbowRingGradated																																																																														/#(1. - ringSize ) * Dim.getHeight() / 2. - .5, Dim.getHeight() / 2. #/
			postPattern2D.Selector( "RainbowRing", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - 1927 * Dim.getWidth() / 3840 ) / 2.2868117797695264 + halfedDim.getWidth(), y - 1093 * Dim.getHeight() / 2160 + halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, FanOutRadius, 8, 29 * Dim.getHeight() / 2160, 0, 99999, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
			//postPattern2D.Selector( "RainbowRing", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, ( x - Rainbowovalfitting[0].getXofCenter() ) / Math.abs( Rainbowovalfitting[0].getWidthToHeightRatio() ) + halfedDim.getWidth(), y - Rainbowovalfitting[0].getYofCenter() + halfedDim.getHeight(), RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, Rainbowovalfitting[0].getNumberOfRings(), Rainbowovalfitting[0].getRingDisplacement(), 0, 99999, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Black.getOpacity() &&
				fxColor.getRed() == vibrantColors.Black.getRed() &&
				fxColor.getGreen() == vibrantColors.Black.getGreen() &&
				fxColor.getBlue() == vibrantColors.Black.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Dim.getWidth() * 438 / 1920, y, RepeatFactor, FullSliderRunThrough, Dim.getWidth() * 1074 / 1920, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ), colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ) } );
			//postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x - Rainbowovalfitting[2].getXOfLeftOfRing(), y, RepeatFactor, FullSliderRunThrough, Rainbowovalfitting[2].xOfRightOfRing - Rainbowovalfitting[2].xOfLeftOfRing, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { colorArrayReverser.ReverseArray( vibrantColorCombos.BlackWhiteFX, true, false, ReversedRainbow ), colorArrayReverser.ReverseArray( vibrantColorCombos.WhiteNeonGreenBlackFX, true, false, ReversedRainbow ) } );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == vibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == vibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == vibrantColors.Magenta.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			postPattern2D.Selector( "RainbowClock", subSelection, ColorsFactor, LocationOfStillMovement, - ( - LocationOfColorMovement / FullSliderRunThrough ), x, y, RepeatFactor, FullSliderRunThrough, RainbowWidth, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, !ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else if ( fxColor.getOpacity() == vibrantColors.Teal.getOpacity() &&
				fxColor.getRed() == vibrantColors.Teal.getRed() &&
				fxColor.getGreen() == vibrantColors.Teal.getGreen() &&
				fxColor.getBlue() == vibrantColors.Teal.getBlue() )
		{
			//postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, null );
			//postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink, vibrantColors.OxylBlue } } );
			/*if ( !OverlayColorScheme )
				postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.White, vibrantColors.NeonGreen }, { vibrantColors.SkyBlue, vibrantColors.Brown } } );
			else
				postPattern2D.Selector( "RainbowFlasher", subSelection, ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, FullSliderRunThrough, NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, Reversed, !ReversedRainbow, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, new Color[][] { { vibrantColors.Green, vibrantColors.Pink }, { vibrantColors.BrightBlue, vibrantColors.NeonGreen } } );
			// */
			if ( !OverlayColorScheme )
				if ( !laterReversed )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
			//postPattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else if ( !InvertInsteadOfReverse )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
			//postPattern2D.TransparencySliderFunction(ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
				else
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.SkyBlue, vibrantColors.Brown );
			else
				if ( !laterReversed )
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				else
					transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.BrightBlue, vibrantColors.NeonGreen );
			postPattern2D.set( transparencySlider.ToFXColor() );
			if ( ( InvertInsteadOfReverse && browserTextHit ) || InvertBoth || ( InvertJustOrigional && !browserTextHit ) || ( InvertTextAlways && browserTextHit ) )
				postPattern2D.set( postPattern2D.ToFXColor().invert() );
			//tempColor = postPattern2D.ToFXColor();
			//postPattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( tempColor, TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, browserTextHit ) );
			if ( displayType.AccessTextTransitionFactor() > 0.001 )
			{
				fxColor = postPattern2D.ToFXColor();
				if ( !OverlayColorScheme )
					if ( !laterReversed )
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
					else if ( !InvertInsteadOfReverse )
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					else
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.SkyBlue, vibrantColors.Brown );
				else
					if ( !laterReversed )
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.White, vibrantColors.NeonGreen );
					else
						transparencySlider.TransparencySliderFunction( ColorsFactor / RepeatFactor, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
				//pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( transparencySlider.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, !browserTextHit ) );
				//tempColor = pattern2D.ToFXColor();
				tempColor = transparencySlider.ToFXColor();
				transparencySlider.TransparencySliderFunction( 1, displayType.AccessTextTransitionFactor(), fxColor, tempColor );
				postPattern2D.set( transparencySlider.ToFXColor() );
			}// */ 
			/*		//System.out.println( "After x: " + x + " y: " + y + " Don't Use ColorFader Again" );
					//System.exit(0);
					if ( x == 648 && y == 788 )
					{
						tempColorFader = new ColorFader();
						tempColorFader.ColorFaderFunction( FullSliderRunThrough, LocationOfStillMovement / FullSliderRunThrough, vibrantColors.Green, vibrantColors.Pink );
					}
					postPattern2D.set( tempColorFader.fxColor );

					// */
		}
		else if ( fxColor.getOpacity() == vibrantColors.NonHotPink.getOpacity() &&
				fxColor.getRed() == vibrantColors.NonHotPink.getRed() &&
				fxColor.getGreen() == vibrantColors.NonHotPink.getGreen() &&
				fxColor.getBlue() == vibrantColors.NonHotPink.getBlue() )
		{
			postPattern2D.Selector( "RainbowHorizontal", subSelection, ColorsFactor, - LocationOfStillMovement, - LocationOfColorMovement, x, y, RepeatFactor, FullSliderRunThrough, Dim.getWidth(), NumberOfClockHands, FanOutRadius, NumberOfRingsVertically, RingDisplacement, InnerCutOffRadius, OuterCutOffRadius, SpiralFactor, ShrunkenFactor, NumberOfSpirals, HalfScreenDiagionalLength, ExponentValue, ColorFlipper, XScaleFactor, YScaleFactor, ReversedColors, ReversedRainbow, SwapColorComboDuo, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted, BrowserPRColor, Dim, TypeOfDisplay, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertInsteadOfReverse, InvertBasisPicture, InvertBoth, InvertJustOrigional, InvertTextAlways, NextStepColorTooSimilarEffect, TextColorToOverlay, BackgroundColorToOverlay, TextColorOverlay, BackgroundColorOverlay, OverlayColorScheme, ColorSet );
		}
		else
		{
			someTargetColorHit = false;
			//if ( ( ShowBasisOverlayForBackground && !browserTextHit ) || ( ShowBasisOverlayForText && browserTextHit ) )
			postPattern2D.set( fxColor );
		}

		basisImageStandOutHit = !( BasisPRColor.getOpacity() == BackgroundBasisPRColor.getOpacity() && 
				BasisPRColor.getRed() == BackgroundBasisPRColor.getRed() && 
				BasisPRColor.getGreen() == BackgroundBasisPRColor.getGreen() && 
				BasisPRColor.getBlue() == BackgroundBasisPRColor.getBlue() )
				&& TypeOfDisplay != "BackgroundToBasisFullDisplay";
		boolean someTargetColorHitFromDisplayType = displayType.AccessSomeTargetColorHit();
		determinerForBasisImageHit.PixelColorDetermine( BasisPRColor, BackgroundBasisPRColor, BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, InvertBasisFromBackground, AuxiliarySwitch, InvertBasisPicture, InvertBoth, NextStepColorTooSimilarEffect, TextOutlineBlendingToBasisInvert, TextColorToOverlay, BackgroundColorToOverlay, BasisOverlaySperateTextColor, BasisOverlaySperateBackgroundColor, TextColorOverlay, BackgroundColorOverlay, ShowBasisOverlayForText, ShowBasisOverlayForBackground, BasisOverlaySeperateTextFade, BasisOverlaySeperateBackgroundFade, basisImageStandOutHit, someTargetColorHit, browserTextHit, displayType.AccessTextTransitionFactor(), someTargetColorHitFromDisplayType, laterReversed, UseFadeAtAll, postPattern2D.ToFXColor() );
		postPattern2D.set( determinerForBasisImageHit.ToFXColor() );
		/*if ( !browserTextHit && BrowserPRColor.getOpacity() > 0 && BrowserPRColor.getOpacity() < 1 )
		{
			transparencySlider.CombineColors( postPattern2D.ToFXColor(), BrowserPRColor );
			postPattern2D.set( transparencySlider.ToFXColor() );
		}// */
		rainbowSoftColor.set( postPattern2D.ToFXColor() );
		if ( basisImageStandOutHit && browserTextHit && ( InvertBoth || InvertBasisPicture ) )
			return colorDecide.NextColorDecide( BasisPRColor.invert(), BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHitFromDisplayType, browserTextHit, NextStepColorTooSimilarEffect, InvertBasisFromBackground, TypeOfDisplay == "BackgroundToBasisFullDisplay" );
		if ( determinerForBasisImageHit.ReturnImmediatly() )
			return postPattern2D.ToFXColor();
		return colorDecide.NextColorDecide( BasisPRColor, BackgroundBasisPRColor, postPattern2D.ToFXColor(), BrowserPRColor, InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHitFromDisplayType, browserTextHit, NextStepColorTooSimilarEffect, InvertBasisFromBackground, TypeOfDisplay == "BackgroundToBasisFullDisplay" );
	}


	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfScreenDiagionalLength, boolean ReversedColors, boolean ReversedRainbow, boolean SwapColorComboDuo, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, Color BasisPRColor, Color BackgroundBasisPRColor, Color BrowserPRColor, Dimension2D Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBasisPicture, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect, Color TextColorToOverlay, Color BackgroundColorToOverlay, boolean TextColorOverlay, boolean BackgroundColorOverlay, boolean UseFadeAtAll, boolean OverlayColorScheme )
	{
		pattern2D.set( vibrantColors.HalfGrey );
		rainbowSoftColor.set( vibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, FullSliderRunThrough, Dim, 4., -1, displayType.AccessLaterReversed() && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		if ( ( InvertInsteadOfReverse && displayType.AccessLaterReversed() != ReversedColors ) || InvertBoth || ( InvertJustOrigional && displayType.AccessLaterReversed() == ReversedColors ) || ( InvertTextAlways && displayType.AccessLaterReversed() != ReversedColors ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		pattern2D.set( independentTextBackgroundColorPasser.IndependentTextBackgroundColorPasserFunction ( pattern2D.ToFXColor(), TextColorToOverlay, BackgroundColorToOverlay, BackgroundColorOverlay, TextColorOverlay, displayType.AccessLaterReversed() != ReversedColors ) );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		//rgb = rainbowSoftColor.ToRGB();
		//argb = rainbowSoftColor.ToARGB();
		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 ReversedColors //
	{//!!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 void set(double[] ARGB) { 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( FXColor ); }//Assigns Colors With FXColor //30th Square In SimpleDiagnosticsClass.java
	public Color get() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}