• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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