package rainbowPackage;

//import javafx.scene.paint.Paint.*;
import javafx.scene.image.PixelReader;
//import rainbowPackage.VibrantColors;
//import rainbowPackage.VibrantColorCombos;
//import rainbowPackage.RainbowSoftColorCodesSets;
//import javafx.scene.image.PixelWriter;
import javafx.scene.paint.Color;
import java.awt.Dimension;

public final class MagiElite //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
	public static double[] rgb = {0,0,0}, argb = {0,0,0,1};
	public static Color fxColor = Color.BEIGE, tempColor = Color.OLIVE;//returnImmediatlyColor = fxColor.LAVENDER;
	public static Color[] fxColorArray = { Color.PINK, Color.SKYBLUE };
	//public static ArrayReverser arrayReverser = new ArrayReverser();
	public static ColorArrayReverser colorArrayReverser = new ColorArrayReverser();
	//public static ColorSlider tempColorSlider = new ColorSlider();
	public static TransparencySlider transparencySlider = new TransparencySlider( VibrantColors.Black );
	public static double colorBeingChecked = 0, opacityBeingChecked = 1;
	public static ColorFader tempColorFader = new ColorFader();
	public static ColorTooSimilar colorTooSimilarFunction = new ColorTooSimilar();
	//public static RainbowSoftColorCodesSets rainbowSoftColorCodesSets = new RainbowSoftColorCodesSets();
	public static double ColorBeingChecked = 0, OpacityBeingChecked = 1, sliderValue = 0, originalFormulaValue = 0, numberOfTransitions = 0, coreVariableStill = 0, coreTranisitionVariable = 0, eightColorDiamondsIndexStill = 0, eightColorDiamondsIndexMoving = 0, eightColorDiamondsIndex = 0;
	public static RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	public static RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	public static DisplayType displayType = new DisplayType();
	//public static ColorDecide colorDecide = new ColorDecide();
	public static Dimension halfedDim = new Dimension();
	public static boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;// wheelTipsHit = false, someTargetColorHit = true, greenBlueGreenUsed = false, otherBrowserColorHit = false, makePixelTransparent = false, aColorBarHit = false, aWheelDiamondHit = false;
	static final int maxIndexOfHorizontalColorBars = 17, maxIndexOfVerticalColorBars = 3;
	static int colorBarIndex = 0, colorBarCheck = 0, colorBarDistance = 0;
	static boolean returnImmediately = false, laterReversed = false, someTargetColorHit = true, browserHit = false; //reversalOfBackgroundEffectsSlave = true;

	public MagiElite( 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 MagiElite( double[] ARGB )//Creates Class And Sets Color With ARGB //
	{
		for  (int z = 0; z <= 2; z++)
		{
			rgb[z] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
	}
	public MagiElite()//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 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] = ColorValueFitter(ARGB[z]);
			argb[z] = ColorValueFitter(ARGB[z]);
		}
		if ( ARGB.length == 3 )
		{
			argb = new double[4];
			for  (int z = 0; z <= 2; z++)
				argb[z] = ColorValueFitter(rgb[z]);
			ARGB[3] = 1;
		}
		else
			argb[3] = OpacityValueFitter(ARGB[3]);
		rainbowSoftColor = new RainbowSoftColor( argb );
		fxColor = rainbowSoftColor.ToFXColor();
		return fxColor;
	}

	public static final Color MagiEliteForRaster(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double ShrunkenFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );

		//boolean someTargetColorInTheCenterHit = false, greenBlueGreenUsed = false;
		halfedDim.width = (int)Math.round( Dim.width / 2. );//Check Into If This Is Right
		halfedDim.height = (int)Math.round( Dim.height / 2. );//Check Into If This Is Right
		
		final double chrysanthemumRadius = 0.055555555555555 * Dim.height, chrysanthemumInnerRadius = 0.0083333333333333 * Dim.height, chrysanthemumYDisplacement = 0.0231481481481481 * Dim.height, chrysanthemumRidgeAltitude = 0.175979734764 * chrysanthemumInnerRadius;//, chrysanthemumNumberOfPedals = 16;

		someTargetColorHit = true; //browserHit = false;
		laterReversed = Reversed; //reversalOfBackgroundEffectsSlave = ReversalOfBackgroundEffectsMaster;
		rainbowSoftColor.set( displayType.DisplayTypeDeterminer ( TypeOfDisplay, BasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), BrowserPR.getColor( x, y ), laterReversed ) );//, reversalOfBackgroundEffectsSlave ) );
		/*try { Thread.sleep(0,1);//primaryThread.sleep(1);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		pattern2D.set( rainbowSoftColor.ToFXColor() );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();
		if ( displayType.returnImmediately )
			return fxColor;

		if ( Math.pow( Math.pow( x - halfedDim.width, 2) + Math.pow( y  - halfedDim.height + chrysanthemumYDisplacement, 2), 0.5 ) <= chrysanthemumRadius )
		{//902 //1019
			someTargetColorInTheCenterHit = true;
			if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.black6().getBlue() )
			{
				pattern2D.RainbowDiskGradated( chrysanthemumRidgeAltitude * ColorsFactor / RepeatFactor, chrysanthemumRidgeAltitude * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRidgeAltitude * LocationOfColorMovement / FullSliderRunThrough, ( x - halfedDim.width ) / chrysanthemumRidgeAltitude, ( y - halfedDim.height + chrysanthemumYDisplacement ) / chrysanthemumRidgeAltitude, chrysanthemumRidgeAltitude, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white1().getBlue() )
			{
				pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, SpiralFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white2().getBlue() )
			{
				if ( !displayType.laterReversed )
					pattern2D.SimpleRainbow( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else if ( !InvertInsteadOfReverse )
					pattern2D.SimpleRainbowReverse( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				else
					pattern2D.SimpleCustomColor( 2 * chrysanthemumRadius * ColorsFactor / RepeatFactor, - 2 * chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, - 2 * chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - 0.469791666666666 * Dim.width, 2 * chrysanthemumRadius, BrightnessMultiplyer, Gradations, VibrantColorCombos.RainbowFXcolorsReverseNoPink, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white3().getBlue() )
			{
				pattern2D.RainbowCheapFractalGradated( 2 *  chrysanthemumRadius * ColorsFactor / RepeatFactor, 2 *  chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, 2 *  chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, 2 *  chrysanthemumRadius, Dim.width, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else if ( fxColor.getOpacity() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getOpacity() &&
					fxColor.getRed() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getRed() &&
					fxColor.getGreen() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getGreen() &&
					fxColor.getBlue() == RainbowSoftColorCodesSets.MagiEliteSchemeSet.white4().getBlue() )
			{
				pattern2D.RainbowSpiralGradated( chrysanthemumRadius * ColorsFactor / RepeatFactor, chrysanthemumRadius * LocationOfStillMovement / FullSliderRunThrough, chrysanthemumRadius * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumRadius, ShrunkenFactor * chrysanthemumRadius / HalfSreenDiagionalLength, NumberOfSpirals, chrysanthemumRadius, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
			else
				if ( fxColor.getOpacity() == VibrantColors.SimpleBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.SimpleBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.SimpleBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.SimpleBlue.getBlue() )
				{//951 To 969
					pattern2D.RainbowDiskGradated( chrysanthemumInnerRadius * ColorsFactor / RepeatFactor, 88 * chrysanthemumInnerRadius * LocationOfStillMovement / ( FullSliderRunThrough / 10 ), 88 * chrysanthemumInnerRadius * LocationOfColorMovement / ( FullSliderRunThrough / 10 ), x - halfedDim.width, y - halfedDim.height + chrysanthemumYDisplacement, chrysanthemumInnerRadius, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
					if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
						pattern2D.set( pattern2D.ToFXColor().invert() );
					return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
				}
				else
				{
					someTargetColorInTheCenterHit = false;
					if ( fxColor.getOpacity() == VibrantColors.SkyBlue.getOpacity() &&
							fxColor.getRed() == VibrantColors.SkyBlue.getRed() &&
							fxColor.getGreen() == VibrantColors.SkyBlue.getGreen() &&
							fxColor.getBlue() == VibrantColors.SkyBlue.getBlue() )
					{
						pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
						if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
							pattern2D.set( pattern2D.ToFXColor().invert() );
						return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
					}
				}	
		}//if ( someTargetColorInTheCenterHit == false )
		else if ( fxColor.getOpacity() == VibrantColors.OxylBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.OxylBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.OxylBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.OxylBlue.getBlue() )
		{
			pattern2D.RainbowStrobeGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, halfedDim, HalfSreenDiagionalLength, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.SkyBlue.getOpacity() &&
				fxColor.getRed() == VibrantColors.SkyBlue.getRed() &&
				fxColor.getGreen() == VibrantColors.SkyBlue.getGreen() &&
				fxColor.getBlue() == VibrantColors.SkyBlue.getBlue() )
		{
			pattern2D.RainbowSpiralGradated( FullSliderRunThrough * ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x - halfedDim.width, y - halfedDim.height, FullSliderRunThrough, SpiralFactor, NumberOfSpirals, HalfSreenDiagionalLength, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Magenta.getOpacity() &&
				fxColor.getRed() == VibrantColors.Magenta.getRed() &&
				fxColor.getGreen() == VibrantColors.Magenta.getGreen() &&
				fxColor.getBlue() == VibrantColors.Magenta.getBlue() )
		{
			pattern2D.RainbowDiskGradated( - 0.1759797347638206 * halfedDim.height * ColorsFactor / RepeatFactor, 0.175979734764 * halfedDim.height * LocationOfStillMovement / FullSliderRunThrough, 0.175979734764 * halfedDim.height * LocationOfColorMovement / FullSliderRunThrough + 0.0545 * halfedDim.height, x - halfedDim.width,  y - halfedDim.height, 0.1759797347638206 * halfedDim.height, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );//Figure Out What To Use Instead Of ColorsFactor
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.NeonGreen.getOpacity() &&
				fxColor.getRed() == VibrantColors.NeonGreen.getRed() &&
				fxColor.getGreen() == VibrantColors.NeonGreen.getGreen() &&
				fxColor.getBlue() == VibrantColors.NeonGreen.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.HalfGrey.getOpacity() &&
				fxColor.getRed() == VibrantColors.HalfGrey.getRed() &&
				fxColor.getGreen() == VibrantColors.HalfGrey.getGreen() &&
				fxColor.getBlue() == VibrantColors.HalfGrey.getBlue() )
		{
			//angle = 0;//Testing Purposes Only.
			pattern2D.RainbowClockGradated( -2. * Math.PI * ColorsFactor / RepeatFactor, -2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, -2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.DarkPink.getOpacity() &&
				fxColor.getRed() == VibrantColors.DarkPink.getRed() &&
				fxColor.getGreen() == VibrantColors.DarkPink.getGreen() &&
				fxColor.getBlue() == VibrantColors.DarkPink.getBlue() )//neonGreenNum)
		{//pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.RGB[0] * 65536 + (int)color.RGB[1] * 256 + (int)color.RGB[2]));//setArgb // */
			greenBlueGreenUsed = true;
			if ( !displayType.laterReversed )
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), VibrantColorCombos.GreenBlueGreenFXcolors, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else if ( !InvertInsteadOfReverse )
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), VibrantColorCombos.GreenBlueGreenFXcolorsReverse, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else
				pattern2D.RainbowClockGradated( 2. * Math.PI * ColorsFactor / ( 15. * RepeatFactor ), 2. * Math.PI * LocationOfStillMovement / ( 15. * FullSliderRunThrough ), 2. * Math.PI * LocationOfColorMovement / ( 15. * FullSliderRunThrough ), x - halfedDim.width,  y - halfedDim.height, 2. * Math.PI / ( 15. ), VibrantColorCombos.FireFXcolors, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			//pattern2D.RainbowClockGradated( 2 * Math.PI * ColorsFactor / RepeatFactor, 2. * Math.PI * LocationOfStillMovement / FullSliderRunThrough, 2. * Math.PI * LocationOfColorMovement / FullSliderRunThrough, x - halfedDim.width,  y - halfedDim.height, 2 * Math.PI, displayType.laterReversed, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else if ( fxColor.getOpacity() == VibrantColors.Pink.getOpacity() &&
				fxColor.getRed() == VibrantColors.Pink.getRed() &&
				fxColor.getGreen() == VibrantColors.Pink.getGreen() &&
				fxColor.getBlue() == VibrantColors.Pink.getBlue() )
		{//304 + 244 = 548 // 656 //Need Correction For Screen Size !!
			if ( !displayType.laterReversed )
				pattern2D.SimpleRainbow( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			else if ( !InvertInsteadOfReverse )
				pattern2D.SimpleRainbowReverse( 0.3270833333333333 * Dim.width * ColorsFactor / RepeatFactor, - 0.3270833333333333 * Dim.width * LocationOfStillMovement / FullSliderRunThrough, - 0.3270833333333333 * Dim.width * LocationOfColorMovement / FullSliderRunThrough, x - 0.341666666666666 * Dim.width, 0.3270833333333333 * Dim.width, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
			if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
				pattern2D.set( pattern2D.ToFXColor().invert() );
			rainbowSoftColor.set( pattern2D.ToFXColor() );
			return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
		}
		else
		{
			someTargetColorHit = false;
			if ( displayType.laterReversed != Reversed )
				//{
			{
				//pattern2D.set( fxColor.invert() );//pattern2D.set( fxColor.invert() );//pattern2D.set( VibrantColors.NeonGreen );
				//pattern2D.set( VibrantColors.Gold );
				pattern2D.set( fxColor );
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				//return pattern2D.ToFXColor();
				//pattern2D.set( VibrantColors.Gold );
				return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}/*
											// tempColor = fxColor;
											fxColor = ColorDecide.NextColorDecide ( fxColor, pattern2D.ToFXColor(), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
											if ( ! ( fxColor.getOpacity() == InitialColorContrastingChoice.getOpacity() &&
													fxColor.getRed() == InitialColorContrastingChoice.getRed() &&
													fxColor.getGreen() == InitialColorContrastingChoice.getGreen() &&
													fxColor.getBlue() == InitialColorContrastingChoice.getBlue() )
													&& ! ( fxColor.getOpacity() == ColorTooSimilarReplacementColor.getOpacity() &&
													fxColor.getRed() == ColorTooSimilarReplacementColor.getRed() &&
													fxColor.getGreen() == ColorTooSimilarReplacementColor.getGreen() &&
													fxColor.getBlue() == ColorTooSimilarReplacementColor.getBlue() )
													&& InvertBasisFromBackground )
												{
													fxColor = fxColor.invert();
													rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
													rgb = rainbowSoftColor.rgb;
													argb = rainbowSoftColor.argb;
													fxColor = rainbowSoftColor.ToFXColor();
													return fxColor;
												}
												else
													if ( !rainbowSoftColor.ColorTooSimilarFunction( InitialColorContrastingChoice, fxColor, ColorDifference ) )//BrowserPR.getColor( x, y ) , 
													{
														rainbowSoftColor = new RainbowSoftColor( InitialColorContrastingChoice );
														rgb = rainbowSoftColor.rgb;
														argb = rainbowSoftColor.argb;
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}
													else
													{
														rainbowSoftColor = new RainbowSoftColor( ColorTooSimilarReplacementColor );
														rgb = rainbowSoftColor.rgb;
														argb = rainbowSoftColor.argb;
														fxColor = rainbowSoftColor.ToFXColor();
														return fxColor;
													}// */
			//}
			else
			{
				//pattern2D.set( fxColor );
				//return pattern2D.ToFXColor();
				//pattern2D.set( VibrantColors.Silver );
				pattern2D.set( fxColor );
				if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
					pattern2D.set( pattern2D.ToFXColor().invert() );
				rainbowSoftColor.set( pattern2D.ToFXColor() );
				/*rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
				rgb = rainbowSoftColor.rgb;
				argb = rainbowSoftColor.argb;
				fxColor = rainbowSoftColor.ToFXColor();
				return fxColor;// */
				//pattern2D.set( rainbowSoftColor.ToFXColor() );
				return ColorDecide.NextColorDecide ( BackgroundBasisPR.getColor( x, y ), BackgroundBasisPR.getColor( x, y ), pattern2D.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );
			}
		}//End Of Basis Image Switch System
		/*if ( greenBlueGreenUsed == false )
			if ( someTargetColorHit == true)//numberOfClockHandsForOrderOfMagi  //greenBlueGreenUsed
			{
				//	if ( coreVariable >= colorDisplacementVariable && coreVariable < (numberOfColorsInTheRainbow - 1) * colorIntervalVariable  + colorDisplacement)//For Purple Outside Ring
				//{//Retain Below If Else And Use New Variable Names And Equate Them With If Switch Below New Variable Name Comment Above // Make html Text Flip shitBrownNum Color!
				if ( BrowserPR.getColor( x, y ) == VibrantColors.Magenta.ToFXColor() )//shitBrownNum )//BrowserPR.getArgb(x, y) == magentaNum )// == magecoreVariable// == webBlackNum
					if ( coreVariable < colorIntervalVariable  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, purple, blue);
					else if ( coreVariable < ( 2 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, blue, teal);
					else if ( coreVariable < ( 3 * colorIntervalVariable  + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, teal, pink);
					else if ( coreVariable < ( 4 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, pink, yellow);
					else if ( coreVariable < ( 5 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, yellow, orange);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, orange, red);
				else//
					if ( coreVariable < colorIntervalVariable  + colorDisplacement)//For Normal Rainbow Use This Instead Of The Others
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorDisplacement, red, orange);
					else if ( coreVariable < ( 2 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - colorIntervalVariable - colorDisplacement, orange, yellow);
					else if ( coreVariable < ( 3 * colorIntervalVariable  + colorDisplacement) )		
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 2 * colorIntervalVariable - colorDisplacement, yellow, green);
					else if ( coreVariable < ( 4 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 3 * colorIntervalVariable - colorDisplacement, green, teal);
					else if ( coreVariable < ( 5 * colorIntervalVariable  + colorDisplacement) )
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 4 * colorIntervalVariable - colorDisplacement, teal, blue);
					else
						color.ColorSliderFunction(colorIntervalVariable, coreVariable - 5 * colorIntervalVariable - colorDisplacement, blue, purple);//
				pw.setArgb( x, y, (int)(255 * 16777216 + (int)color.RGB[0] * 65536 + (int)color.RGB[1] * 256 + (int)color.RGB[2]));//setArgb
			}
			else
				if ( BrowserPR.getColor( x, y ) != VibrantColors.Magenta )//shitBrownNum )
					pw.setArgb( x, y, BasisPR.getColor( x, y ) );
				else
					pw.setArgb( x, y, neonGreen);//shitBrownNum);//pr.getColor( x, y ) );// */

		//pattern2D.SimpleRainbow(ColorsFactor, LocationOfStillMovement, LocationOfColorMovement, x, RepeatFactor);
		//rainbowSoftColor.RainbowSoftColorRainbowFunction(Math.abs( ColorsFactor ), sliderValue);//1st Square In SimpleDiagnosticsClass.java
		//rainbowSoftColor.set( VibrantColors.Silver );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		pattern2D.set( VibrantColors.Bronze );// = new RainbowSoftColor( new double[] { 255 * BasisPR.getColor( x, y ).getRed(), 255 * BasisPR.getColor( x, y ).getGreen(), 255 * BasisPR.getColor( x, y ).getBlue(), BasisPR.getColor( x, y ).getOpacity() } );
		/*rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.argb;
		fxColor = rainbowSoftColor.ToFXColor();// */
		if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		return ColorDecide.NextColorDecide ( fxColor, BackgroundBasisPR.getColor( x, y ), rainbowSoftColor.ToFXColor(), BrowserPR.getColor( x, y ), InitialColorContrastingChoice, ColorTooSimilarReplacementColor, ColorDifference, someTargetColorHit, displayType.laterReversed == Reversed, NextStepColorTooSimilarEffect, InvertBasisFromBackground );// */
	}

	public Color RainbowVideoTest(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double FullSliderRunThrough, int x, int y, double RepeatFactor, double SpiralFactor, double NumberOfSpirals, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean InvertInsteadOfReverse, boolean InvertBoth, boolean InvertJustOrigional, boolean InvertTextAlways, /*boolean ReversalOfBackgroundEffectsMaster,*/ boolean NextStepColorTooSimilarEffect )
	{
		pattern2D.set( VibrantColors.HalfGrey );
		rainbowSoftColor.set( VibrantColors.HalfGrey );
		pattern2D.RainbowDoubleExponentiator( FullSliderRunThrough * - ColorsFactor / RepeatFactor, LocationOfStillMovement, LocationOfColorMovement, x, y, FullSliderRunThrough, Dim, 4., -1, displayType.laterReversed && !InvertInsteadOfReverse, BrightnessMultiplyer, Gradations, OpacityBefore, OpacityAfter, Adjusted );
		if ( ( InvertInsteadOfReverse && displayType.laterReversed != Reversed ) || InvertBoth || ( InvertJustOrigional && displayType.laterReversed == Reversed ) || ( InvertTextAlways && displayType.laterReversed != Reversed ) )
			pattern2D.set( pattern2D.ToFXColor().invert() );
		rainbowSoftColor.set( pattern2D.ToFXColor() );
		//rainbowSoftColor = new RainbowSoftColor( new double[] { 255 * fxColor.getRed(), 255 * fxColor.getGreen(), 255 * fxColor.getBlue(), fxColor.getOpacity() } );
		rgb = rainbowSoftColor.rgb;
		argb = rainbowSoftColor.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 Reversed //
	{//!!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 ColorValueFitter ( double ColorToBeChecked )//30th Square DiagnosticsClass.java
	{
		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 )//31st Square DiagnosticsClass.java
	{
		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) { argb = ARGB; rgb[0] = ARGB[0]; rgb[1] = ARGB[1]; rgb[2] = ARGB[2]; fxColor = Color.rgb( (int)(ColorValueFitter(ARGB[0])), (int)(ColorValueFitter(ARGB[1])), (int)(ColorValueFitter(ARGB[2])), (int)(OpacityValueFitter(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() { return fxColor; }//Returns Always Happen With Variable Output With ARGB Functionality //31st Square In SimpleDiagnosticsClass.java
}