package com.google.android.m4b.maps.ay;

final class b
{
  private final m a;
  private final m b;
  private final m c;
  private final m d;

  public b(g paramg)
  {
    this.a = paramg.b();
    this.b = paramg.b();
    this.c = paramg.b();
    this.d = paramg.b();
  }

  public b(m paramm)
  {
    this.a = paramm.c();
    this.b = paramm.c();
    this.c = paramm.c();
    this.d = paramm.c();
  }

  private b(m paramm1, m paramm2, m paramm3, m paramm4)
  {
    this.a = paramm1;
    this.b = paramm2;
    this.c = paramm3;
    this.d = paramm4;
  }

  private double a(int paramInt, double paramDouble)
  {
    double d1 = this.a.g(paramInt);
    double d2 = this.a.h(paramInt);
    if (d1 == paramDouble);
    double d4;
    double d5;
    do
    {
      return d2;
      double d3 = this.b.g(paramInt);
      d4 = this.b.h(paramInt);
      if (d3 == paramDouble)
        return d4;
      d5 = d3 - d1;
      if (d5 != 0.0D)
        break;
    }
    while (d2 > d4);
    return d4;
    return d2 + (d4 - d2) * (paramDouble - d1) / d5;
  }

  private void a(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5)
  {
    this.a.e(paramInt1, paramInt2);
    this.b.e(paramInt1, paramInt3);
    this.c.e(paramInt1, paramInt4);
    this.d.e(paramInt1, -1);
  }

  private static int c(int paramInt1, int paramInt2, int paramInt3)
  {
    if (paramInt1 <= paramInt2)
      return paramInt1;
    return paramInt1 - paramInt3;
  }

  private void c(int paramInt)
  {
    this.a.a(paramInt);
    this.b.a(paramInt);
    this.c.a(paramInt);
    this.d.a(paramInt);
  }

  private int d(int paramInt)
  {
    double d1 = this.a.b(paramInt);
    double d2 = this.a.c(paramInt);
    for (int i = 0; (a(i, d1) < d2) && (i < this.a.c); i++);
    int j = 0;
    if (i > 0)
      j = i - 1;
    return j;
  }

  private int d(int paramInt1, int paramInt2, int paramInt3)
  {
    double d1 = this.a.b(paramInt3);
    double d2 = this.a.c(paramInt3);
    for (int i = 0; ; i++)
    {
      int j = this.a.c;
      if (i >= j)
        break;
      double d3 = a(i, d1);
      if (d3 > d2);
      double d4;
      double d5;
      double d6;
      double d7;
      double d8;
      double d9;
      do
      {
        return i;
        if (d3 != d2)
          break;
        d4 = this.b.g(i);
        d5 = this.b.h(i);
        d6 = this.a.b(paramInt1);
        d7 = this.a.c(paramInt1);
        d8 = this.a.b(paramInt2);
        d9 = this.a.c(paramInt2);
      }
      while ((l.a(d6, d7, d8, d9, d4, d5) > 0.0D) || ((l.a(d4, d5, d8, d9) == 0) && (i % 2 == 0)));
    }
    return this.a.c;
  }

  private int e(int paramInt1, int paramInt2, int paramInt3)
  {
    return h(g(paramInt1, paramInt2), paramInt3);
  }

  private boolean e(int paramInt1, int paramInt2)
  {
    if ((paramInt1 >= 0) && (paramInt1 < this.a.c) && (paramInt2 >= 0) && (paramInt2 < this.a.c))
    {
      double d1 = this.a.g(paramInt1);
      double d2 = this.a.h(paramInt1);
      double d3 = this.b.g(paramInt1);
      double d4 = this.b.h(paramInt1);
      double d5 = this.a.g(paramInt2);
      double d6 = this.a.h(paramInt2);
      double d7 = this.b.g(paramInt2);
      double d8 = this.b.h(paramInt2);
      if (((d1 == d7) && (d2 == d8)) || ((d5 == d3) && (d6 == d4)))
        return false;
      if (((d1 == d5) && (d2 == d6)) || ((d3 == d7) && (d4 == d8)))
      {
        if ((d1 == d5) && (d2 == d6) && (d3 == d7) && (d4 == d8))
        {
          int i = this.a.j(paramInt1);
          int j = this.a.j(paramInt2);
          int k = this.b.j(paramInt1);
          int m = this.b.j(paramInt2);
          int n;
          if (this.a.d(i) == k)
          {
            n = 1;
            if (this.a.d(j) != m)
              break label293;
          }
          label293: for (int i1 = 1; ; i1 = 0)
          {
            if (n != i1)
              break label299;
            return true;
            n = 0;
            break;
          }
          label299: return false;
        }
        return false;
      }
      if (l.a(d1, d2, d3, d4, d5, d6) * l.a(d1, d2, d3, d4, d7, d8) > 0.0D)
        return false;
      return l.a(d5, d6, d7, d8, d1, d2) * l.a(d5, d6, d7, d8, d3, d4) <= 0.0D;
    }
    return false;
  }

