public override bool Equals(object obj) { if (obj == null) { return(false); } YCbCrColorspace c = obj as YCbCrColorspace; if ((Object)c == null) { return(false); } return(Name == c.Name); }
private void SetInputColor(UColor inColor) { InputModel = inColor.Model; DoAdaption = inColor.ReferenceWhite != OutReferenceWhite.Name; if (InputModel != ColorModel.Gray) { ValArr1 = inColor.DoubleColorArray; ValArr2 = inColor.DoubleColorArray; } else { ValArr1 = new double[] { ((UColorGray)inColor).G / 65535d, 0, 0 }; ValArr2 = new double[] { ((UColorGray)inColor).G / 65535d, 0, 0 }; } switch (InputModel) { case ColorModel.CIELab: case ColorModel.CIELCHab: case ColorModel.CIELCHuv: case ColorModel.LCH99: case ColorModel.LCH99b: case ColorModel.LCH99c: case ColorModel.LCH99d: case ColorModel.CIELuv: case ColorModel.CIEXYZ: case ColorModel.CIEYxy: case ColorModel.Gray: case ColorModel.DEF: case ColorModel.Bef: case ColorModel.BCH: if (inColor.ReferenceWhite == WhitepointName.Custom || OutReferenceWhite.Name == WhitepointName.Custom) DoAdaption = true; InputWhitepoint = WhitepointArr[(int)inColor.ReferenceWhite]; break; case ColorModel.HSL: InputRGBSpace = ((UColorHSL)inColor).Space; InputWhitepoint = InputRGBSpace.ReferenceWhite; DoAdaptionRGB(); break; case ColorModel.HSV: InputRGBSpace = ((UColorHSV)inColor).Space; InputWhitepoint = InputRGBSpace.ReferenceWhite; DoAdaptionRGB(); break; case ColorModel.RGB: InputRGBSpace = ((UColorRGB)inColor).Space; IsRGBLinear = ((UColorRGB)inColor).IsLinear; InputWhitepoint = InputRGBSpace.ReferenceWhite; DoAdaptionRGB(); break; case ColorModel.YCbCr: InputRGBSpace = ((UColorYCbCr)inColor).BaseSpace; InputYCbCrSpace = ((UColorYCbCr)inColor).Space; InputWhitepoint = InputRGBSpace.ReferenceWhite; DoAdaptionYCbCr(); break; default: throw new NotImplementedException(); } }