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_COMMONBITMATRIX_H_ 8 #define _BC_COMMONBITMATRIX_H_ 9 class CBC_CommonBitArray; 10 class CBC_CommonBitMatrix { 11 public: 12 CBC_CommonBitMatrix(); 13 virtual ~CBC_CommonBitMatrix(); 14 FX_BOOL Get(int32_t x, int32_t y); 15 void Set(int32_t x, int32_t y); 16 void Flip(int32_t x, int32_t y); 17 void Clear(); 18 void SetRegion(int32_t left, 19 int32_t top, 20 int32_t width, 21 int32_t height, 22 int32_t& e); 23 CBC_CommonBitArray* GetRow(int32_t y, CBC_CommonBitArray* row); 24 void SetRow(int32_t y, CBC_CommonBitArray* row); 25 CBC_CommonBitArray* GetCol(int32_t y, CBC_CommonBitArray* row); 26 void SetCol(int32_t y, CBC_CommonBitArray* col); 27 int32_t GetWidth(); 28 int32_t GetHeight(); 29 int32_t GetRowSize(); 30 int32_t GetDimension(int32_t& e); 31 virtual void Init(int32_t dimension); 32 virtual void Init(int32_t width, int32_t height); 33 int32_t* GetBits(); 34 35 private: 36 int32_t m_width; 37 int32_t m_height; 38 int32_t m_rowSize; 39 int32_t* m_bits; 40 }; 41 #endif 42