public static void ExpandSymbolRow(Collection <SymbolData> Symbol, StringBuilder rowPattern, float height)
        {
            List <byte> rowData = new List <byte>();
            bool        latch   = true; // Start with a bar.

            for (int i = 0; i < rowPattern.Length; i++)
            {
                int value = rowPattern[i] - '0';
                for (int j = 0; j < value; j++)
                {
                    if (latch)
                    {
                        rowData.Add(1);
                    }

                    else
                    {
                        rowData.Add(0);
                    }
                }

                latch = !latch;
            }

            SymbolData symbolData = new SymbolData(rowData.ToArray(), height);

            Symbol.Add(symbolData);
        }
Beispiel #2
0
        public static void BuildFourStateSymbol(Collection <SymbolData> Symbol, StringBuilder barPattern)
        {
            // Turn the symbol into a bar pattern.
            int index         = 0;
            int patternLength = barPattern.Length;

            byte[]     rowData1 = new byte[patternLength * 2];
            byte[]     rowData2 = new byte[patternLength * 2];
            byte[]     rowData3 = new byte[patternLength * 2];
            SymbolData symbolData;

            for (int i = 0; i < patternLength; i++)
            {
                if ((barPattern[i] == '1') || (barPattern[i] == '0'))
                {
                    rowData1[index] = 1;
                }

                rowData2[index] = 1;
                if ((barPattern[i] == '2') || (barPattern[i] == '0'))
                {
                    rowData3[index] = 1;
                }

                index += 2;
            }

            symbolData = new SymbolData(rowData1, 4.0f);
            Symbol.Add(symbolData);
            symbolData = new SymbolData(rowData2, 2.5f);
            Symbol.Add(symbolData);
            symbolData = new SymbolData(rowData3, 4.0f);
            Symbol.Add(symbolData);
        }