DragDamping.smali
.class public Lcom/censivn/C3DEngine/utils/DragDamping;
.super Ljava/lang/Object;
.source "DragDamping.java"
# static fields
.field public static final ANIMATION_DAMPING_SPEED:F = 0.15f
.field public static final ANIMATION_DRAGING_SPEED:F = 0.7f
.field public static final ANIMATION_RETURN_SPEED:F = 0.2f
.field public static final ANIMATION_STANDARD_SPEED:F = 0.1f
.field public static final VALUE_DISTANCE_CRITICAL:F = 0.15f
.field public static final VALUE_MAX_OFFSET:F
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 14
const/high16 v0, 0x43960000 # 300.0f
invoke-static {v0}, Lcom/censivn/C3DEngine/core/CanvasInfo;->xxhdpi(F)F
move-result v0
sput v0, Lcom/censivn/C3DEngine/utils/DragDamping;->VALUE_MAX_OFFSET:F
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getFlingTargetX(FF)F
.registers 3
.prologue
.line 57
const/high16 v0, 0x40a00000 # 5.0f
div-float v0, p1, v0
add-float/2addr v0, p0
return v0
.end method
.method public static getFlingTargetY(FF)F
.registers 3
.prologue
.line 63
const/high16 v0, 0x40400000 # 3.0f
div-float v0, p1, v0
sub-float v0, p0, v0
return v0
.end method
.method public static getTargetValue(FFF)F
.registers 4
.prologue
.line 18
sget v0, Lcom/censivn/C3DEngine/utils/DragDamping;->VALUE_MAX_OFFSET:F
invoke-static {p0, p1, p2, v0}, Lcom/censivn/C3DEngine/utils/DragDamping;->getTargetValue(FFFF)F
move-result v0
return v0
.end method
.method public static getTargetValue(FFFF)F
.registers 14
.prologue
const-wide v8, 0x400921fb54442d18L # Math.PI
const-wide/high16 v6, 0x4000000000000000L # 2.0
const/high16 v0, 0x3f800000 # 1.0f
.line 24
const/4 v1, 0x0
cmpl-float v1, p3, v1
if-eqz v1, :cond_28
.line 26
cmpl-float v1, p0, p1
if-lez v1, :cond_2b
.line 28
sub-float v1, p0, p1
.line 30
const/high16 v2, 0x40800000 # 4.0f
mul-float/2addr v2, p3
div-float/2addr v1, v2
.line 32
cmpl-float v2, v1, v0
if-lez v2, :cond_29
.line 34
:goto_1c
float-to-double v2, p1
float-to-double v4, p3
float-to-double v0, v0
mul-double/2addr v0, v8
div-double/2addr v0, v6
invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
move-result-wide v0
mul-double/2addr v0, v4
add-double/2addr v0, v2
double-to-float p0, v0
.line 50
:cond_28
:goto_28
return p0
:cond_29
move v0, v1
.line 32
goto :goto_1c
.line 36
:cond_2b
cmpg-float v1, p0, p2
if-gez v1, :cond_28
.line 38
sub-float v1, p2, p0
.line 40
const/high16 v2, 0x40000000 # 2.0f
mul-float/2addr v2, p3
div-float/2addr v1, v2
.line 42
cmpl-float v2, v1, v0
if-lez v2, :cond_47
.line 44
:goto_39
float-to-double v2, p2
float-to-double v4, p3
float-to-double v0, v0
mul-double/2addr v0, v8
div-double/2addr v0, v6
invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
move-result-wide v0
mul-double/2addr v0, v4
sub-double v0, v2, v0
double-to-float p0, v0
goto :goto_28
:cond_47
move v0, v1
.line 42
goto :goto_39
.end method