VelocityMatrix.smali

.class public Landroidx/constraintlayout/motion/utils/VelocityMatrix;
.super Ljava/lang/Object;
.source "VelocityMatrix.java"


# static fields
.field private static TAG:Ljava/lang/String;


# instance fields
.field mDRotate:F

.field mDScaleX:F

.field mDScaleY:F

.field mDTranslateX:F

.field mDTranslateY:F

.field mRotate:F


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 29
    const-string v0, "VelocityMatrix"

    sput-object v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->TAG:Ljava/lang/String;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    .line 26
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public applyTransform(FFII[F)V
    .registers 22
    .param p1, "locationX"    # F
    .param p2, "locationY"    # F
    .param p3, "width"    # I
    .param p4, "height"    # I
    .param p5, "mAnchorDpDt"    # [F

    .line 102
    move-object/from16 v0, p0

    move/from16 v1, p3

    move/from16 v2, p4

    const/4 v3, 0x0

    aget v4, p5, v3

    .line 103
    .local v4, "dx":F
    const/4 v5, 0x1

    aget v6, p5, v5

    .line 104
    .local v6, "dy":F
    const/high16 v7, 0x3f000000    # 0.5f

    sub-float v8, p1, v7

    const/high16 v9, 0x40000000    # 2.0f

    mul-float v8, v8, v9

    .line 105
    .local v8, "offx":F
    sub-float v7, p2, v7

    mul-float v7, v7, v9

    .line 106
    .local v7, "offy":F
    iget v9, v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateX:F

    add-float/2addr v4, v9

    .line 107
    iget v9, v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateY:F

    add-float/2addr v6, v9

    .line 108
    iget v9, v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleX:F

    mul-float v9, v9, v8

    add-float/2addr v4, v9

    .line 109
    iget v9, v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleY:F

    mul-float v9, v9, v7

    add-float/2addr v6, v9

    .line 110
    iget v9, v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mRotate:F

    float-to-double v9, v9

    invoke-static {v9, v10}, Ljava/lang/Math;->toRadians(D)D

    move-result-wide v9

    double-to-float v9, v9

    .line 111
    .local v9, "r":F
    iget v10, v0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDRotate:F

    float-to-double v10, v10

    invoke-static {v10, v11}, Ljava/lang/Math;->toRadians(D)D

    move-result-wide v10

    double-to-float v10, v10

    .line 112
    .local v10, "dr":F
    neg-int v11, v1

    int-to-float v11, v11

    mul-float v11, v11, v8

    float-to-double v11, v11

    float-to-double v13, v9

    invoke-static {v13, v14}, Ljava/lang/Math;->sin(D)D

    move-result-wide v13

    invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v11, v11, v13

    int-to-float v13, v2

    mul-float v13, v13, v7

    float-to-double v13, v13

    move v15, v6

    .end local v6    # "dy":F
    .local v15, "dy":F
    float-to-double v5, v9

    invoke-static {v5, v6}, Ljava/lang/Math;->cos(D)D

    move-result-wide v5

    invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v13, v13, v5

    sub-double/2addr v11, v13

    double-to-float v5, v11

    mul-float v5, v5, v10

    add-float/2addr v4, v5

    .line 113
    int-to-float v5, v1

    mul-float v5, v5, v8

    float-to-double v5, v5

    float-to-double v11, v9

    invoke-static {v11, v12}, Ljava/lang/Math;->cos(D)D

    move-result-wide v11

    invoke-static {v5, v6}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v5, v5, v11

    int-to-float v11, v2

    mul-float v11, v11, v7

    float-to-double v11, v11

    float-to-double v13, v9

    invoke-static {v13, v14}, Ljava/lang/Math;->sin(D)D

    move-result-wide v13

    invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v11, v11, v13

    sub-double/2addr v5, v11

    double-to-float v5, v5

    mul-float v5, v5, v10

    add-float v6, v15, v5

    .line 114
    .end local v15    # "dy":F
    .restart local v6    # "dy":F
    aput v4, p5, v3

    .line 115
    const/4 v3, 0x1

    aput v6, p5, v3

    .line 116
    return-void
.end method

.method public clear()V
    .registers 2

    .line 31
    const/4 v0, 0x0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDRotate:F

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateY:F

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateX:F

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleY:F

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleX:F

    .line 32
    return-void
.end method

.method public setRotationVelocity(Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;F)V
    .registers 4
    .param p1, "osc_r"    # Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;
    .param p2, "position"    # F

    .line 62
    if-eqz p1, :cond_8

    .line 63
    invoke-virtual {p1, p2}, Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDRotate:F

    .line 65
    :cond_8
    return-void
.end method

.method public setRotationVelocity(Landroidx/constraintlayout/motion/widget/SplineSet;F)V
    .registers 4
    .param p1, "rot"    # Landroidx/constraintlayout/motion/widget/SplineSet;
    .param p2, "position"    # F

    .line 35
    if-eqz p1, :cond_e

    .line 36
    invoke-virtual {p1, p2}, Landroidx/constraintlayout/motion/widget/SplineSet;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDRotate:F

    .line 37
    invoke-virtual {p1, p2}, Landroidx/constraintlayout/motion/widget/SplineSet;->get(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mRotate:F

    .line 39
    :cond_e
    return-void
.end method

.method public setScaleVelocity(Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;F)V
    .registers 5
    .param p1, "osc_sx"    # Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;
    .param p2, "osc_sy"    # Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;
    .param p3, "position"    # F

    .line 80
    if-nez p1, :cond_5

    if-nez p2, :cond_5

    .line 81
    return-void

    .line 83
    :cond_5
    if-nez p1, :cond_d

    .line 84
    invoke-virtual {p1, p3}, Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleX:F

    .line 86
    :cond_d
    if-nez p2, :cond_15

    .line 87
    invoke-virtual {p2, p3}, Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleY:F

    .line 89
    :cond_15
    return-void
.end method

.method public setScaleVelocity(Landroidx/constraintlayout/motion/widget/SplineSet;Landroidx/constraintlayout/motion/widget/SplineSet;F)V
    .registers 5
    .param p1, "scale_x"    # Landroidx/constraintlayout/motion/widget/SplineSet;
    .param p2, "scale_y"    # Landroidx/constraintlayout/motion/widget/SplineSet;
    .param p3, "position"    # F

    .line 53
    if-eqz p1, :cond_8

    .line 54
    invoke-virtual {p1, p3}, Landroidx/constraintlayout/motion/widget/SplineSet;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleX:F

    .line 56
    :cond_8
    if-eqz p2, :cond_10

    .line 57
    invoke-virtual {p2, p3}, Landroidx/constraintlayout/motion/widget/SplineSet;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDScaleY:F

    .line 59
    :cond_10
    return-void
.end method

.method public setTranslationVelocity(Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;F)V
    .registers 5
    .param p1, "osc_x"    # Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;
    .param p2, "osc_y"    # Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;
    .param p3, "position"    # F

    .line 69
    if-eqz p1, :cond_8

    .line 70
    invoke-virtual {p1, p3}, Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateX:F

    .line 73
    :cond_8
    if-eqz p2, :cond_10

    .line 74
    invoke-virtual {p2, p3}, Landroidx/constraintlayout/motion/widget/KeyCycleOscillator;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateY:F

    .line 76
    :cond_10
    return-void
.end method

.method public setTranslationVelocity(Landroidx/constraintlayout/motion/widget/SplineSet;Landroidx/constraintlayout/motion/widget/SplineSet;F)V
    .registers 5
    .param p1, "trans_x"    # Landroidx/constraintlayout/motion/widget/SplineSet;
    .param p2, "trans_y"    # Landroidx/constraintlayout/motion/widget/SplineSet;
    .param p3, "position"    # F

    .line 43
    if-eqz p1, :cond_8

    .line 44
    invoke-virtual {p1, p3}, Landroidx/constraintlayout/motion/widget/SplineSet;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateX:F

    .line 46
    :cond_8
    if-eqz p2, :cond_10

    .line 47
    invoke-virtual {p2, p3}, Landroidx/constraintlayout/motion/widget/SplineSet;->getSlope(F)F

    move-result v0

    iput v0, p0, Landroidx/constraintlayout/motion/utils/VelocityMatrix;->mDTranslateY:F

    .line 49
    :cond_10
    return-void
.end method