diff options
Diffstat (limited to 'libraries/zxing/src/com/google/zxing/qrcode/detector/AlignmentPattern.java')
-rw-r--r-- | libraries/zxing/src/com/google/zxing/qrcode/detector/AlignmentPattern.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libraries/zxing/src/com/google/zxing/qrcode/detector/AlignmentPattern.java b/libraries/zxing/src/com/google/zxing/qrcode/detector/AlignmentPattern.java new file mode 100644 index 000000000..6fc1a2c88 --- /dev/null +++ b/libraries/zxing/src/com/google/zxing/qrcode/detector/AlignmentPattern.java @@ -0,0 +1,48 @@ +/* + * Copyright 2007 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.zxing.qrcode.detector; + +import com.google.zxing.ResultPoint; + +/** + * <p>Encapsulates an alignment pattern, which are the smaller square patterns found in + * all but the simplest QR Codes.</p> + * + * @author Sean Owen + */ +public final class AlignmentPattern extends ResultPoint { + + private final float estimatedModuleSize; + + AlignmentPattern(float posX, float posY, float estimatedModuleSize) { + super(posX, posY); + this.estimatedModuleSize = estimatedModuleSize; + } + + /** + * <p>Determines if this alignment pattern "about equals" an alignment pattern at the stated + * position and size -- meaning, it is at nearly the same center with nearly the same size.</p> + */ + boolean aboutEquals(float moduleSize, float i, float j) { + if (Math.abs(i - getY()) <= moduleSize && Math.abs(j - getX()) <= moduleSize) { + float moduleSizeDiff = Math.abs(moduleSize - estimatedModuleSize); + return moduleSizeDiff <= 1.0f || moduleSizeDiff / estimatedModuleSize <= 1.0f; + } + return false; + } + +}
\ No newline at end of file |