  private int f(int paramInt1, int paramInt2)
  {
    this.c.f(paramInt1, paramInt2);
    int i = this.d.j(paramInt1);
    if (i != -1)
      this.d.f(paramInt1, -1);
    return i;
  }

  private int g(int paramInt1, int paramInt2)
  {
    for (int i = this.b.h(paramInt2, 0); (i != -1) && (!i(i, paramInt1)); i = this.b.h(paramInt2, i + 1));
    if (i == -1)
      throw new NullPointerException("Could not find egde in EdgeList.");
    return i;
  }

  private int h(int paramInt1, int paramInt2)
  {
    int i = this.c.j(paramInt1);
    double d1 = this.a.b(i);
    double d2 = this.a.c(i);
    double d3 = this.a.g(paramInt1);
    double d4 = this.a.h(paramInt1);
    if ((l.a(d3, d4, this.b.g(paramInt1), this.b.h(paramInt1), d1, d2) <= 0.0D) && (l.a(d1, d2, d3, d4, this.a.b(paramInt2), this.a.c(paramInt2)) <= 0.0D))
      return this.a.j(paramInt1);
    return i;
  }

  private boolean i(int paramInt1, int paramInt2)
  {
    return this.a.i(paramInt2, paramInt1);
  }

  public final int a(int paramInt)
  {
    return h(d(paramInt), paramInt);
  }

  public final int a(int paramInt1, int paramInt2, a.b paramb)
  {
    if (this.a.g(paramInt1, paramInt2) < 0)
    {
      int i = d(paramInt1, paramInt2, paramInt1);
      switch (1.a[paramb.ordinal()])
      {
      default:
        throw new e.a("Impossible EdgeList start case.");
      case 1:
      }
      a(i, paramInt1, paramInt2, e(this.a.d(paramInt1), paramInt1, paramInt1), -1);
      return -1;
    }
    a(d(paramInt2, paramInt1, paramInt2), paramInt2, paramInt1, -1, -1);
    return f(d(paramInt2), paramInt2);
  }

  public final b a(j paramj, int paramInt1, int paramInt2)
  {
    m localm1 = paramj.c();
    m localm2 = paramj.c();
    m localm3 = paramj.c();
    m localm4 = paramj.c();
    if (paramInt1 > paramInt2)
    {
      int i1 = -1 + (paramInt1 - paramInt2);
      int i2 = 0;
      if (i2 < this.a.c)
      {
        int i3 = this.a.j(i2);
        int i6;
        if ((i3 <= paramInt2) || (i3 >= paramInt1))
        {
          int i4 = this.b.j(i2);
          if ((i4 <= paramInt2) || (i4 >= paramInt1))
          {
            int i5 = this.c.j(i2);
            i6 = this.d.j(i2);
            int[] arrayOfInt6 = new int[1];
            arrayOfInt6[0] = c(i3, paramInt2, i1);
            localm1.b(arrayOfInt6);
            int[] arrayOfInt7 = new int[1];
            arrayOfInt7[0] = c(i4, paramInt2, i1);
            localm2.b(arrayOfInt7);
            if ((i5 > paramInt2) && (i5 < paramInt1))
              break label245;
            int[] arrayOfInt8 = new int[1];
            arrayOfInt8[0] = c(i5, paramInt2, i1);
            localm3.b(arrayOfInt8);
          }
        }
        while (true)
        {
          if ((i6 > paramInt2) && (i6 < paramInt1))
            break label272;
          int[] arrayOfInt9 = new int[1];
          arrayOfInt9[0] = c(i6, paramInt2, i1);
          localm4.b(arrayOfInt9);
          i2++;
          break;
          label245: int[] arrayOfInt10 = new int[1];
          arrayOfInt10[0] = c(i3, paramInt2, i1);
          localm3.b(arrayOfInt10);
        }
        label272: throw new e.a("When cutting edge list, we lost a merge vertex.");
      }
    }
    else
    {
      int i = 0;
      if (i < this.a.c)
      {
        int j = this.a.j(i);
        int m;
        int n;
        if ((j >= paramInt1) && (j <= paramInt2))
        {
          int k = this.b.j(i);
          if ((k >= paramInt1) && (k <= paramInt2))
          {
            m = this.c.j(i);
            n = this.d.j(i);
            int[] arrayOfInt1 = new int[1];
            arrayOfInt1[0] = (j - paramInt1);
            localm1.b(arrayOfInt1);
            int[] arrayOfInt2 = new int[1];
            arrayOfInt2[0] = (k - paramInt1);
            localm2.b(arrayOfInt2);
            if (m != -1)
              break label449;
            localm3.b(new int[] { m });
            label424: if (n != -1)
              break label507;
            localm4.b(new int[] { n });
          }
        }
        while (true)
        {
          i++;
          break;
          label449: if ((m >= paramInt1) && (m <= paramInt2))
          {
            int[] arrayOfInt5 = new int[1];
            arrayOfInt5[0] = (m - paramInt1);
            localm3.b(arrayOfInt5);
            break label424;
          }
          int[] arrayOfInt3 = new int[1];
          arrayOfInt3[0] = (j - paramInt1);
          localm3.b(arrayOfInt3);
          break label424;
          label507: if ((n < paramInt1) || (n > paramInt2))
            break label542;
          int[] arrayOfInt4 = new int[1];
          arrayOfInt4[0] = (n - paramInt1);
          localm4.b(arrayOfInt4);
        }
        label542: throw new e.a("When cutting edge list, we lost a merge vertex.");
      }
    }
    return new b(localm1, localm2, localm3, localm4);
  }

