\r
/**\r
* @param bitMatrix {@link BitMatrix} to parse\r
- * @throws FormatException if dimension is < 10 or > 144 or not 0 mod 2\r
+ * @throws FormatException if dimension is < 8 or > 144 or not 0 mod 2\r
*/\r
BitMatrixParser(BitMatrix bitMatrix) throws FormatException {\r
int dimension = bitMatrix.getHeight();\r
- if (dimension < 10 || dimension > 144 || (dimension & 0x01) != 0) {\r
+ if (dimension < 8 || dimension > 144 || (dimension & 0x01) != 0) {\r
throw FormatException.getFormatInstance();\r
}\r
\r
version = readVersion(bitMatrix);\r
this.mappingBitMatrix = extractDataRegion(bitMatrix);\r
- // TODO(bbrown): Make this work for rectangular symbols\r
- this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getHeight());\r
+ this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight());\r
}\r
\r
/**\r
return version;\r
}\r
\r
- // TODO(bbrown): make this work for rectangular dimensions as well.\r
int numRows = bitMatrix.getHeight();\r
- int numColumns = numRows;\r
+ int numColumns = bitMatrix.getWidth();\r
\r
return Version.getVersionForDimensions(numRows, numColumns);\r
}\r
\r
int row = 4;\r
int column = 0;\r
- // TODO(bbrown): Data Matrix can be rectangular, assuming square for now\r
+\r
int numRows = mappingBitMatrix.getHeight();\r
- int numColumns = numRows;\r
+ int numColumns = mappingBitMatrix.getWidth();\r
\r
boolean corner1Read = false;\r
boolean corner2Read = false;\r
int symbolSizeRows = version.getSymbolSizeRows();\r
int symbolSizeColumns = version.getSymbolSizeColumns();\r
\r
- // TODO(bbrown): Make this work with rectangular codes\r
if (bitMatrix.getHeight() != symbolSizeRows) {\r
throw new IllegalArgumentException("Dimension of bitMarix must match the version size");\r
}\r
int numDataRegionsColumn = symbolSizeColumns / dataRegionSizeColumns;\r
\r
int sizeDataRegionRow = numDataRegionsRow * dataRegionSizeRows;\r
- //int sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns;\r
+ int sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns;\r
\r
// TODO(bbrown): Make this work with rectangular codes\r
- BitMatrix bitMatrixWithoutAlignment = new BitMatrix(sizeDataRegionRow);\r
+ BitMatrix bitMatrixWithoutAlignment = new BitMatrix(sizeDataRegionColumn, sizeDataRegionRow);\r
for (int dataRegionRow = 0; dataRegionRow < numDataRegionsRow; ++dataRegionRow) {\r
int dataRegionRowOffset = dataRegionRow * dataRegionSizeRows;\r
for (int dataRegionColumn = 0; dataRegionColumn < numDataRegionsColumn; ++dataRegionColumn) {\r