public RGBColorSystem( float[,] rgbToXyzMatrix, float[,] xyzToRgbMatrix, StandardReferenceWhite referenceWhite, ColorCompandingFunction compandingFunction, float gamma = 0) { MathUtils.EnsureMatrix3AndInvese(rgbToXyzMatrix, xyzToRgbMatrix, out _rgbToXyzMatrix, out _xyzToRgbMatrix); _referenceWhite = referenceWhite; _compandingFunction = compandingFunction; _gamma = gamma; }
public static float[] GetStandardReferenceWhiteXYZ(StandardReferenceWhite referenceWhite) { switch (referenceWhite) { case StandardReferenceWhite.A: return(ReferenceWhite_XYZ_A); case StandardReferenceWhite.B: return(ReferenceWhite_XYZ_B); case StandardReferenceWhite.C: return(ReferenceWhite_XYZ_C); case StandardReferenceWhite.D50: return(ReferenceWhite_XYZ_D50); case StandardReferenceWhite.D55: return(ReferenceWhite_XYZ_D55); case StandardReferenceWhite.D65: return(ReferenceWhite_XYZ_D65); case StandardReferenceWhite.D75: return(ReferenceWhite_XYZ_D75); case StandardReferenceWhite.E: return(ReferenceWhite_XYZ_E); case StandardReferenceWhite.F2: return(ReferenceWhite_XYZ_F2); case StandardReferenceWhite.F7: return(ReferenceWhite_XYZ_F7); case StandardReferenceWhite.F11: return(ReferenceWhite_XYZ_F11); default: throw new ArgumentException("Illegal reference white"); } }