public int GetPairNumberFromColor(ColorPair pair) { int majorIndex = -1; for (int i = 0; i < space.getColorMapMajor().Length; i++) { if ((Color)space.getColorMapMajor().GetValue(i) == pair.majorColor) { majorIndex = i; break; } } int minorIndex = -1; for (int i = 0; i < space.getColorMapMinor().Length; i++) { if ((Color)space.getColorMapMinor().GetValue(i) == pair.minorColor) { minorIndex = i; break; } } if (majorIndex == -1 || minorIndex == -1) { throw new ArgumentException( string.Format("Unknown Colors: {0}", pair.ToString())); } return((majorIndex * space.getColorMapMinor().Length) + (minorIndex + 1)); }
public ColorPair GetColorFromPairNumber(int pairNumber) { int minorSize = space.getColorMapMinor().Length; int majorSize = space.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)space.getColorMapMajor().GetValue(majorIndex), minorColor = (Color)space.getColorMapMinor().GetValue(minorIndex) }; return(pair); }