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 7 #ifndef _BC_QRALIGNMENTPATTERNFINDER_H_ 8 #define _BC_QRALIGNMENTPATTERNFINDER_H_ 9 class CBC_CommonBitMatrix; 10 class CBC_QRAlignmentPattern; 11 class CBC_QRAlignmentPatternFinder { 12 private: 13 CBC_CommonBitMatrix* m_image; 14 CFX_PtrArray m_possibleCenters; 15 int32_t m_startX; 16 int32_t m_startY; 17 int32_t m_width; 18 int32_t m_height; 19 FX_FLOAT m_moduleSize; 20 CFX_Int32Array m_crossCheckStateCount; 21 22 public: 23 CBC_QRAlignmentPatternFinder(CBC_CommonBitMatrix* image, 24 int32_t startX, 25 int32_t startY, 26 int32_t width, 27 int32_t height, 28 FX_FLOAT moduleSize); 29 virtual ~CBC_QRAlignmentPatternFinder(); 30 FX_BOOL FoundPatternCross(const CFX_Int32Array& stateCount); 31 FX_FLOAT CrossCheckVertical(int32_t startI, 32 int32_t startJ, 33 int32_t maxCount, 34 int32_t originalStateCountTotal); 35 CBC_QRAlignmentPattern* Find(int32_t& e); 36 CBC_QRAlignmentPattern* HandlePossibleCenter(const CFX_Int32Array& stateCount, 37 int32_t i, 38 int32_t j); 39 static FX_FLOAT CenterFromEnd(const CFX_Int32Array& stateCount, int32_t end); 40 }; 41 #endif 42