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_ 9class CBC_CommonBitArray; 10class 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