Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxbarcode / src / include / BC_WhiteRectangleDetector.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _BC_WHITERECTANLEDETECTOR_H_\r
8 #define _BC_WHITERECTANLEDETECTOR_H_\r
9 class CBC_CommonBitMatrix;\r
10 class CBC_ResultPoint;\r
11 class CBC_WhiteRectangleDetector;\r
12 class CBC_WhiteRectangleDetector : public CFX_Object\r
13 {\r
14 public:\r
15     CBC_WhiteRectangleDetector(CBC_CommonBitMatrix *image);\r
16     CBC_WhiteRectangleDetector(CBC_CommonBitMatrix *image, FX_INT32 initSize, FX_INT32 x, FX_INT32 y);\r
17     virtual ~CBC_WhiteRectangleDetector();\r
18     CFX_PtrArray *Detect(FX_INT32 &e);\r
19     virtual void Init(FX_INT32 &e);\r
20 private:\r
21     FX_INT32 Round(float d);\r
22     CBC_ResultPoint *GetBlackPointOnSegment(FX_FLOAT aX, FX_FLOAT aY, FX_FLOAT bX, FX_FLOAT bY);\r
23     FX_INT32 DistanceL2(FX_FLOAT aX, FX_FLOAT aY, FX_FLOAT bX, FX_FLOAT bY);\r
24     CFX_PtrArray *CenterEdges(CBC_ResultPoint *y, CBC_ResultPoint *z,\r
25                               CBC_ResultPoint *x, CBC_ResultPoint *t);\r
26     FX_BOOL ContainsBlackPoint(FX_INT32 a, FX_INT32 b, FX_INT32 fixed, FX_BOOL horizontal);\r
27     const static FX_INT32 INIT_SIZE;\r
28     const static FX_INT32 CORR;\r
29 \r
30     CBC_CommonBitMatrix *m_image;\r
31     FX_INT32 m_height;\r
32     FX_INT32 m_width;\r
33     FX_INT32 m_leftInit;\r
34     FX_INT32 m_rightInit;\r
35     FX_INT32 m_downInit;\r
36     FX_INT32 m_upInit;\r
37 };\r
38 #endif\r