Home | History | Annotate | Download | only in qrcode
      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