1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 // Original code is licensed as follows: 7 /* 8 * Copyright 2007 ZXing authors 9 * 10 * Licensed under the Apache License, Version 2.0 (the "License"); 11 * you may not use this file except in compliance with the License. 12 * You may obtain a copy of the License at 13 * 14 * http://www.apache.org/licenses/LICENSE-2.0 15 * 16 * Unless required by applicable law or agreed to in writing, software 17 * distributed under the License is distributed on an "AS IS" BASIS, 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 * See the License for the specific language governing permissions and 20 * limitations under the License. 21 */ 22 23 #include "xfa/src/fxbarcode/barcode.h" 24 #include "xfa/src/fxbarcode/BC_ResultPoint.h" 25 #include "BC_QRAlignmentPattern.h" 26 CBC_QRAlignmentPattern::CBC_QRAlignmentPattern(FX_FLOAT posX, 27 FX_FLOAT posY, 28 FX_FLOAT estimateModuleSize) 29 : CBC_ResultPoint(posX, posY), m_moduleSize(estimateModuleSize) {} 30 CBC_QRAlignmentPattern::~CBC_QRAlignmentPattern() {} 31 FX_FLOAT CBC_QRAlignmentPattern::GetX() { 32 return m_x; 33 } 34 FX_FLOAT CBC_QRAlignmentPattern::GetY() { 35 return m_y; 36 } 37 FX_BOOL CBC_QRAlignmentPattern::AboutEquals(FX_FLOAT moduleSize, 38 FX_FLOAT i, 39 FX_FLOAT j) { 40 if ((FXSYS_fabs(i - GetY()) <= moduleSize) && 41 (FXSYS_fabs(j - GetX()) <= moduleSize)) { 42 FX_FLOAT moduleSizeDiff = FXSYS_fabs(moduleSize - m_moduleSize); 43 return (moduleSizeDiff <= 1.0f) || (moduleSizeDiff / m_moduleSize <= 1.0f); 44 } 45 return FALSE; 46 } 47 CBC_QRAlignmentPattern* CBC_QRAlignmentPattern::Clone() { 48 return new CBC_QRAlignmentPattern(m_x, m_y, m_moduleSize); 49 } 50