MatrixUtil.h Example File
appdemos/qtws/QZXing/zxing/zxing/qrcode/encoder/MatrixUtil.h
#ifndef MATRIXUTIL_H
#define MATRIXUTIL_H
#include "ByteMatrix.h"
#include <zxing/common/BitArray.h>
#include <zxing/qrcode/ErrorCorrectionLevel.h>
#include <zxing/qrcode/Version.h>
namespace zxing {
namespace qrcode {
class MatrixUtil {
private:
MatrixUtil() {}
static const int POSITION_DETECTION_PATTERN[7][7];
static const int POSITION_ADJUSTMENT_PATTERN[5][5];
static const int POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[40][7];
static const int TYPE_INFO_COORDINATES[16][2];
static const int VERSION_INFO_POLY;
static const int TYPE_INFO_POLY;
static const int TYPE_INFO_MASK_PATTERN;
private:
static bool isEmpty(int value) { return value == 255; }
static void embedTimingPatterns(ByteMatrix& matrix);
static void embedDarkDotAtLeftBottomCorner(ByteMatrix& matrix);
static void embedHorizontalSeparationPattern(int xStart,
int yStart,
ByteMatrix& matrix);
static void embedVerticalSeparationPattern(int xStart,
int yStart,
ByteMatrix& matrix);
static void embedPositionAdjustmentPattern(int xStart, int yStart, ByteMatrix& matrix);
static void embedPositionDetectionPattern(int xStart, int yStart, ByteMatrix& matrix);
static void embedPositionDetectionPatternsAndSeparators(ByteMatrix& matrix);
static void maybeEmbedPositionAdjustmentPatterns(const Version& version, ByteMatrix& matrix);
public:
static void clearMatrix(ByteMatrix& matrix) {
matrix.clear((byte) -1);
}
static void embedBasicPatterns(const Version& version, ByteMatrix& matrix);
static void embedTypeInfo(const ErrorCorrectionLevel& ecLevel, int maskPattern, ByteMatrix& matrix);
static void maybeEmbedVersionInfo(const Version& version, ByteMatrix& matrix);
static void embedDataBits(const BitArray& dataBits, int maskPattern, ByteMatrix& matrix);
static int findMSBSet(int value);
static int calculateBCHCode(int value, int poly);
static void makeVersionInfoBits(const Version& version, BitArray& bits);
static void makeTypeInfoBits(const ErrorCorrectionLevel& ecLevel, int maskPattern, BitArray& bits);
static void buildMatrix(const BitArray& dataBits,
const ErrorCorrectionLevel &ecLevel,
Version& version,
int maskPattern,
ByteMatrix& matrix);
};
}
}
#endif //MATRIXUTIL_H