Home | History | Annotate | Download | only in common
      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 XFA_FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_
      8 #define XFA_FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_
      9 
     10 #include "core/fxcrt/fx_system.h"
     11 
     12 class CBC_CommonBitArray;
     13 
     14 class CBC_CommonBitMatrix {
     15  public:
     16   CBC_CommonBitMatrix();
     17   virtual ~CBC_CommonBitMatrix();
     18 
     19   virtual void Init(int32_t dimension);
     20   virtual void Init(int32_t width, int32_t height);
     21 
     22   bool Get(int32_t x, int32_t y);
     23   void Set(int32_t x, int32_t y);
     24   void Flip(int32_t x, int32_t y);
     25   void Clear();
     26   void SetRegion(int32_t left,
     27                  int32_t top,
     28                  int32_t width,
     29                  int32_t height,
     30                  int32_t& e);
     31   CBC_CommonBitArray* GetRow(int32_t y, CBC_CommonBitArray* row);
     32   void SetRow(int32_t y, CBC_CommonBitArray* row);
     33   CBC_CommonBitArray* GetCol(int32_t y, CBC_CommonBitArray* row);
     34   void SetCol(int32_t y, CBC_CommonBitArray* col);
     35   int32_t GetWidth();
     36   int32_t GetHeight();
     37   int32_t GetRowSize();
     38   int32_t GetDimension(int32_t& e);
     39   int32_t* GetBits();
     40 
     41  private:
     42   int32_t m_width;
     43   int32_t m_height;
     44   int32_t m_rowSize;
     45   int32_t* m_bits;
     46 };
     47 
     48 #endif  // XFA_FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_
     49