blob: 2bb3f64843be32b183d960869f4f6f1e6ae72611 [file] [log] [blame]
Dan Sinclair1770c022016-03-14 14:14:16 -04001// 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
Dan Sinclaire7786682017-03-29 15:18:41 -04007#ifndef FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_
8#define FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_
Dan Sinclair1770c022016-03-14 14:14:16 -04009
dsinclaira52ab742016-09-29 13:59:29 -070010#include "core/fxcrt/fx_system.h"
Dan Sinclair1770c022016-03-14 14:14:16 -040011
12class CBC_CommonBitArray;
13
14class CBC_CommonBitMatrix {
15 public:
16 CBC_CommonBitMatrix();
17 virtual ~CBC_CommonBitMatrix();
weili29b8ad02016-06-14 18:20:04 -070018
19 virtual void Init(int32_t dimension);
20 virtual void Init(int32_t width, int32_t height);
21
tsepezd19e9122016-11-02 15:43:18 -070022 bool Get(int32_t x, int32_t y);
Dan Sinclair1770c022016-03-14 14:14:16 -040023 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);
Dan Sinclair1770c022016-03-14 14:14:16 -040039 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
Dan Sinclaire7786682017-03-29 15:18:41 -040048#endif // FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_