Index: xfa/src/fxbarcode/datamatrix/BC_DataMatrixDetector.cpp |
diff --git a/xfa/src/fxbarcode/datamatrix/BC_DataMatrixDetector.cpp b/xfa/src/fxbarcode/datamatrix/BC_DataMatrixDetector.cpp |
index 12877c5c3a9805e2c80b2b6ea6af9c30f6000d6d..bdcbc4c4182cdb26b6d3b18f55396c2806d9cb2e 100644 |
--- a/xfa/src/fxbarcode/datamatrix/BC_DataMatrixDetector.cpp |
+++ b/xfa/src/fxbarcode/datamatrix/BC_DataMatrixDetector.cpp |
@@ -28,12 +28,12 @@ |
#include "../qrcode/BC_QRDetectorResult.h" |
#include "../qrcode/BC_QRGridSampler.h" |
#include "BC_DataMatrixDetector.h" |
-const FX_INT32 CBC_DataMatrixDetector::INTEGERS[5] = {0, 1, 2, 3, 4}; |
+const int32_t CBC_DataMatrixDetector::INTEGERS[5] = {0, 1, 2, 3, 4}; |
CBC_DataMatrixDetector::CBC_DataMatrixDetector(CBC_CommonBitMatrix *image): |
m_image(image), m_rectangleDetector(NULL) |
{ |
} |
-void CBC_DataMatrixDetector::Init(FX_INT32 &e) |
+void CBC_DataMatrixDetector::Init(int32_t &e) |
{ |
m_rectangleDetector = FX_NEW CBC_WhiteRectangleDetector(m_image); |
m_rectangleDetector->Init(e); |
@@ -50,7 +50,7 @@ inline FX_BOOL ResultPointsAndTransitionsComparator(FX_LPVOID a, FX_LPVOID b) |
{ |
return ((CBC_ResultPointsAndTransitions *)b)->GetTransitions() > ((CBC_ResultPointsAndTransitions *)a)->GetTransitions(); |
} |
-CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
+CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(int32_t &e) |
{ |
CFX_PtrArray* cornerPoints = m_rectangleDetector->Detect(e); |
BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
@@ -70,7 +70,7 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
delete ( (CBC_ResultPointsAndTransitions *)transitions[3] ); |
CBC_ResultPointsAndTransitions *lSideOne = (CBC_ResultPointsAndTransitions*)transitions[0]; |
CBC_ResultPointsAndTransitions *lSideTwo = (CBC_ResultPointsAndTransitions*)transitions[1]; |
- CFX_MapPtrTemplate<CBC_ResultPoint*, FX_INT32> pointCount; |
+ CFX_MapPtrTemplate<CBC_ResultPoint*, int32_t> pointCount; |
Increment(pointCount, lSideOne->GetFrom()); |
Increment(pointCount, lSideOne->GetTo()); |
Increment(pointCount, lSideTwo->GetFrom()); |
@@ -84,7 +84,7 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
FX_POSITION itBegin = pointCount.GetStartPosition(); |
while(itBegin != NULL) { |
CBC_ResultPoint *key = 0; |
- FX_INT32 value = 0; |
+ int32_t value = 0; |
pointCount.GetNextAssoc(itBegin, key, value); |
if(value == 2) { |
bottomLeft = key; |
@@ -114,7 +114,7 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
bottomLeft = (CBC_ResultPoint*)corners[1]; |
CBC_ResultPoint *topLeft = (CBC_ResultPoint*)corners[2]; |
CBC_ResultPoint *topRight = NULL; |
- FX_INT32 value; |
+ int32_t value; |
if (!pointCount.Lookup(pointA, value)) { |
topRight = pointA; |
} else if (!pointCount.Lookup(pointB, value)) { |
@@ -124,8 +124,8 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
} else { |
topRight = pointD; |
} |
- FX_INT32 dimensionTop = CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, topRight))->GetTransitions(); |
- FX_INT32 dimensionRight = CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, topRight))->GetTransitions(); |
+ int32_t dimensionTop = CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, topRight))->GetTransitions(); |
+ int32_t dimensionRight = CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, topRight))->GetTransitions(); |
if ((dimensionTop & 0x01) == 1) { |
dimensionTop++; |
} |
@@ -158,7 +158,7 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
correctedTopRight.get(), dimensionTop, dimensionRight, e)); |
BC_EXCEPTION_CHECK_ReturnValue(e, NULL); |
} else { |
- FX_INT32 dimension = FX_MIN(dimensionRight, dimensionTop); |
+ int32_t dimension = FX_MIN(dimensionRight, dimensionTop); |
correctedTopRight = CBC_AutoPtr<CBC_ResultPoint>(CorrectTopRight(bottomLeft, bottomRight, |
topLeft, topRight, dimension)); |
if (correctedTopRight.get() == NULL) { |
@@ -167,7 +167,7 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
delete topRight; |
topRight = NULL; |
} |
- FX_INT32 dimensionCorrected = FX_MAX(CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, correctedTopRight.get()))->GetTransitions(), |
+ int32_t dimensionCorrected = FX_MAX(CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, correctedTopRight.get()))->GetTransitions(), |
CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, correctedTopRight.get()))->GetTransitions()); |
dimensionCorrected++; |
if ((dimensionCorrected & 0x01) == 1) { |
@@ -190,10 +190,10 @@ CBC_QRDetectorResult *CBC_DataMatrixDetector::Detect(FX_INT32 &e) |
result->Add(correctedTopRight.release()); |
return FX_NEW CBC_QRDetectorResult(bits.release(), result); |
} |
-CBC_ResultPoint *CBC_DataMatrixDetector::CorrectTopRightRectangular(CBC_ResultPoint *bottomLeft, CBC_ResultPoint *bottomRight, CBC_ResultPoint *topLeft, CBC_ResultPoint *topRight, FX_INT32 dimensionTop, FX_INT32 dimensionRight) |
+CBC_ResultPoint *CBC_DataMatrixDetector::CorrectTopRightRectangular(CBC_ResultPoint *bottomLeft, CBC_ResultPoint *bottomRight, CBC_ResultPoint *topLeft, CBC_ResultPoint *topRight, int32_t dimensionTop, int32_t dimensionRight) |
{ |
FX_FLOAT corr = Distance(bottomLeft, bottomRight) / (FX_FLOAT)dimensionTop; |
- FX_INT32 norm = Distance(topLeft, topRight); |
+ int32_t norm = Distance(topLeft, topRight); |
FX_FLOAT cos = (topRight->GetX() - topLeft->GetX()) / norm; |
FX_FLOAT sin = (topRight->GetY() - topLeft->GetY()) / norm; |
CBC_AutoPtr<CBC_ResultPoint> c1(FX_NEW CBC_ResultPoint(topRight->GetX() + corr * cos, topRight->GetY() + corr * sin)); |
@@ -210,19 +210,19 @@ CBC_ResultPoint *CBC_DataMatrixDetector::CorrectTopRightRectangular(CBC_ResultPo |
} else if (!IsValid(c2.get())) { |
return c1.release(); |
} |
- FX_INT32 l1 = FXSYS_abs(dimensionTop - CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c1.get()))->GetTransitions()) + |
+ int32_t l1 = FXSYS_abs(dimensionTop - CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c1.get()))->GetTransitions()) + |
FXSYS_abs(dimensionRight - CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, c1.get()))->GetTransitions()); |
- FX_INT32 l2 = FXSYS_abs(dimensionTop - CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c2.get()))->GetTransitions()) + |
+ int32_t l2 = FXSYS_abs(dimensionTop - CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c2.get()))->GetTransitions()) + |
FXSYS_abs(dimensionRight - CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, c2.get()))->GetTransitions()); |
if (l1 <= l2) { |
return c1.release(); |
} |
return c2.release(); |
} |
-CBC_ResultPoint *CBC_DataMatrixDetector::CorrectTopRight(CBC_ResultPoint *bottomLeft, CBC_ResultPoint *bottomRight, CBC_ResultPoint *topLeft, CBC_ResultPoint *topRight, FX_INT32 dimension) |
+CBC_ResultPoint *CBC_DataMatrixDetector::CorrectTopRight(CBC_ResultPoint *bottomLeft, CBC_ResultPoint *bottomRight, CBC_ResultPoint *topLeft, CBC_ResultPoint *topRight, int32_t dimension) |
{ |
FX_FLOAT corr = Distance(bottomLeft, bottomRight) / (FX_FLOAT) dimension; |
- FX_INT32 norm = Distance(topLeft, topRight); |
+ int32_t norm = Distance(topLeft, topRight); |
FX_FLOAT cos = (topRight->GetX() - topLeft->GetX()) / norm; |
FX_FLOAT sin = (topRight->GetY() - topLeft->GetY()) / norm; |
CBC_AutoPtr<CBC_ResultPoint> c1(FX_NEW CBC_ResultPoint(topRight->GetX() + corr * cos, topRight->GetY() + corr * sin)); |
@@ -239,9 +239,9 @@ CBC_ResultPoint *CBC_DataMatrixDetector::CorrectTopRight(CBC_ResultPoint *bottom |
} else if (!IsValid(c2.get())) { |
return c1.release(); |
} |
- FX_INT32 l1 = FXSYS_abs(CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c1.get()))->GetTransitions() - |
+ int32_t l1 = FXSYS_abs(CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c1.get()))->GetTransitions() - |
CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, c1.get()))->GetTransitions()); |
- FX_INT32 l2 = FXSYS_abs(CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c2.get()))->GetTransitions() - |
+ int32_t l2 = FXSYS_abs(CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(topLeft, c2.get()))->GetTransitions() - |
CBC_AutoPtr<CBC_ResultPointsAndTransitions>(TransitionsBetween(bottomRight, c2.get()))->GetTransitions()); |
return l1 <= l2 ? c1.release() : c2.release(); |
} |
@@ -249,19 +249,19 @@ FX_BOOL CBC_DataMatrixDetector::IsValid(CBC_ResultPoint *p) |
{ |
return p->GetX() >= 0 && p->GetX() < m_image->GetWidth() && p->GetY() > 0 && p->GetY() < m_image->GetHeight(); |
} |
-FX_INT32 CBC_DataMatrixDetector::Round(FX_FLOAT d) |
+int32_t CBC_DataMatrixDetector::Round(FX_FLOAT d) |
{ |
- return (FX_INT32) (d + 0.5f); |
+ return (int32_t) (d + 0.5f); |
} |
-FX_INT32 CBC_DataMatrixDetector::Distance(CBC_ResultPoint *a, CBC_ResultPoint *b) |
+int32_t CBC_DataMatrixDetector::Distance(CBC_ResultPoint *a, CBC_ResultPoint *b) |
{ |
return Round((FX_FLOAT) sqrt((a->GetX() - b->GetX()) |
* (a->GetX() - b->GetX()) + (a->GetY() - b->GetY()) |
* (a->GetY() - b->GetY()))); |
} |
-void CBC_DataMatrixDetector::Increment(CFX_MapPtrTemplate<CBC_ResultPoint*, FX_INT32> &table, CBC_ResultPoint *key) |
+void CBC_DataMatrixDetector::Increment(CFX_MapPtrTemplate<CBC_ResultPoint*, int32_t> &table, CBC_ResultPoint *key) |
{ |
- FX_INT32 value; |
+ int32_t value; |
if(table.Lookup(key, value)) { |
table.SetAt(key, INTEGERS[value + 1]); |
} else { |
@@ -273,7 +273,7 @@ CBC_CommonBitMatrix *CBC_DataMatrixDetector::SampleGrid(CBC_CommonBitMatrix *ima |
CBC_ResultPoint *bottomLeft, |
CBC_ResultPoint *bottomRight, |
CBC_ResultPoint *topRight, |
- FX_INT32 dimensionX, FX_INT32 dimensionY, FX_INT32 &e) |
+ int32_t dimensionX, int32_t dimensionY, int32_t &e) |
{ |
CBC_QRGridSampler &sampler = CBC_QRGridSampler::GetInstance(); |
CBC_CommonBitMatrix* cbm = sampler.SampleGrid(image, |
@@ -300,27 +300,27 @@ CBC_CommonBitMatrix *CBC_DataMatrixDetector::SampleGrid(CBC_CommonBitMatrix *ima |
} |
CBC_ResultPointsAndTransitions *CBC_DataMatrixDetector::TransitionsBetween(CBC_ResultPoint *from, CBC_ResultPoint *to) |
{ |
- FX_INT32 fromX = (FX_INT32) from->GetX(); |
- FX_INT32 fromY = (FX_INT32) from->GetY(); |
- FX_INT32 toX = (FX_INT32) to->GetX(); |
- FX_INT32 toY = (FX_INT32) to->GetY(); |
+ int32_t fromX = (int32_t) from->GetX(); |
+ int32_t fromY = (int32_t) from->GetY(); |
+ int32_t toX = (int32_t) to->GetX(); |
+ int32_t toY = (int32_t) to->GetY(); |
FX_BOOL steep = FXSYS_abs(toY - fromY) > FXSYS_abs(toX - fromX); |
if (steep) { |
- FX_INT32 temp = fromX; |
+ int32_t temp = fromX; |
fromX = fromY; |
fromY = temp; |
temp = toX; |
toX = toY; |
toY = temp; |
} |
- FX_INT32 dx = FXSYS_abs(toX - fromX); |
- FX_INT32 dy = FXSYS_abs(toY - fromY); |
- FX_INT32 error = -dx >> 1; |
- FX_INT32 ystep = fromY < toY ? 1 : -1; |
- FX_INT32 xstep = fromX < toX ? 1 : -1; |
- FX_INT32 transitions = 0; |
+ int32_t dx = FXSYS_abs(toX - fromX); |
+ int32_t dy = FXSYS_abs(toY - fromY); |
+ int32_t error = -dx >> 1; |
+ int32_t ystep = fromY < toY ? 1 : -1; |
+ int32_t xstep = fromX < toX ? 1 : -1; |
+ int32_t transitions = 0; |
FX_BOOL inBlack = m_image->Get(steep ? fromY : fromX, steep ? fromX : fromY); |
- for (FX_INT32 x = fromX, y = fromY; x != toX; x += xstep) { |
+ for (int32_t x = fromX, y = fromY; x != toX; x += xstep) { |
FX_BOOL isBlack = m_image->Get(steep ? y : x, steep ? x : y); |
if (isBlack != inBlack) { |
transitions++; |