Index: xfa/fxbarcode/common/BC_WhiteRectangleDetector.cpp |
diff --git a/xfa/fxbarcode/common/BC_WhiteRectangleDetector.cpp b/xfa/fxbarcode/common/BC_WhiteRectangleDetector.cpp |
index 2aeacd139910576fc634163da3674c1e44576a7f..f64abb61c08363fec35eb3d8bc8e15dfabcd0523 100644 |
--- a/xfa/fxbarcode/common/BC_WhiteRectangleDetector.cpp |
+++ b/xfa/fxbarcode/common/BC_WhiteRectangleDetector.cpp |
@@ -59,8 +59,11 @@ CBC_WhiteRectangleDetector::CBC_WhiteRectangleDetector( |
m_upInit = y - halfsize; |
m_downInit = y + halfsize; |
} |
+ |
CBC_WhiteRectangleDetector::~CBC_WhiteRectangleDetector() {} |
-CFX_PtrArray* CBC_WhiteRectangleDetector::Detect(int32_t& e) { |
+ |
+CFX_ArrayTemplate<CBC_ResultPoint*>* CBC_WhiteRectangleDetector::Detect( |
+ int32_t& e) { |
int32_t left = m_leftInit; |
int32_t right = m_rightInit; |
int32_t up = m_upInit; |
@@ -131,9 +134,9 @@ CFX_PtrArray* CBC_WhiteRectangleDetector::Detect(int32_t& e) { |
if (z) |
break; |
} |
- if (z.get() == NULL) { |
+ if (!z.get()) { |
e = BCExceptionNotFound; |
- BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
+ BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); |
} |
std::unique_ptr<CBC_ResultPoint> t; |
for (int32_t j = 1; j < maxSize; j++) { |
@@ -142,9 +145,9 @@ CFX_PtrArray* CBC_WhiteRectangleDetector::Detect(int32_t& e) { |
if (t) |
break; |
} |
- if (t.get() == NULL) { |
+ if (!t.get()) { |
e = BCExceptionNotFound; |
- BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
+ BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); |
} |
std::unique_ptr<CBC_ResultPoint> x; |
for (int32_t k = 1; k < maxSize; k++) { |
@@ -153,9 +156,9 @@ CFX_PtrArray* CBC_WhiteRectangleDetector::Detect(int32_t& e) { |
if (x) |
break; |
} |
- if (x.get() == NULL) { |
+ if (!x.get()) { |
e = BCExceptionNotFound; |
- BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
+ BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); |
} |
std::unique_ptr<CBC_ResultPoint> y; |
for (int32_t m = 1; m < maxSize; m++) { |
@@ -164,17 +167,18 @@ CFX_PtrArray* CBC_WhiteRectangleDetector::Detect(int32_t& e) { |
if (y) |
break; |
} |
- if (y.get() == NULL) { |
+ if (!y.get()) { |
e = BCExceptionNotFound; |
- BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
+ BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); |
} |
return CenterEdges(y.get(), z.get(), x.get(), t.get()); |
- } else { |
- e = BCExceptionNotFound; |
- BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
} |
- return NULL; |
+ |
+ e = BCExceptionNotFound; |
+ BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); |
+ return nullptr; |
} |
+ |
int32_t CBC_WhiteRectangleDetector::Round(FX_FLOAT d) { |
return (int32_t)(d + 0.5f); |
} |
@@ -203,10 +207,16 @@ int32_t CBC_WhiteRectangleDetector::DistanceL2(FX_FLOAT aX, |
float yDiff = aY - bY; |
return Round((float)sqrt(xDiff * xDiff + yDiff * yDiff)); |
} |
-CFX_PtrArray* CBC_WhiteRectangleDetector::CenterEdges(CBC_ResultPoint* y, |
- CBC_ResultPoint* z, |
- CBC_ResultPoint* x, |
- CBC_ResultPoint* t) { |
+ |
+CFX_ArrayTemplate<CBC_ResultPoint*>* CBC_WhiteRectangleDetector::CenterEdges( |
+ CBC_ResultPoint* y, |
+ CBC_ResultPoint* z, |
+ CBC_ResultPoint* x, |
+ CBC_ResultPoint* t) const { |
+ CFX_ArrayTemplate<CBC_ResultPoint*>* result = |
+ new CFX_ArrayTemplate<CBC_ResultPoint*>(); |
+ result->SetSize(4); |
+ |
float yi = y->GetX(); |
float yj = y->GetY(); |
float zi = z->GetX(); |
@@ -215,24 +225,22 @@ CFX_PtrArray* CBC_WhiteRectangleDetector::CenterEdges(CBC_ResultPoint* y, |
float xj = x->GetY(); |
float ti = t->GetX(); |
float tj = t->GetY(); |
+ |
if (yi < m_width / 2) { |
- CFX_PtrArray* result = new CFX_PtrArray; |
- result->SetSize(4); |
(*result)[0] = new CBC_ResultPoint(ti - CORR, tj + CORR); |
(*result)[1] = new CBC_ResultPoint(zi + CORR, zj + CORR); |
(*result)[2] = new CBC_ResultPoint(xi - CORR, xj - CORR); |
(*result)[3] = new CBC_ResultPoint(yi + CORR, yj - CORR); |
return result; |
- } else { |
- CFX_PtrArray* result = new CFX_PtrArray; |
- result->SetSize(4); |
- (*result)[0] = new CBC_ResultPoint(ti + CORR, tj + CORR); |
- (*result)[1] = new CBC_ResultPoint(zi + CORR, zj - CORR); |
- (*result)[2] = new CBC_ResultPoint(xi - CORR, xj + CORR); |
- (*result)[3] = new CBC_ResultPoint(yi - CORR, yj - CORR); |
- return result; |
} |
+ |
+ (*result)[0] = new CBC_ResultPoint(ti + CORR, tj + CORR); |
+ (*result)[1] = new CBC_ResultPoint(zi + CORR, zj - CORR); |
+ (*result)[2] = new CBC_ResultPoint(xi - CORR, xj + CORR); |
+ (*result)[3] = new CBC_ResultPoint(yi - CORR, yj - CORR); |
+ return result; |
} |
+ |
FX_BOOL CBC_WhiteRectangleDetector::ContainsBlackPoint(int32_t a, |
int32_t b, |
int32_t fixed, |