public static int GetPairNumberFromColor(ColorPair pair) { int majorIndex = -1; majorIndex = CheckColorandReturnIndex(ColourSpace.getColorMapMajor(), pair.majorColor); int minorIndex = -1; minorIndex = CheckColorandReturnIndex(ColourSpace.getColorMapMinor(), pair.minorColor); if (majorIndex == -1 || minorIndex == -1) { throw new ArgumentException( string.Format("Unknown Colors: {0}", pair.ToString())); } return (majorIndex * ColourSpace.getColorMapMinor().Length) + (minorIndex + 1); }
public static ColorPair GetColorFromPairNumber(int pairNumber) { int minorSize = ColourSpace.getColorMapMinor().Length; int majorSize = ColourSpace.getColorMapMajor().Length; if (pairNumber < 1 || pairNumber > minorSize * majorSize) { throw new ArgumentOutOfRangeException( string.Format("Argument PairNumber:{0} is outside the allowed range", pairNumber)); } int zeroBasedPairNumber = pairNumber - 1; int majorIndex = zeroBasedPairNumber / minorSize; int minorIndex = zeroBasedPairNumber % minorSize; ColorPair pair = new ColorPair() { majorColor = (Color)ColourSpace.getColorMapMajor().GetValue(majorIndex), minorColor = (Color)ColourSpace.getColorMapMinor().GetValue(minorIndex) }; return(pair); }