Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxbarcode / src / BC_QRFinderPattern.cpp
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 #include "barcode.h"\r
8 #include "include/BC_ResultPoint.h"\r
9 #include "include/BC_QRFinderPattern.h"\r
10 CBC_QRFinderPattern::CBC_QRFinderPattern(FX_FLOAT x, FX_FLOAT posY, FX_FLOAT estimatedModuleSize):\r
11     CBC_ResultPoint(x, posY),\r
12     m_estimatedModuleSize(estimatedModuleSize), m_count(1)\r
13 {\r
14 }\r
15 CBC_QRFinderPattern::~CBC_QRFinderPattern()\r
16 {\r
17     m_count = 0;\r
18     m_x = 0.0f;\r
19     m_y = 0.0f;\r
20     m_estimatedModuleSize = 0.0f;\r
21 }\r
22 CBC_QRFinderPattern *CBC_QRFinderPattern::Clone()\r
23 {\r
24     CBC_QRFinderPattern *temp = FX_NEW CBC_QRFinderPattern(m_x, m_y, m_estimatedModuleSize);\r
25     temp->m_count = m_count;\r
26     return temp;\r
27 }\r
28 FX_FLOAT CBC_QRFinderPattern::GetEstimatedModuleSize()\r
29 {\r
30     return m_estimatedModuleSize;\r
31 }\r
32 FX_INT32 CBC_QRFinderPattern::GetCount()\r
33 {\r
34     return m_count;\r
35 }\r
36 void CBC_QRFinderPattern::IncrementCount()\r
37 {\r
38     m_count++;\r
39 }\r
40 FX_BOOL CBC_QRFinderPattern::AboutEquals(FX_FLOAT moduleSize, FX_FLOAT i, FX_FLOAT j)\r
41 {\r
42     if((fabs(i - GetY()) <= moduleSize) && (fabs(j - GetX()) <= moduleSize)) {\r
43         FX_FLOAT moduleSizeDiff = fabs(moduleSize - m_estimatedModuleSize);\r
44         return (moduleSizeDiff <= 1.0f) || (moduleSizeDiff / m_estimatedModuleSize <= 1.0f);\r
45     }\r
46     return false;\r
47 }\r
48 FX_FLOAT CBC_QRFinderPattern::GetX()\r
49 {\r
50     return m_x;\r
51 }\r
52 FX_FLOAT CBC_QRFinderPattern::GetY()\r
53 {\r
54     return m_y;\r
55 }\r