  public final void a(int paramInt1, int paramInt2, int paramInt3)
  {
    int i = this.a.c;
    int j = 0;
    if (i != 0)
      j = d(paramInt2, paramInt3, paramInt2);
    a(j, paramInt2, paramInt3, paramInt2, -1);
    a(j + 1, paramInt2, paramInt1, -1, -1);
  }

  public final boolean a(int paramInt1, int paramInt2)
  {
    int i;
    if (this.a.g(paramInt2, paramInt1) < 0)
      i = paramInt1;
    for (int j = paramInt2; ; j = paramInt1)
    {
      int k = d(j, i, j);
      a(k, j, i, -1, -1);
      return (e(k - 1, k)) || (e(k, k + 1));
      i = paramInt2;
    }
  }

  public final int b(int paramInt)
  {
    int i = d(paramInt);
    if (this.d.i(i));
    for (int j = h(i, paramInt); ; j = this.d.j(i))
    {
      this.d.f(i, -1);
      return j;
    }
  }

  public final int b(int paramInt1, int paramInt2, a.b paramb)
  {
    int i = -1;
    int m;
    if (this.a.g(paramInt1, paramInt2) < 0)
    {
      m = g(paramInt1, paramInt2);
      if (!this.d.i(m))
        i = this.d.j(m);
      switch (1.a[paramb.ordinal()])
      {
      default:
      case 2:
      }
    }
    while (true)
    {
      c(m);
      return i;
      int i1 = d(paramInt2);
      if (!this.d.i(i1))
        i = this.d.j(i1);
      this.c.f(i1, paramInt2);
      this.d.f(i1, paramInt2);
      continue;
      int j = g(paramInt2, paramInt1);
      int k = d(paramInt1);
      if (!this.d.i(k))
      {
        int n = this.d.j(k);
        this.d.f(k, i);
        i = n;
      }
      this.c.f(k, paramInt1);
      m = j;
    }
  }

  public final void b(int paramInt1, int paramInt2, int paramInt3)
  {
    int i = d(paramInt2, paramInt3, paramInt2);
    int j = e(this.a.j(i - 1), this.b.j(i - 1), paramInt2);
    f(d(paramInt2), paramInt2);
    a(i, paramInt2, paramInt3, j, -1);
    a(i, paramInt2, paramInt1, -1, -1);
  }

  public final boolean b(int paramInt1, int paramInt2)
  {
    if (this.a.g(paramInt1, paramInt2) < 0);
    for (int i = g(paramInt1, paramInt2); ; i = g(paramInt2, paramInt1))
    {
      c(i);
      if ((!e(i - 1, i)) && (!e(i, i + 1)))
        break;
      return true;
    }
    return false;
  }

  public final boolean c(int paramInt1, int paramInt2)
  {
    for (int i = this.b.h(paramInt2, 0); (i != -1) && (!i(i, paramInt1)); i = this.b.h(paramInt2, i + 1));
    boolean bool = false;
    if (i != -1)
      bool = true;
    return bool;
  }

  public final void d(int paramInt1, int paramInt2)
  {
    a(d(paramInt1, paramInt2, paramInt2), paramInt1, paramInt2, paramInt1, -1);
  }

  public final String toString()
  {
    StringBuilder localStringBuilder = new StringBuilder();
    localStringBuilder.append("{start:  ");
    localStringBuilder.append(this.a.m(3));
    localStringBuilder.append("\n end:    ");
    localStringBuilder.append(this.b.m(3));
    localStringBuilder.append("\n helper: ");
    localStringBuilder.append(this.c.m(3));
    localStringBuilder.append("\n merge:  ");
    localStringBuilder.append(this.d.m(3));
    localStringBuilder.append("}");
    return localStringBuilder.toString();
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.android.m4b.maps.ay.b
 * JD-Core Version:    0.6.2
 */