コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }