public class android.transition.ArcMotion extends android.transition.PathMotion
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.transition.ArcMotion
  super_class: android.transition.PathMotion
{
  private static final float DEFAULT_MIN_ANGLE_DEGREES;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.0

  private static final float DEFAULT_MAX_ANGLE_DEGREES;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 70.0

  private static final float DEFAULT_MAX_TANGENT;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private float mMinimumHorizontalAngle;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mMinimumVerticalAngle;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mMaximumAngle;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mMinimumHorizontalTangent;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mMinimumVerticalTangent;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mMaximumTangent;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 52
            ldc 35.0
            invokestatic java.lang.Math.toRadians:(D)D
            invokestatic java.lang.Math.tan:(D)D
            d2f
         1: .line 51
            putstatic android.transition.ArcMotion.DEFAULT_MAX_TANGENT:F
         2: .line 52
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.transition.ArcMotion this
         0: .line 61
            aload 0 /* this */
            invokespecial android.transition.PathMotion.<init>:()V
         1: .line 54
            aload 0 /* this */
            fconst_0
            putfield android.transition.ArcMotion.mMinimumHorizontalAngle:F
         2: .line 55
            aload 0 /* this */
            fconst_0
            putfield android.transition.ArcMotion.mMinimumVerticalAngle:F
         3: .line 56
            aload 0 /* this */
            ldc 70.0
            putfield android.transition.ArcMotion.mMaximumAngle:F
         4: .line 57
            aload 0 /* this */
            fconst_0
            putfield android.transition.ArcMotion.mMinimumHorizontalTangent:F
         5: .line 58
            aload 0 /* this */
            fconst_0
            putfield android.transition.ArcMotion.mMinimumVerticalTangent:F
         6: .line 59
            aload 0 /* this */
            getstatic android.transition.ArcMotion.DEFAULT_MAX_TANGENT:F
            putfield android.transition.ArcMotion.mMaximumTangent:F
         7: .line 61
            return
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/transition/ArcMotion;

  public void <init>(android.content.Context, android.util.AttributeSet);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.transition.ArcMotion this
         0: .line 23
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import com.android.internal.R cannot be resolved\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/transition/ArcMotion;
    MethodParameters:
         Name  Flags
      context  
      attrs    

  public void setMinimumHorizontalAngle(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.transition.ArcMotion this
        start local 1 // float angleInDegrees
         0: .line 91
            aload 0 /* this */
            fload 1 /* angleInDegrees */
            putfield android.transition.ArcMotion.mMinimumHorizontalAngle:F
         1: .line 92
            aload 0 /* this */
            fload 1 /* angleInDegrees */
            invokestatic android.transition.ArcMotion.toTangent:(F)F
            putfield android.transition.ArcMotion.mMinimumHorizontalTangent:F
         2: .line 93
            return
        end local 1 // float angleInDegrees
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/transition/ArcMotion;
            0    3     1  angleInDegrees  F
    MethodParameters:
                Name  Flags
      angleInDegrees  

  public float getMinimumHorizontalAngle();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.transition.ArcMotion this
         0: .line 107
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumHorizontalAngle:F
            freturn
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/transition/ArcMotion;

  public void setMinimumVerticalAngle(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.transition.ArcMotion this
        start local 1 // float angleInDegrees
         0: .line 123
            aload 0 /* this */
            fload 1 /* angleInDegrees */
            putfield android.transition.ArcMotion.mMinimumVerticalAngle:F
         1: .line 124
            aload 0 /* this */
            fload 1 /* angleInDegrees */
            invokestatic android.transition.ArcMotion.toTangent:(F)F
            putfield android.transition.ArcMotion.mMinimumVerticalTangent:F
         2: .line 125
            return
        end local 1 // float angleInDegrees
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/transition/ArcMotion;
            0    3     1  angleInDegrees  F
    MethodParameters:
                Name  Flags
      angleInDegrees  

  public float getMinimumVerticalAngle();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.transition.ArcMotion this
         0: .line 140
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumVerticalAngle:F
            freturn
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/transition/ArcMotion;

  public void setMaximumAngle(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.transition.ArcMotion this
        start local 1 // float angleInDegrees
         0: .line 154
            aload 0 /* this */
            fload 1 /* angleInDegrees */
            putfield android.transition.ArcMotion.mMaximumAngle:F
         1: .line 155
            aload 0 /* this */
            fload 1 /* angleInDegrees */
            invokestatic android.transition.ArcMotion.toTangent:(F)F
            putfield android.transition.ArcMotion.mMaximumTangent:F
         2: .line 156
            return
        end local 1 // float angleInDegrees
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/transition/ArcMotion;
            0    3     1  angleInDegrees  F
    MethodParameters:
                Name  Flags
      angleInDegrees  

  public float getMaximumAngle();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.transition.ArcMotion this
         0: .line 169
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMaximumAngle:F
            freturn
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/transition/ArcMotion;

  private static float toTangent(float);
    descriptor: (F)F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // float arcInDegrees
         0: .line 173
            fload 0 /* arcInDegrees */
            fconst_0
            fcmpg
            iflt 1
            fload 0 /* arcInDegrees */
            ldc 90.0
            fcmpl
            ifle 2
         1: .line 174
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Arc must be between 0 and 90 degrees"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 176
      StackMap locals:
      StackMap stack:
            fload 0 /* arcInDegrees */
            fconst_2
            fdiv
            f2d
            invokestatic java.lang.Math.toRadians:(D)D
            invokestatic java.lang.Math.tan:(D)D
            d2f
            freturn
        end local 0 // float arcInDegrees
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  arcInDegrees  F
    MethodParameters:
              Name  Flags
      arcInDegrees  

  public android.graphics.Path getPath(float, float, float, float);
    descriptor: (FFFF)Landroid/graphics/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=25, args_size=5
        start local 0 // android.transition.ArcMotion this
        start local 1 // float startX
        start local 2 // float startY
        start local 3 // float endX
        start local 4 // float endY
         0: .line 197
            new android.graphics.Path
            dup
            invokespecial android.graphics.Path.<init>:()V
            astore 5 /* path */
        start local 5 // android.graphics.Path path
         1: .line 198
            aload 5 /* path */
            fload 1 /* startX */
            fload 2 /* startY */
            invokevirtual android.graphics.Path.moveTo:(FF)V
         2: .line 202
            fload 3 /* endX */
            fload 1 /* startX */
            fsub
            fstore 8 /* deltaX */
        start local 8 // float deltaX
         3: .line 203
            fload 4 /* endY */
            fload 2 /* startY */
            fsub
            fstore 9 /* deltaY */
        start local 9 // float deltaY
         4: .line 206
            fload 8 /* deltaX */
            fload 8 /* deltaX */
            fmul
            fload 9 /* deltaY */
            fload 9 /* deltaY */
            fmul
            fadd
            fstore 10 /* h2 */
        start local 10 // float h2
         5: .line 209
            fload 1 /* startX */
            fload 3 /* endX */
            fadd
            fconst_2
            fdiv
            fstore 11 /* dx */
        start local 11 // float dx
         6: .line 210
            fload 2 /* startY */
            fload 4 /* endY */
            fadd
            fconst_2
            fdiv
            fstore 12 /* dy */
        start local 12 // float dy
         7: .line 213
            fload 10 /* h2 */
            ldc 0.25
            fmul
            fstore 13 /* midDist2 */
        start local 13 // float midDist2
         8: .line 215
            fconst_0
            fstore 14 /* minimumArcDist2 */
        start local 14 // float minimumArcDist2
         9: .line 217
            fload 2 /* startY */
            fload 4 /* endY */
            fcmpl
            ifle 10
            iconst_1
            goto 11
      StackMap locals: android.transition.ArcMotion float float float float android.graphics.Path top top float float float float float float float
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 15 /* isMovingUpwards */
        start local 15 // boolean isMovingUpwards
        12: .line 219
            fload 9 /* deltaY */
            fconst_0
            fcmpl
            ifne 16
        13: .line 220
            fload 11 /* dx */
            fstore 6 /* ex */
        start local 6 // float ex
        14: .line 221
            fload 12 /* dy */
            fload 8 /* deltaX */
            invokestatic java.lang.Math.abs:(F)F
            ldc 0.5
            fmul
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumHorizontalTangent:F
            fmul
            fadd
            fstore 7 /* ey */
        start local 7 // float ey
        15: .line 222
            goto 42
        end local 7 // float ey
        end local 6 // float ex
      StackMap locals: int
      StackMap stack:
        16: fload 8 /* deltaX */
            fconst_0
            fcmpl
            ifne 20
        17: .line 223
            fload 11 /* dx */
            fload 9 /* deltaY */
            invokestatic java.lang.Math.abs:(F)F
            ldc 0.5
            fmul
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumVerticalTangent:F
            fmul
            fadd
            fstore 6 /* ex */
        start local 6 // float ex
        18: .line 224
            fload 12 /* dy */
            fstore 7 /* ey */
        start local 7 // float ey
        19: .line 225
            goto 42
        end local 7 // float ey
        end local 6 // float ex
      StackMap locals:
      StackMap stack:
        20: fload 8 /* deltaX */
            invokestatic java.lang.Math.abs:(F)F
            fload 9 /* deltaY */
            invokestatic java.lang.Math.abs:(F)F
            fcmpg
            ifge 32
        21: .line 231
            fload 10 /* h2 */
            fconst_2
            fload 9 /* deltaY */
            fmul
            fdiv
            invokestatic java.lang.Math.abs:(F)F
            fstore 16 /* eDistY */
        start local 16 // float eDistY
        22: .line 232
            iload 15 /* isMovingUpwards */
            ifeq 26
        23: .line 233
            fload 4 /* endY */
            fload 16 /* eDistY */
            fadd
            fstore 7 /* ey */
        start local 7 // float ey
        24: .line 234
            fload 3 /* endX */
            fstore 6 /* ex */
        start local 6 // float ex
        25: .line 235
            goto 28
        end local 7 // float ey
        end local 6 // float ex
        26: .line 236
      StackMap locals: float
      StackMap stack:
            fload 2 /* startY */
            fload 16 /* eDistY */
            fadd
            fstore 7 /* ey */
        start local 7 // float ey
        27: .line 237
            fload 1 /* startX */
            fstore 6 /* ex */
        start local 6 // float ex
        28: .line 240
      StackMap locals: android.transition.ArcMotion float float float float android.graphics.Path float float float float float float float float float int float
      StackMap stack:
            fload 13 /* midDist2 */
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumVerticalTangent:F
            fmul
        29: .line 241
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumVerticalTangent:F
        30: .line 240
            fmul
            fstore 14 /* minimumArcDist2 */
        end local 16 // float eDistY
        31: .line 242
            goto 42
        end local 7 // float ey
        end local 6 // float ex
        32: .line 244
      StackMap locals: android.transition.ArcMotion float float float float android.graphics.Path top top float float float float float float float int
      StackMap stack:
            fload 10 /* h2 */
            fconst_2
            fload 8 /* deltaX */
            fmul
            fdiv
            fstore 16 /* eDistX */
        start local 16 // float eDistX
        33: .line 245
            iload 15 /* isMovingUpwards */
            ifeq 37
        34: .line 246
            fload 1 /* startX */
            fload 16 /* eDistX */
            fadd
            fstore 6 /* ex */
        start local 6 // float ex
        35: .line 247
            fload 2 /* startY */
            fstore 7 /* ey */
        start local 7 // float ey
        36: .line 248
            goto 39
        end local 7 // float ey
        end local 6 // float ex
        37: .line 249
      StackMap locals: float
      StackMap stack:
            fload 3 /* endX */
            fload 16 /* eDistX */
            fsub
            fstore 6 /* ex */
        start local 6 // float ex
        38: .line 250
            fload 4 /* endY */
            fstore 7 /* ey */
        start local 7 // float ey
        39: .line 253
      StackMap locals: android.transition.ArcMotion float float float float android.graphics.Path float float float float float float float float float int float
      StackMap stack:
            fload 13 /* midDist2 */
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumHorizontalTangent:F
            fmul
        40: .line 254
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMinimumHorizontalTangent:F
        41: .line 253
            fmul
            fstore 14 /* minimumArcDist2 */
        end local 16 // float eDistX
        42: .line 256
      StackMap locals:
      StackMap stack:
            fload 11 /* dx */
            fload 6 /* ex */
            fsub
            fstore 16 /* arcDistX */
        start local 16 // float arcDistX
        43: .line 257
            fload 12 /* dy */
            fload 7 /* ey */
            fsub
            fstore 17 /* arcDistY */
        start local 17 // float arcDistY
        44: .line 258
            fload 16 /* arcDistX */
            fload 16 /* arcDistX */
            fmul
            fload 17 /* arcDistY */
            fload 17 /* arcDistY */
            fmul
            fadd
            fstore 18 /* arcDist2 */
        start local 18 // float arcDist2
        45: .line 260
            fload 13 /* midDist2 */
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMaximumTangent:F
            fmul
            aload 0 /* this */
            getfield android.transition.ArcMotion.mMaximumTangent:F
            fmul
            fstore 19 /* maximumArcDist2 */
        start local 19 // float maximumArcDist2
        46: .line 262
            fconst_0
            fstore 20 /* newArcDistance2 */
        start local 20 // float newArcDistance2
        47: .line 263
            fload 18 /* arcDist2 */
            fconst_0
            fcmpl
            ifeq 50
            fload 18 /* arcDist2 */
            fload 14 /* minimumArcDist2 */
            fcmpg
            ifge 50
        48: .line 264
            fload 14 /* minimumArcDist2 */
            fstore 20 /* newArcDistance2 */
        49: .line 265
            goto 52
      StackMap locals: android.transition.ArcMotion float float float float android.graphics.Path float float float float float float float float float int float float float float float
      StackMap stack:
        50: fload 18 /* arcDist2 */
            fload 19 /* maximumArcDist2 */
            fcmpl
            ifle 52
        51: .line 266
            fload 19 /* maximumArcDist2 */
            fstore 20 /* newArcDistance2 */
        52: .line 268
      StackMap locals:
      StackMap stack:
            fload 20 /* newArcDistance2 */
            fconst_0
            fcmpl
            ifeq 57
        53: .line 269
            fload 20 /* newArcDistance2 */
            fload 18 /* arcDist2 */
            fdiv
            fstore 21 /* ratio2 */
        start local 21 // float ratio2
        54: .line 270
            fload 21 /* ratio2 */
            f2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 22 /* ratio */
        start local 22 // float ratio
        55: .line 271
            fload 11 /* dx */
            fload 22 /* ratio */
            fload 6 /* ex */
            fload 11 /* dx */
            fsub
            fmul
            fadd
            fstore 6 /* ex */
        56: .line 272
            fload 12 /* dy */
            fload 22 /* ratio */
            fload 7 /* ey */
            fload 12 /* dy */
            fsub
            fmul
            fadd
            fstore 7 /* ey */
        end local 22 // float ratio
        end local 21 // float ratio2
        57: .line 274
      StackMap locals:
      StackMap stack:
            fload 1 /* startX */
            fload 6 /* ex */
            fadd
            fconst_2
            fdiv
            fstore 21 /* control1X */
        start local 21 // float control1X
        58: .line 275
            fload 2 /* startY */
            fload 7 /* ey */
            fadd
            fconst_2
            fdiv
            fstore 22 /* control1Y */
        start local 22 // float control1Y
        59: .line 276
            fload 6 /* ex */
            fload 3 /* endX */
            fadd
            fconst_2
            fdiv
            fstore 23 /* control2X */
        start local 23 // float control2X
        60: .line 277
            fload 7 /* ey */
            fload 4 /* endY */
            fadd
            fconst_2
            fdiv
            fstore 24 /* control2Y */
        start local 24 // float control2Y
        61: .line 278
            aload 5 /* path */
            fload 21 /* control1X */
            fload 22 /* control1Y */
            fload 23 /* control2X */
            fload 24 /* control2Y */
            fload 3 /* endX */
            fload 4 /* endY */
            invokevirtual android.graphics.Path.cubicTo:(FFFFFF)V
        62: .line 279
            aload 5 /* path */
            areturn
        end local 24 // float control2Y
        end local 23 // float control2X
        end local 22 // float control1Y
        end local 21 // float control1X
        end local 20 // float newArcDistance2
        end local 19 // float maximumArcDist2
        end local 18 // float arcDist2
        end local 17 // float arcDistY
        end local 16 // float arcDistX
        end local 15 // boolean isMovingUpwards
        end local 14 // float minimumArcDist2
        end local 13 // float midDist2
        end local 12 // float dy
        end local 11 // float dx
        end local 10 // float h2
        end local 9 // float deltaY
        end local 8 // float deltaX
        end local 7 // float ey
        end local 6 // float ex
        end local 5 // android.graphics.Path path
        end local 4 // float endY
        end local 3 // float endX
        end local 2 // float startY
        end local 1 // float startX
        end local 0 // android.transition.ArcMotion this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   63     0             this  Landroid/transition/ArcMotion;
            0   63     1           startX  F
            0   63     2           startY  F
            0   63     3             endX  F
            0   63     4             endY  F
            1   63     5             path  Landroid/graphics/Path;
           14   16     6               ex  F
           18   20     6               ex  F
           25   26     6               ex  F
           28   32     6               ex  F
           35   37     6               ex  F
           38   63     6               ex  F
           15   16     7               ey  F
           19   20     7               ey  F
           24   26     7               ey  F
           27   32     7               ey  F
           36   37     7               ey  F
           39   63     7               ey  F
            3   63     8           deltaX  F
            4   63     9           deltaY  F
            5   63    10               h2  F
            6   63    11               dx  F
            7   63    12               dy  F
            8   63    13         midDist2  F
            9   63    14  minimumArcDist2  F
           12   63    15  isMovingUpwards  Z
           22   31    16           eDistY  F
           33   42    16           eDistX  F
           43   63    16         arcDistX  F
           44   63    17         arcDistY  F
           45   63    18         arcDist2  F
           46   63    19  maximumArcDist2  F
           47   63    20  newArcDistance2  F
           54   57    21           ratio2  F
           55   57    22            ratio  F
           58   63    21        control1X  F
           59   63    22        control1Y  F
           60   63    23        control2X  F
           61   63    24        control2Y  F
    MethodParameters:
        Name  Flags
      startX  
      startY  
      endX    
      endY    
}
SourceFile: "ArcMotion.java"