コード例 #1
0
 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 };
   }
 }