14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file. 44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifndef XFA_FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_ 84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#define XFA_FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_ 94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/fx_system.h" 114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CBC_CommonBitArray; 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CBC_CommonBitMatrix { 154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CBC_CommonBitMatrix(); 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual ~CBC_CommonBitMatrix(); 184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual void Init(int32_t dimension); 204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual void Init(int32_t width, int32_t height); 214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool Get(int32_t x, int32_t y); 234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void Set(int32_t x, int32_t y); 244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void Flip(int32_t x, int32_t y); 254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void Clear(); 264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetRegion(int32_t left, 274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t top, 284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t width, 294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t height, 304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t& e); 314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CBC_CommonBitArray* GetRow(int32_t y, CBC_CommonBitArray* row); 324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetRow(int32_t y, CBC_CommonBitArray* row); 334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CBC_CommonBitArray* GetCol(int32_t y, CBC_CommonBitArray* row); 344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetCol(int32_t y, CBC_CommonBitArray* col); 354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetWidth(); 364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetHeight(); 374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetRowSize(); 384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetDimension(int32_t& e); 394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t* GetBits(); 404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann private: 424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t m_width; 434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t m_height; 444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t m_rowSize; 454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t* m_bits; 464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // XFA_FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_ 49