Files
ANSLibs/QRCode/pdf417/PDFCodeword.h

72 lines
1.1 KiB
C++

/*
* Copyright 2016 Nu-book Inc.
* Copyright 2016 ZXing authors
*/
// SPDX-License-Identifier: Apache-2.0
#pragma once
namespace ZXing {
namespace Pdf417 {
/**
* @author Guenther Grau
*/
class Codeword
{
static const int BARCODE_ROW_UNKNOWN = -1;
int _startX = 0;
int _endX = 0;
int _bucket = 0;
int _value = 0;
int _rowNumber = BARCODE_ROW_UNKNOWN;
public:
Codeword() {}
Codeword(int startX, int endX, int bucket, int value) : _startX(startX), _endX(endX), _bucket(bucket), _value(value) {}
bool hasValidRowNumber() const {
return isValidRowNumber(_rowNumber);
}
bool isValidRowNumber(int rowNumber) const {
return rowNumber != BARCODE_ROW_UNKNOWN && _bucket == (rowNumber % 3) * 3;
}
void setRowNumberAsRowIndicatorColumn() {
_rowNumber = (_value / 30) * 3 + _bucket / 3;
}
int width() const {
return _endX - _startX;
}
int startX() const {
return _startX;
}
int endX() const {
return _endX;
}
int bucket() const {
return _bucket;
}
int value() const {
return _value;
}
int rowNumber() const {
return _rowNumber;
}
void setRowNumber(int rowNumber) {
_rowNumber = rowNumber;
}
};
} // Pdf417
} // ZXing