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