Weather/smali/android/support/v4/graphics/PathParser$PathDataNode.smali
2021-05-10 10:13:34 +02:00

1831 lines
29 KiB
Smali

.class public Landroid/support/v4/graphics/PathParser$PathDataNode;
.super Ljava/lang/Object;
.source "PathParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroid/support/v4/graphics/PathParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "PathDataNode"
.end annotation
# instance fields
.field public mParams:[F
.annotation build Landroid/support/annotation/RestrictTo;
.end annotation
.end field
.field public mType:C
.annotation build Landroid/support/annotation/RestrictTo;
.end annotation
.end field
# direct methods
.method constructor <init>(C[F)V
.locals 0
.line 319
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 320
iput-char p1, p0, Landroid/support/v4/graphics/PathParser$PathDataNode;->mType:C
.line 321
iput-object p2, p0, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
return-void
.end method
.method constructor <init>(Landroid/support/v4/graphics/PathParser$PathDataNode;)V
.locals 2
.line 324
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 325
iget-char v0, p1, Landroid/support/v4/graphics/PathParser$PathDataNode;->mType:C
iput-char v0, p0, Landroid/support/v4/graphics/PathParser$PathDataNode;->mType:C
.line 326
iget-object v0, p1, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
iget-object p1, p1, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
array-length p1, p1
const/4 v1, 0x0
invoke-static {v0, v1, p1}, Landroid/support/v4/graphics/PathParser;->copyOfRange([FII)[F
move-result-object p1
iput-object p1, p0, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
return-void
.end method
.method private static addCommand(Landroid/graphics/Path;[FCC[F)V
.locals 27
move-object/from16 v10, p0
move-object/from16 v13, p4
const/4 v14, 0x0
.line 365
aget v0, p1, v14
const/4 v15, 0x1
.line 366
aget v1, p1, v15
const/16 v16, 0x2
.line 367
aget v2, p1, v16
const/16 v17, 0x3
.line 368
aget v3, p1, v17
const/16 v18, 0x4
.line 369
aget v4, p1, v18
const/16 v19, 0x5
.line 370
aget v5, p1, v19
sparse-switch p3, :sswitch_data_0
:goto_0
:sswitch_0
const/16 v20, 0x2
goto :goto_1
.line 377
:sswitch_1
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Path;->close()V
.line 385
invoke-virtual {v10, v4, v5}, Landroid/graphics/Path;->moveTo(FF)V
move v0, v4
move v2, v0
move v1, v5
move v3, v1
goto :goto_0
:sswitch_2
const/16 v20, 0x4
goto :goto_1
:sswitch_3
const/16 v20, 0x1
goto :goto_1
:sswitch_4
const/4 v6, 0x6
const/16 v20, 0x6
goto :goto_1
:sswitch_5
const/4 v6, 0x7
const/16 v20, 0x7
:goto_1
move v8, v0
move v7, v1
move/from16 v21, v4
move/from16 v22, v5
const/4 v9, 0x0
move/from16 v0, p2
.line 417
:goto_2
array-length v1, v13
if-ge v9, v1, :cond_e
const/16 v1, 0x51
const/16 v5, 0x74
const/16 v6, 0x73
const/16 v15, 0x71
const/16 v14, 0x63
const/high16 v23, 0x40000000 # 2.0f
const/4 v4, 0x0
sparse-switch p3, :sswitch_data_1
move v12, v7
move v11, v8
:goto_3
move/from16 v25, v9
goto/16 :goto_11
:sswitch_6
add-int/lit8 v0, v9, 0x0
.line 466
aget v1, v13, v0
invoke-virtual {v10, v4, v1}, Landroid/graphics/Path;->rLineTo(FF)V
.line 467
aget v0, v13, v0
add-float/2addr v7, v0
goto :goto_3
:sswitch_7
if-eq v0, v15, :cond_1
if-eq v0, v5, :cond_1
if-eq v0, v1, :cond_1
const/16 v1, 0x54
if-ne v0, v1, :cond_0
goto :goto_4
:cond_0
const/4 v0, 0x0
goto :goto_5
:cond_1
:goto_4
sub-float v4, v8, v2
sub-float v0, v7, v3
:goto_5
add-int/lit8 v1, v9, 0x0
.line 545
aget v2, v13, v1
add-int/lit8 v3, v9, 0x1
aget v5, v13, v3
invoke-virtual {v10, v4, v0, v2, v5}, Landroid/graphics/Path;->rQuadTo(FFFF)V
add-float/2addr v4, v8
add-float/2addr v0, v7
.line 549
aget v1, v13, v1
add-float/2addr v8, v1
.line 550
aget v1, v13, v3
add-float/2addr v7, v1
move v3, v0
move v2, v4
goto :goto_3
:sswitch_8
if-eq v0, v14, :cond_3
if-eq v0, v6, :cond_3
const/16 v1, 0x43
if-eq v0, v1, :cond_3
const/16 v1, 0x53
if-ne v0, v1, :cond_2
goto :goto_6
:cond_2
const/4 v1, 0x0
const/4 v2, 0x0
goto :goto_7
:cond_3
:goto_6
sub-float v0, v8, v2
sub-float v1, v7, v3
move v2, v1
move v1, v0
:goto_7
add-int/lit8 v14, v9, 0x0
.line 499
aget v3, v13, v14
add-int/lit8 v15, v9, 0x1
aget v4, v13, v15
add-int/lit8 v23, v9, 0x2
aget v5, v13, v23
add-int/lit8 v24, v9, 0x3
aget v6, v13, v24
move-object/from16 v0, p0
invoke-virtual/range {v0 .. v6}, Landroid/graphics/Path;->rCubicTo(FFFFFF)V
.line 503
aget v0, v13, v14
add-float/2addr v0, v8
.line 504
aget v1, v13, v15
add-float/2addr v1, v7
.line 505
aget v2, v13, v23
add-float/2addr v8, v2
.line 506
aget v2, v13, v24
add-float/2addr v7, v2
goto/16 :goto_8
:sswitch_9
add-int/lit8 v0, v9, 0x0
.line 524
aget v1, v13, v0
add-int/lit8 v2, v9, 0x1
aget v3, v13, v2
add-int/lit8 v4, v9, 0x2
aget v5, v13, v4
add-int/lit8 v6, v9, 0x3
aget v14, v13, v6
invoke-virtual {v10, v1, v3, v5, v14}, Landroid/graphics/Path;->rQuadTo(FFFF)V
.line 525
aget v0, v13, v0
add-float/2addr v0, v8
.line 526
aget v1, v13, v2
add-float/2addr v1, v7
.line 527
aget v2, v13, v4
add-float/2addr v8, v2
.line 528
aget v2, v13, v6
add-float/2addr v7, v2
goto :goto_8
:sswitch_a
add-int/lit8 v0, v9, 0x0
.line 420
aget v1, v13, v0
add-float/2addr v8, v1
add-int/lit8 v1, v9, 0x1
.line 421
aget v4, v13, v1
add-float/2addr v7, v4
if-lez v9, :cond_4
.line 426
aget v0, v13, v0
aget v1, v13, v1
invoke-virtual {v10, v0, v1}, Landroid/graphics/Path;->rLineTo(FF)V
goto/16 :goto_3
.line 428
:cond_4
aget v0, v13, v0
aget v1, v13, v1
invoke-virtual {v10, v0, v1}, Landroid/graphics/Path;->rMoveTo(FF)V
move/from16 v22, v7
move/from16 v21, v8
goto/16 :goto_3
:sswitch_b
add-int/lit8 v0, v9, 0x0
.line 448
aget v1, v13, v0
add-int/lit8 v4, v9, 0x1
aget v5, v13, v4
invoke-virtual {v10, v1, v5}, Landroid/graphics/Path;->rLineTo(FF)V
.line 449
aget v0, v13, v0
add-float/2addr v8, v0
.line 450
aget v0, v13, v4
add-float/2addr v7, v0
goto/16 :goto_3
:sswitch_c
add-int/lit8 v0, v9, 0x0
.line 458
aget v1, v13, v0
invoke-virtual {v10, v1, v4}, Landroid/graphics/Path;->rLineTo(FF)V
.line 459
aget v0, v13, v0
add-float/2addr v8, v0
goto/16 :goto_3
:sswitch_d
add-int/lit8 v0, v9, 0x0
.line 474
aget v1, v13, v0
add-int/lit8 v0, v9, 0x1
aget v2, v13, v0
add-int/lit8 v14, v9, 0x2
aget v3, v13, v14
add-int/lit8 v15, v9, 0x3
aget v4, v13, v15
add-int/lit8 v23, v9, 0x4
aget v5, v13, v23
add-int/lit8 v24, v9, 0x5
aget v6, v13, v24
move-object/from16 v0, p0
invoke-virtual/range {v0 .. v6}, Landroid/graphics/Path;->rCubicTo(FFFFFF)V
.line 477
aget v0, v13, v14
add-float/2addr v0, v8
.line 478
aget v1, v13, v15
add-float/2addr v1, v7
.line 479
aget v2, v13, v23
add-float/2addr v8, v2
.line 480
aget v2, v13, v24
add-float/2addr v7, v2
:goto_8
move v2, v0
move v3, v1
goto/16 :goto_3
:sswitch_e
add-int/lit8 v14, v9, 0x5
.line 569
aget v0, v13, v14
add-float v3, v0, v8
add-int/lit8 v15, v9, 0x6
aget v0, v13, v15
add-float v5, v0, v7
add-int/lit8 v0, v9, 0x0
aget v6, v13, v0
add-int/lit8 v0, v9, 0x1
aget v23, v13, v0
add-int/lit8 v0, v9, 0x2
aget v24, v13, v0
add-int/lit8 v0, v9, 0x3
aget v0, v13, v0
cmpl-float v0, v0, v4
if-eqz v0, :cond_5
const/16 v25, 0x1
goto :goto_9
:cond_5
const/16 v25, 0x0
:goto_9
add-int/lit8 v0, v9, 0x4
aget v0, v13, v0
cmpl-float v0, v0, v4
if-eqz v0, :cond_6
const/16 v26, 0x1
goto :goto_a
:cond_6
const/16 v26, 0x0
:goto_a
move-object/from16 v0, p0
move v1, v8
move v2, v7
move v4, v5
move v5, v6
move/from16 v6, v23
move v12, v7
move/from16 v7, v24
move v11, v8
move/from16 v8, v25
move/from16 v25, v9
move/from16 v9, v26
invoke-static/range {v0 .. v9}, Landroid/support/v4/graphics/PathParser$PathDataNode;->drawArc(Landroid/graphics/Path;FFFFFFFZZ)V
.line 579
aget v0, v13, v14
add-float v8, v11, v0
.line 580
aget v0, v13, v15
add-float v7, v12, v0
goto/16 :goto_10
:sswitch_f
move v11, v8
move/from16 v25, v9
add-int/lit8 v9, v25, 0x0
.line 470
aget v0, v13, v9
invoke-virtual {v10, v11, v0}, Landroid/graphics/Path;->lineTo(FF)V
.line 471
aget v7, v13, v9
goto/16 :goto_11
:sswitch_10
move v12, v7
move v11, v8
move/from16 v25, v9
if-eq v0, v15, :cond_7
if-eq v0, v5, :cond_7
if-eq v0, v1, :cond_7
const/16 v1, 0x54
if-ne v0, v1, :cond_8
:cond_7
mul-float v8, v11, v23
sub-float/2addr v8, v2
mul-float v7, v12, v23
sub-float/2addr v7, v3
move v12, v7
move v11, v8
:cond_8
add-int/lit8 v9, v25, 0x0
.line 560
aget v0, v13, v9
add-int/lit8 v1, v25, 0x1
aget v2, v13, v1
invoke-virtual {v10, v11, v12, v0, v2}, Landroid/graphics/Path;->quadTo(FFFF)V
.line 564
aget v8, v13, v9
.line 565
aget v7, v13, v1
move v2, v11
move v3, v12
goto/16 :goto_11
:sswitch_11
move v12, v7
move v11, v8
move/from16 v25, v9
if-eq v0, v14, :cond_a
if-eq v0, v6, :cond_a
const/16 v1, 0x43
if-eq v0, v1, :cond_a
const/16 v1, 0x53
if-ne v0, v1, :cond_9
goto :goto_b
:cond_9
move v1, v11
move v2, v12
goto :goto_c
:cond_a
:goto_b
mul-float v8, v11, v23
sub-float/2addr v8, v2
mul-float v7, v12, v23
sub-float/2addr v7, v3
move v2, v7
move v1, v8
:goto_c
add-int/lit8 v9, v25, 0x0
.line 516
aget v3, v13, v9
add-int/lit8 v7, v25, 0x1
aget v4, v13, v7
add-int/lit8 v8, v25, 0x2
aget v5, v13, v8
add-int/lit8 v11, v25, 0x3
aget v6, v13, v11
move-object/from16 v0, p0
invoke-virtual/range {v0 .. v6}, Landroid/graphics/Path;->cubicTo(FFFFFF)V
.line 518
aget v0, v13, v9
.line 519
aget v1, v13, v7
.line 520
aget v8, v13, v8
.line 521
aget v7, v13, v11
goto :goto_d
:sswitch_12
move/from16 v25, v9
add-int/lit8 v9, v25, 0x0
.line 531
aget v0, v13, v9
add-int/lit8 v1, v25, 0x1
aget v2, v13, v1
add-int/lit8 v3, v25, 0x2
aget v4, v13, v3
add-int/lit8 v5, v25, 0x3
aget v6, v13, v5
invoke-virtual {v10, v0, v2, v4, v6}, Landroid/graphics/Path;->quadTo(FFFF)V
.line 532
aget v0, v13, v9
.line 533
aget v1, v13, v1
.line 534
aget v8, v13, v3
.line 535
aget v7, v13, v5
:goto_d
move v2, v0
move v3, v1
goto/16 :goto_11
:sswitch_13
move/from16 v25, v9
add-int/lit8 v9, v25, 0x0
.line 434
aget v8, v13, v9
add-int/lit8 v0, v25, 0x1
.line 435
aget v7, v13, v0
if-lez v25, :cond_b
.line 440
aget v1, v13, v9
aget v0, v13, v0
invoke-virtual {v10, v1, v0}, Landroid/graphics/Path;->lineTo(FF)V
goto/16 :goto_11
.line 442
:cond_b
aget v1, v13, v9
aget v0, v13, v0
invoke-virtual {v10, v1, v0}, Landroid/graphics/Path;->moveTo(FF)V
move/from16 v22, v7
move/from16 v21, v8
goto/16 :goto_11
:sswitch_14
move/from16 v25, v9
add-int/lit8 v9, v25, 0x0
.line 453
aget v0, v13, v9
add-int/lit8 v1, v25, 0x1
aget v4, v13, v1
invoke-virtual {v10, v0, v4}, Landroid/graphics/Path;->lineTo(FF)V
.line 454
aget v8, v13, v9
.line 455
aget v7, v13, v1
goto/16 :goto_11
:sswitch_15
move v12, v7
move/from16 v25, v9
add-int/lit8 v9, v25, 0x0
.line 462
aget v0, v13, v9
invoke-virtual {v10, v0, v12}, Landroid/graphics/Path;->lineTo(FF)V
.line 463
aget v8, v13, v9
goto/16 :goto_11
:sswitch_16
move/from16 v25, v9
add-int/lit8 v9, v25, 0x0
.line 484
aget v1, v13, v9
add-int/lit8 v9, v25, 0x1
aget v2, v13, v9
add-int/lit8 v9, v25, 0x2
aget v3, v13, v9
add-int/lit8 v7, v25, 0x3
aget v4, v13, v7
add-int/lit8 v8, v25, 0x4
aget v5, v13, v8
add-int/lit8 v11, v25, 0x5
aget v6, v13, v11
move-object/from16 v0, p0
invoke-virtual/range {v0 .. v6}, Landroid/graphics/Path;->cubicTo(FFFFFF)V
.line 486
aget v8, v13, v8
.line 487
aget v0, v13, v11
.line 488
aget v1, v13, v9
.line 489
aget v2, v13, v7
move v7, v0
move v3, v2
move v2, v1
goto :goto_11
:sswitch_17
move v12, v7
move v11, v8
move/from16 v25, v9
add-int/lit8 v14, v25, 0x5
.line 585
aget v3, v13, v14
add-int/lit8 v15, v25, 0x6
aget v5, v13, v15
add-int/lit8 v9, v25, 0x0
aget v6, v13, v9
add-int/lit8 v9, v25, 0x1
aget v7, v13, v9
add-int/lit8 v9, v25, 0x2
aget v8, v13, v9
add-int/lit8 v9, v25, 0x3
aget v0, v13, v9
cmpl-float v0, v0, v4
if-eqz v0, :cond_c
const/4 v9, 0x1
goto :goto_e
:cond_c
const/4 v9, 0x0
:goto_e
add-int/lit8 v0, v25, 0x4
aget v0, v13, v0
cmpl-float v0, v0, v4
if-eqz v0, :cond_d
const/16 v23, 0x1
goto :goto_f
:cond_d
const/16 v23, 0x0
:goto_f
move-object/from16 v0, p0
move v1, v11
move v2, v12
move v4, v5
move v5, v6
move v6, v7
move v7, v8
move v8, v9
move/from16 v9, v23
invoke-static/range {v0 .. v9}, Landroid/support/v4/graphics/PathParser$PathDataNode;->drawArc(Landroid/graphics/Path;FFFFFFFZZ)V
.line 595
aget v8, v13, v14
.line 596
aget v7, v13, v15
:goto_10
move v3, v7
move v2, v8
:goto_11
add-int v9, v25, v20
move/from16 v0, p3
const/4 v14, 0x0
const/4 v15, 0x1
goto/16 :goto_2
:cond_e
move v12, v7
const/4 v1, 0x0
.line 603
aput v8, p1, v1
const/4 v1, 0x1
.line 604
aput v12, p1, v1
.line 605
aput v2, p1, v16
.line 606
aput v3, p1, v17
.line 607
aput v21, p1, v18
.line 608
aput v22, p1, v19
return-void
:sswitch_data_0
.sparse-switch
0x41 -> :sswitch_5
0x43 -> :sswitch_4
0x48 -> :sswitch_3
0x4c -> :sswitch_0
0x4d -> :sswitch_0
0x51 -> :sswitch_2
0x53 -> :sswitch_2
0x54 -> :sswitch_0
0x56 -> :sswitch_3
0x5a -> :sswitch_1
0x61 -> :sswitch_5
0x63 -> :sswitch_4
0x68 -> :sswitch_3
0x6c -> :sswitch_0
0x6d -> :sswitch_0
0x71 -> :sswitch_2
0x73 -> :sswitch_2
0x74 -> :sswitch_0
0x76 -> :sswitch_3
0x7a -> :sswitch_1
.end sparse-switch
:sswitch_data_1
.sparse-switch
0x41 -> :sswitch_17
0x43 -> :sswitch_16
0x48 -> :sswitch_15
0x4c -> :sswitch_14
0x4d -> :sswitch_13
0x51 -> :sswitch_12
0x53 -> :sswitch_11
0x54 -> :sswitch_10
0x56 -> :sswitch_f
0x61 -> :sswitch_e
0x63 -> :sswitch_d
0x68 -> :sswitch_c
0x6c -> :sswitch_b
0x6d -> :sswitch_a
0x71 -> :sswitch_9
0x73 -> :sswitch_8
0x74 -> :sswitch_7
0x76 -> :sswitch_6
.end sparse-switch
.end method
.method private static arcToBezier(Landroid/graphics/Path;DDDDDDDDD)V
.locals 55
move-wide/from16 v0, p5
const-wide/high16 v6, 0x4010000000000000L # 4.0
mul-double v8, p17, v6
const-wide v10, 0x400921fb54442d18L # Math.PI
div-double/2addr v8, v10
.line 716
invoke-static {v8, v9}, Ljava/lang/Math;->abs(D)D
move-result-wide v8
invoke-static {v8, v9}, Ljava/lang/Math;->ceil(D)D
move-result-wide v8
double-to-int v8, v8
.line 719
invoke-static/range {p13 .. p14}, Ljava/lang/Math;->cos(D)D
move-result-wide v9
.line 720
invoke-static/range {p13 .. p14}, Ljava/lang/Math;->sin(D)D
move-result-wide v11
.line 721
invoke-static/range {p15 .. p16}, Ljava/lang/Math;->cos(D)D
move-result-wide v13
.line 722
invoke-static/range {p15 .. p16}, Ljava/lang/Math;->sin(D)D
move-result-wide v15
neg-double v6, v0
mul-double v18, v6, v9
mul-double v20, v18, v15
mul-double v22, p7, v11
mul-double v24, v22, v13
sub-double v20, v20, v24
mul-double v6, v6, v11
mul-double v15, v15, v6
mul-double v2, p7, v9
mul-double v13, v13, v2
add-double/2addr v15, v13
int-to-double v13, v8
.line 726
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
div-double v4, p17, v13
const/4 v13, 0x0
move-wide/from16 v26, p11
move-wide/from16 v28, v15
move-wide/from16 v24, v20
move-wide/from16 v20, p9
move-wide/from16 v14, p15
:goto_0
if-ge v13, v8, :cond_0
add-double v30, v14, v4
.line 729
invoke-static/range {v30 .. v31}, Ljava/lang/Math;->sin(D)D
move-result-wide v32
.line 730
invoke-static/range {v30 .. v31}, Ljava/lang/Math;->cos(D)D
move-result-wide v34
mul-double v36, v0, v9
mul-double v36, v36, v34
add-double v36, p1, v36
mul-double v38, v22, v32
move-wide/from16 v40, v4
sub-double v4, v36, v38
mul-double v36, v0, v11
mul-double v36, v36, v34
add-double v36, p3, v36
mul-double v42, v2, v32
add-double v0, v36, v42
mul-double v36, v18, v32
mul-double v42, v22, v34
sub-double v36, v36, v42
mul-double v32, v32, v6
mul-double v34, v34, v2
add-double v32, v32, v34
sub-double v14, v30, v14
const-wide/high16 v34, 0x4000000000000000L # 2.0
div-double v34, v14, v34
.line 735
invoke-static/range {v34 .. v35}, Ljava/lang/Math;->tan(D)D
move-result-wide v34
.line 737
invoke-static {v14, v15}, Ljava/lang/Math;->sin(D)D
move-result-wide v14
const-wide/high16 v42, 0x4008000000000000L # 3.0
mul-double v44, v34, v42
mul-double v44, v44, v34
const-wide/high16 v16, 0x4010000000000000L # 4.0
add-double v44, v44, v16
invoke-static/range {v44 .. v45}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v34
const-wide/high16 v44, 0x3ff0000000000000L # 1.0
sub-double v34, v34, v44
mul-double v14, v14, v34
div-double v14, v14, v42
mul-double v24, v24, v14
move-wide/from16 v46, v2
add-double v2, v20, v24
mul-double v28, v28, v14
move-wide/from16 v48, v6
add-double v6, v26, v28
mul-double v20, v14, v36
move/from16 v50, v8
move-wide/from16 v51, v9
sub-double v8, v4, v20
mul-double v14, v14, v32
sub-double v14, v0, v14
const/4 v10, 0x0
move-wide/from16 v53, v11
move-object/from16 v11, p0
.line 744
invoke-virtual {v11, v10, v10}, Landroid/graphics/Path;->rLineTo(FF)V
double-to-float v2, v2
double-to-float v3, v6
double-to-float v6, v8
double-to-float v7, v14
double-to-float v8, v4
double-to-float v9, v0
move-object/from16 p7, p0
move/from16 p8, v2
move/from16 p9, v3
move/from16 p10, v6
move/from16 p11, v7
move/from16 p12, v8
move/from16 p13, v9
.line 746
invoke-virtual/range {p7 .. p13}, Landroid/graphics/Path;->cubicTo(FFFFFF)V
add-int/lit8 v13, v13, 0x1
move-wide/from16 v26, v0
move-wide/from16 v20, v4
move-wide/from16 v14, v30
move-wide/from16 v28, v32
move-wide/from16 v24, v36
move-wide/from16 v4, v40
move-wide/from16 v2, v46
move-wide/from16 v6, v48
move/from16 v8, v50
move-wide/from16 v9, v51
move-wide/from16 v11, v53
move-wide/from16 v0, p5
goto/16 :goto_0
:cond_0
return-void
.end method
.method private static drawArc(Landroid/graphics/Path;FFFFFFFZZ)V
.locals 41
move/from16 v1, p1
move/from16 v3, p3
move/from16 v0, p5
move/from16 v2, p6
move/from16 v7, p7
move/from16 v9, p9
float-to-double v4, v7
.line 623
invoke-static {v4, v5}, Ljava/lang/Math;->toRadians(D)D
move-result-wide v19
.line 625
invoke-static/range {v19 .. v20}, Ljava/lang/Math;->cos(D)D
move-result-wide v4
.line 626
invoke-static/range {v19 .. v20}, Ljava/lang/Math;->sin(D)D
move-result-wide v10
float-to-double v13, v1
.line 629
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
mul-double v15, v13, v4
move/from16 v6, p2
move-wide/from16 v25, v13
float-to-double v13, v6
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
mul-double v17, v13, v10
add-double v15, v15, v17
float-to-double v6, v0
invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v15, v6
neg-float v8, v1
float-to-double v8, v8
.line 630
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
mul-double v8, v8, v10
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
mul-double v17, v13, v4
add-double v8, v8, v17
move-wide/from16 v27, v13
float-to-double v13, v2
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v8, v13
float-to-double v1, v3
.line 631
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
mul-double v1, v1, v4
move/from16 v12, p4
move-wide/from16 v29, v8
float-to-double v8, v12
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
mul-double v17, v8, v10
add-double v1, v1, v17
invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v1, v6
neg-float v12, v3
move-wide/from16 v31, v6
float-to-double v6, v12
.line 632
invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z
mul-double v6, v6, v10
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
mul-double v8, v8, v4
add-double/2addr v6, v8
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v6, v13
sub-double v8, v15, v1
sub-double v17, v29, v6
add-double v21, v15, v1
const-wide/high16 v23, 0x4000000000000000L # 2.0
div-double v21, v21, v23
add-double v33, v29, v6
div-double v33, v33, v23
mul-double v23, v8, v8
mul-double v35, v17, v17
move-wide/from16 v37, v10
add-double v10, v23, v35
const-wide/16 v23, 0x0
cmpl-double v12, v10, v23
if-nez v12, :cond_0
const-string v0, "PathParser"
const-string v1, " Points are coincident"
.line 642
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_0
const-wide/high16 v35, 0x3ff0000000000000L # 1.0
div-double v35, v35, v10
const-wide/high16 v39, 0x3fd0000000000000L # 0.25
sub-double v35, v35, v39
cmpg-double v12, v35, v23
if-gez v12, :cond_1
const-string v1, "PathParser"
.line 647
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Points are too far apart "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v10, v11}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 648
invoke-static {v10, v11}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v1
const-wide v4, 0x3ffffff583a53b8eL # 1.99999
div-double/2addr v1, v4
double-to-float v1, v1
mul-float v5, v0, v1
move/from16 v0, p6
mul-float v6, v0, v1
move-object/from16 v0, p0
move/from16 v1, p1
move/from16 v2, p2
move/from16 v3, p3
move/from16 v4, p4
move/from16 v7, p7
move/from16 v8, p8
move/from16 v9, p9
.line 649
invoke-static/range {v0 .. v9}, Landroid/support/v4/graphics/PathParser$PathDataNode;->drawArc(Landroid/graphics/Path;FFFFFFFZZ)V
return-void
.line 653
:cond_1
invoke-static/range {v35 .. v36}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v10
mul-double v8, v8, v10
mul-double v10, v10, v17
move/from16 v0, p8
move/from16 v3, p9
if-ne v0, v3, :cond_2
sub-double v21, v21, v10
add-double v33, v33, v8
goto :goto_0
:cond_2
const/4 v0, 0x0
add-double v21, v21, v10
sub-double v33, v33, v8
:goto_0
const/4 v0, 0x0
sub-double v8, v29, v33
sub-double v10, v15, v21
.line 666
invoke-static {v8, v9, v10, v11}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v29
sub-double v6, v6, v33
sub-double v1, v1, v21
.line 668
invoke-static {v6, v7, v1, v2}, Ljava/lang/Math;->atan2(DD)D
move-result-wide v0
sub-double v0, v0, v29
cmpl-double v2, v0, v23
if-ltz v2, :cond_3
const/4 v2, 0x1
goto :goto_1
:cond_3
const/4 v2, 0x0
:goto_1
if-eq v3, v2, :cond_5
const-wide v2, 0x401921fb54442d18L # 6.283185307179586
cmpl-double v6, v0, v23
if-lez v6, :cond_4
sub-double/2addr v0, v2
goto :goto_2
:cond_4
const/4 v6, 0x0
add-double/2addr v0, v2
:cond_5
:goto_2
move-wide/from16 v23, v0
.line 679
invoke-static/range {v31 .. v32}, Ljava/lang/Double;->isNaN(D)Z
mul-double v21, v21, v31
.line 680
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
mul-double v33, v33, v13
mul-double v0, v21, v4
mul-double v10, v33, v37
sub-double v7, v0, v10
move-wide/from16 v0, v31
mul-double v21, v21, v37
mul-double v33, v33, v4
add-double v9, v21, v33
move-object/from16 v6, p0
move-wide v11, v0
move-wide/from16 v0, v25
move-wide/from16 v2, v27
move-wide v15, v0
move-wide/from16 v17, v2
move-wide/from16 v21, v29
.line 685
invoke-static/range {v6 .. v24}, Landroid/support/v4/graphics/PathParser$PathDataNode;->arcToBezier(Landroid/graphics/Path;DDDDDDDDD)V
return-void
.end method
.method public static nodesToPath([Landroid/support/v4/graphics/PathParser$PathDataNode;Landroid/graphics/Path;)V
.locals 5
const/4 v0, 0x6
.line 336
new-array v0, v0, [F
const/16 v1, 0x6d
const/4 v2, 0x0
.line 338
:goto_0
array-length v3, p0
if-ge v2, v3, :cond_0
.line 339
aget-object v3, p0, v2
iget-char v3, v3, Landroid/support/v4/graphics/PathParser$PathDataNode;->mType:C
aget-object v4, p0, v2
iget-object v4, v4, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
invoke-static {p1, v0, v1, v3, v4}, Landroid/support/v4/graphics/PathParser$PathDataNode;->addCommand(Landroid/graphics/Path;[FCC[F)V
.line 340
aget-object v1, p0, v2
iget-char v1, v1, Landroid/support/v4/graphics/PathParser$PathDataNode;->mType:C
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
return-void
.end method
# virtual methods
.method public interpolatePathDataNode(Landroid/support/v4/graphics/PathParser$PathDataNode;Landroid/support/v4/graphics/PathParser$PathDataNode;F)V
.locals 4
const/4 v0, 0x0
.line 355
:goto_0
iget-object v1, p1, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
array-length v1, v1
if-ge v0, v1, :cond_0
.line 356
iget-object v1, p0, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
iget-object v2, p1, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
aget v2, v2, v0
const/high16 v3, 0x3f800000 # 1.0f
sub-float/2addr v3, p3
mul-float v2, v2, v3
iget-object v3, p2, Landroid/support/v4/graphics/PathParser$PathDataNode;->mParams:[F
aget v3, v3, v0
mul-float v3, v3, p3
add-float/2addr v2, v3
aput v2, v1, v0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return-void
.end method