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_QRGRIDSAMPLER_H_
8#define _BC_QRGRIDSAMPLER_H_
9class CBC_CommonBitMatrix;
10class CBC_CommonPerspectiveTransform;
11class CBC_CommonDefaultGridSampler;
12class CBC_QRGridSampler;
13class CBC_QRGridSampler {
14 private:
15  static CBC_QRGridSampler m_gridSampler;
16
17 public:
18  CBC_QRGridSampler();
19  virtual ~CBC_QRGridSampler();
20  virtual CBC_CommonBitMatrix* SampleGrid(CBC_CommonBitMatrix* image,
21                                          int32_t dimensionX,
22                                          int32_t dimensionY,
23                                          FX_FLOAT p1ToX,
24                                          FX_FLOAT p1ToY,
25                                          FX_FLOAT p2ToX,
26                                          FX_FLOAT p2ToY,
27                                          FX_FLOAT p3ToX,
28                                          FX_FLOAT p3ToY,
29                                          FX_FLOAT p4ToX,
30                                          FX_FLOAT p4ToY,
31                                          FX_FLOAT p1FromX,
32                                          FX_FLOAT p1FromY,
33                                          FX_FLOAT p2FromX,
34                                          FX_FLOAT p2FromY,
35                                          FX_FLOAT p3FromX,
36                                          FX_FLOAT p3FromY,
37                                          FX_FLOAT p4FromX,
38                                          FX_FLOAT p4FromY,
39                                          int32_t& e);
40
41  static CBC_QRGridSampler& GetInstance();
42  static void CheckAndNudgePoints(CBC_CommonBitMatrix* image,
43                                  CFX_FloatArray* points,
44                                  int32_t& e);
45};
46#endif
47