protected final AlignmentPattern a(float paramFloat1, int paramInt1, int paramInt2, float paramFloat2) { int i = (int)(paramFloat2 * paramFloat1); int j = Math.max(0, paramInt1 - i); int k = Math.min(-1 + this.a.c(), paramInt1 + i); if (k - j < paramFloat1 * 3.0F) throw NotFoundException.a(); int m = Math.max(0, paramInt2 - i); int n = Math.min(-1 + this.a.d(), i + paramInt2); if (n - m < paramFloat1 * 3.0F) throw NotFoundException.a(); return new AlignmentPatternFinder(this.a, j, m, k - j, n - m, paramFloat1, this.b).a(); }
protected final DetectorResult a(FinderPatternInfo paramFinderPatternInfo) { FinderPattern localFinderPattern1 = paramFinderPatternInfo.b(); FinderPattern localFinderPattern2 = paramFinderPatternInfo.c(); FinderPattern localFinderPattern3 = paramFinderPatternInfo.a(); float f1 = a(localFinderPattern1, localFinderPattern2, localFinderPattern3); if (f1 < 1.0F) throw NotFoundException.a(); int i = a(localFinderPattern1, localFinderPattern2, localFinderPattern3, f1); Version localVersion = Version.a(i); int j = -7 + localVersion.d(); int k = localVersion.b().length; Object localObject = null; int m; int n; int i1; float f5; if (k > 0) { float f2 = localFinderPattern2.a() - localFinderPattern1.a() + localFinderPattern3.a(); float f3 = localFinderPattern2.b() - localFinderPattern1.b() + localFinderPattern3.b(); float f4 = 1.0F - 3.0F / j; m = (int)(localFinderPattern1.a() + f4 * (f2 - localFinderPattern1.a())); n = (int)(localFinderPattern1.b() + f4 * (f3 - localFinderPattern1.b())); i1 = 4; localObject = null; if (i1 <= 16) f5 = i1; } while (true) { try { AlignmentPattern localAlignmentPattern = a(f1, m, n, f5); localObject = localAlignmentPattern; PerspectiveTransform localPerspectiveTransform = a(localFinderPattern1, localFinderPattern2, localFinderPattern3, localObject, i); BitMatrix localBitMatrix = a(this.a, localPerspectiveTransform, i); if (localObject != null) break label270; arrayOfResultPoint = new ResultPoint[] { localFinderPattern3, localFinderPattern1, localFinderPattern2 }; return new DetectorResult(localBitMatrix, arrayOfResultPoint); } catch (NotFoundException localNotFoundException) { i1 <<= 1; } break; label270: ResultPoint[] arrayOfResultPoint = { localFinderPattern3, localFinderPattern1, localFinderPattern2, localObject }; } }
private static int a(ResultPoint paramResultPoint1, ResultPoint paramResultPoint2, ResultPoint paramResultPoint3, float paramFloat) { int i = 7 + (MathUtils.a(ResultPoint.a(paramResultPoint1, paramResultPoint2) / paramFloat) + MathUtils.a(ResultPoint.a(paramResultPoint1, paramResultPoint3) / paramFloat) >> 1); switch (i & 0x3) { case 1: default: case 0: case 2: while (true) { return i; i++; continue; i--; } case 3: } throw NotFoundException.a(); }