X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=csharp%2Fcommon%2FByteMatrix.cs;h=c656d4028a39024bc6679fb95e86098195c7d222;hb=3069fb4808b15901155620b678ef6a34562459d6;hp=b1daa7210c7f59104ae12685879cffbee811a6e7;hpb=e35d358134873c3f640672da7cd0c01f02253151;p=zxing.git diff --git a/csharp/common/ByteMatrix.cs b/csharp/common/ByteMatrix.cs index b1daa721..c656d402 100755 --- a/csharp/common/ByteMatrix.cs +++ b/csharp/common/ByteMatrix.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright 2008 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,103 +13,119 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +using System; namespace com.google.zxing.common { - using System; - using System.Text; - - /// A class which wraps a 2D array of bytes. The default usage is signed. If you want to use it as a - /// unsigned container, it's up to you to do byteValue & 0xff at each location. - /// * - /// JAVAPORT: I'm not happy about the argument ordering throughout the file, as I always like to have - /// the horizontal component first, but this is for compatibility with the C++ code. The original - /// code was a 2D array of ints, but since it only ever gets assigned -1, 0, and 1, I'm going to use - /// less memory and go with bytes. - /// * - /// - /// dswitkin@google.com (Daniel Switkin) - /// - /// - public sealed class ByteMatrix - { - private sbyte[][] bytes; - private int Height; - private int Width; - - - public ByteMatrix(int height, int width) { - bytes = new sbyte[height][]; - for (int i = 0; i < height; i++) { - bytes[i] = new sbyte[width]; - } - this.Height = height; - this.Width = width; - } - - public int height() - { - return Height; - } - - public int width() - { - return Width; - } - - public sbyte get(int y, int x) - { - return bytes[y][x]; - } - - public sbyte[][] getArray() - { - return bytes; - } - - public void set(int y, int x, sbyte value) - { - bytes[y][x] = value; - } - - public void set(int y, int x, int value) - { - bytes[y][x] = (sbyte)value; - } - - public void clear(sbyte value) - { - for (int y = 0; y < Height; ++y) - { - for (int x = 0; x < Width; ++x) - { - bytes[y][x] = value; - } - } - } - - public String toString() - { - StringBuilder result = new StringBuilder(); - for (int y = 0; y < Height; ++y) - { - for (int x = 0; x < Width; ++x) - { - switch (bytes[y][x]) - { - case 0: - result.Append(" 0"); - break; - case 1: - result.Append(" 1"); - break; - default: - result.Append(" "); - break; - } - } - result.Append('\n'); - } - return result.ToString(); - } - } + + /// A class which wraps a 2D array of bytes. The default usage is signed. If you want to use it as a + /// unsigned container, it's up to you to do byteValue & 0xff at each location. + /// + /// JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned + /// -1, 0, and 1, I'm going to use less memory and go with bytes. + /// + /// + /// dswitkin@google.com (Daniel Switkin) + /// + /// www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source + /// + public sealed class ByteMatrix + { + public int Height + { + get + { + return height; + } + + } + public int Width + { + get + { + return width; + } + + } + public sbyte[][] Array + { + get + { + return bytes; + } + + } + + //UPGRADE_NOTE: Final was removed from the declaration of 'bytes '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" + private sbyte[][] bytes; + //UPGRADE_NOTE: Final was removed from the declaration of 'width '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" + private int width; + //UPGRADE_NOTE: Final was removed from the declaration of 'height '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" + private int height; + + public ByteMatrix(int width, int height) + { + bytes = new sbyte[height][]; + for (int i = 0; i < height; i++) + { + bytes[i] = new sbyte[width]; + } + this.width = width; + this.height = height; + } + + public sbyte get_Renamed(int x, int y) + { + return bytes[y][x]; + } + + public void set_Renamed(int x, int y, sbyte value_Renamed) + { + bytes[y][x] = value_Renamed; + } + + public void set_Renamed(int x, int y, int value_Renamed) + { + bytes[y][x] = (sbyte) value_Renamed; + } + + public void clear(sbyte value_Renamed) + { + for (int y = 0; y < height; ++y) + { + for (int x = 0; x < width; ++x) + { + bytes[y][x] = value_Renamed; + } + } + } + + public override System.String ToString() + { + System.Text.StringBuilder result = new System.Text.StringBuilder(2 * width * height + 2); + for (int y = 0; y < height; ++y) + { + for (int x = 0; x < width; ++x) + { + switch (bytes[y][x]) + { + + case 0: + result.Append(" 0"); + break; + + case 1: + result.Append(" 1"); + break; + + default: + result.Append(" "); + break; + + } + } + result.Append('\n'); + } + return result.ToString(); + } + } } \ No newline at end of file