3637 lines
71 KiB
Smali
3637 lines
71 KiB
Smali
.class public Lcom/badlogic/gdx/math/Quaternion;
|
|
.super Ljava/lang/Object;
|
|
.source "Quaternion.java"
|
|
|
|
# interfaces
|
|
.implements Ljava/io/Serializable;
|
|
|
|
|
|
# static fields
|
|
.field private static final serialVersionUID:J = -0x6a54731e78ad5e10L
|
|
|
|
.field private static tmp1:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.field private static tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
|
|
# instance fields
|
|
.field public w:F
|
|
|
|
.field public x:F
|
|
|
|
.field public y:F
|
|
|
|
.field public z:F
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 2
|
|
|
|
.line 30
|
|
new-instance v0, Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
invoke-direct {v0, v1, v1, v1, v1}, Lcom/badlogic/gdx/math/Quaternion;-><init>(FFFF)V
|
|
|
|
sput-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp1:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.line 31
|
|
new-instance v0, Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
invoke-direct {v0, v1, v1, v1, v1}, Lcom/badlogic/gdx/math/Quaternion;-><init>(FFFF)V
|
|
|
|
sput-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>()V
|
|
.locals 0
|
|
|
|
.line 47
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 48
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->idt()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(FFFF)V
|
|
.locals 0
|
|
|
|
.line 43
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 44
|
|
invoke-virtual {p0, p1, p2, p3, p4}, Lcom/badlogic/gdx/math/Quaternion;->set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Lcom/badlogic/gdx/math/Quaternion;)V
|
|
.locals 0
|
|
|
|
.line 54
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 55
|
|
invoke-virtual {p0, p1}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Lcom/badlogic/gdx/math/Vector3;F)V
|
|
.locals 0
|
|
|
|
.line 62
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 63
|
|
invoke-virtual {p0, p1, p2}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Vector3;F)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static final dot(FFFFFFFF)F
|
|
.locals 0
|
|
|
|
mul-float p0, p0, p4
|
|
|
|
mul-float p1, p1, p5
|
|
|
|
add-float/2addr p0, p1
|
|
|
|
mul-float p2, p2, p6
|
|
|
|
add-float/2addr p0, p2
|
|
|
|
mul-float p3, p3, p7
|
|
|
|
add-float/2addr p0, p3
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static final len(FFFF)F
|
|
.locals 0
|
|
|
|
mul-float p0, p0, p0
|
|
|
|
mul-float p1, p1, p1
|
|
|
|
add-float/2addr p0, p1
|
|
|
|
mul-float p2, p2, p2
|
|
|
|
add-float/2addr p0, p2
|
|
|
|
mul-float p3, p3, p3
|
|
|
|
add-float/2addr p0, p3
|
|
|
|
float-to-double p0, p0
|
|
|
|
.line 103
|
|
invoke-static {p0, p1}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide p0
|
|
|
|
double-to-float p0, p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static final len2(FFFF)F
|
|
.locals 0
|
|
|
|
mul-float p0, p0, p0
|
|
|
|
mul-float p1, p1, p1
|
|
|
|
add-float/2addr p0, p1
|
|
|
|
mul-float p2, p2, p2
|
|
|
|
add-float/2addr p0, p2
|
|
|
|
mul-float p3, p3, p3
|
|
|
|
add-float/2addr p0, p3
|
|
|
|
return p0
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public add(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
.line 328
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 329
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
add-float/2addr p1, p2
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 330
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
add-float/2addr p1, p3
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 331
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
add-float/2addr p1, p4
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public add(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 2
|
|
|
|
.line 319
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 320
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 321
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 322
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public conjugate()Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
.line 226
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
neg-float v0, v0
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 227
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
neg-float v0, v0
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 228
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
neg-float v0, v0
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public cpy()Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
.line 98
|
|
new-instance v0, Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
invoke-direct {v0, p0}, Lcom/badlogic/gdx/math/Quaternion;-><init>(Lcom/badlogic/gdx/math/Quaternion;)V
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public dot(FFFF)F
|
|
.locals 1
|
|
|
|
.line 735
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, p1
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float p1, p1, p2
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float p1, p1, p3
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float p1, p1, p4
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public dot(Lcom/badlogic/gdx/math/Quaternion;)F
|
|
.locals 3
|
|
|
|
.line 725
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, p1
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public equals(Ljava/lang/Object;)Z
|
|
.locals 4
|
|
|
|
const/4 v0, 0x1
|
|
|
|
if-ne p0, p1, :cond_0
|
|
|
|
return v0
|
|
|
|
:cond_0
|
|
const/4 v1, 0x0
|
|
|
|
if-nez p1, :cond_1
|
|
|
|
return v1
|
|
|
|
.line 696
|
|
:cond_1
|
|
instance-of v2, p1, Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
return v1
|
|
|
|
.line 699
|
|
:cond_2
|
|
check-cast p1, Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.line 700
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-static {v2}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v2
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-static {v3}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v3
|
|
|
|
if-ne v2, v3, :cond_3
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 701
|
|
invoke-static {v2}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v2
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
invoke-static {v3}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v3
|
|
|
|
if-ne v2, v3, :cond_3
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 702
|
|
invoke-static {v2}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v2
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
invoke-static {v3}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v3
|
|
|
|
if-ne v2, v3, :cond_3
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 703
|
|
invoke-static {v2}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v2
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
invoke-static {p1}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result p1
|
|
|
|
if-ne v2, p1, :cond_3
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public exp(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 10
|
|
|
|
.line 651
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->len()F
|
|
|
|
move-result v0
|
|
|
|
float-to-double v1, v0
|
|
|
|
float-to-double v3, p1
|
|
|
|
.line 652
|
|
invoke-static {v1, v2, v3, v4}, Ljava/lang/Math;->pow(DD)D
|
|
|
|
move-result-wide v3
|
|
|
|
double-to-float v3, v3
|
|
|
|
.line 655
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
div-float/2addr v4, v0
|
|
|
|
float-to-double v4, v4
|
|
|
|
invoke-static {v4, v5}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide v4
|
|
|
|
double-to-float v4, v4
|
|
|
|
.line 659
|
|
invoke-static {v4}, Ljava/lang/Math;->abs(F)F
|
|
|
|
move-result v5
|
|
|
|
float-to-double v5, v5
|
|
|
|
const-wide v7, 0x3f50624dd2f1a9fcL # 0.001
|
|
|
|
cmpg-double v9, v5, v7
|
|
|
|
if-gez v9, :cond_0
|
|
|
|
mul-float v1, v3, p1
|
|
|
|
div-float/2addr v1, v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
float-to-double v5, v3
|
|
|
|
mul-float v0, p1, v4
|
|
|
|
float-to-double v7, v0
|
|
|
|
.line 663
|
|
invoke-static {v7, v8}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v7
|
|
|
|
invoke-static {v5, v6}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
mul-double v5, v5, v7
|
|
|
|
float-to-double v7, v4
|
|
|
|
invoke-static {v7, v8}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v7
|
|
|
|
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
mul-double v1, v1, v7
|
|
|
|
div-double/2addr v5, v1
|
|
|
|
double-to-float v1, v5
|
|
|
|
:goto_0
|
|
float-to-double v2, v3
|
|
|
|
mul-float p1, p1, v4
|
|
|
|
float-to-double v4, p1
|
|
|
|
.line 666
|
|
invoke-static {v4, v5}, Ljava/lang/Math;->cos(D)D
|
|
|
|
move-result-wide v4
|
|
|
|
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
mul-double v2, v2, v4
|
|
|
|
double-to-float p1, v2
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
.line 667
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float p1, p1, v1
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 668
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float p1, p1, v1
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 669
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float p1, p1, v1
|
|
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 672
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public getAngle()F
|
|
.locals 2
|
|
|
|
.line 803
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getAngleRad()F
|
|
|
|
move-result v0
|
|
|
|
const v1, 0x42652ee0
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getAngleAround(FFF)F
|
|
.locals 0
|
|
|
|
.line 863
|
|
invoke-virtual {p0, p1, p2, p3}, Lcom/badlogic/gdx/math/Quaternion;->getAngleAroundRad(FFF)F
|
|
|
|
move-result p1
|
|
|
|
const p2, 0x42652ee0
|
|
|
|
mul-float p1, p1, p2
|
|
|
|
return p1
|
|
.end method
|
|
|
|
.method public getAngleAround(Lcom/badlogic/gdx/math/Vector3;)F
|
|
.locals 2
|
|
|
|
.line 870
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
invoke-virtual {p0, v0, v1, p1}, Lcom/badlogic/gdx/math/Quaternion;->getAngleAround(FFF)F
|
|
|
|
move-result p1
|
|
|
|
return p1
|
|
.end method
|
|
|
|
.method public getAngleAroundRad(FFF)F
|
|
.locals 6
|
|
|
|
.line 844
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
move v3, p1
|
|
|
|
move v4, p2
|
|
|
|
move v5, p3
|
|
|
|
invoke-static/range {v0 .. v5}, Lcom/badlogic/gdx/math/Vector3;->dot(FFFFFF)F
|
|
|
|
move-result v0
|
|
|
|
mul-float p1, p1, v0
|
|
|
|
mul-float p2, p2, v0
|
|
|
|
mul-float p3, p3, v0
|
|
|
|
.line 845
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-static {p1, p2, p3, v1}, Lcom/badlogic/gdx/math/Quaternion;->len2(FFFF)F
|
|
|
|
move-result p1
|
|
|
|
.line 846
|
|
invoke-static {p1}, Lcom/badlogic/gdx/math/MathUtils;->f(F)Z
|
|
|
|
move-result p2
|
|
|
|
const/4 p3, 0x0
|
|
|
|
if-eqz p2, :cond_0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_0
|
|
const-wide/high16 v1, 0x4000000000000000L # 2.0
|
|
|
|
cmpg-float p2, v0, p3
|
|
|
|
if-gez p2, :cond_1
|
|
|
|
iget p2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
neg-float p2, p2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
iget p2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
:goto_0
|
|
float-to-double p2, p2
|
|
|
|
float-to-double v3, p1
|
|
|
|
.line 847
|
|
invoke-static {v3, v4}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide v3
|
|
|
|
invoke-static {p2, p3}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
div-double/2addr p2, v3
|
|
|
|
double-to-float p1, p2
|
|
|
|
const/high16 p2, -0x40800000 # -1.0f
|
|
|
|
const/high16 p3, 0x3f800000 # 1.0f
|
|
|
|
.line 846
|
|
invoke-static {p1, p2, p3}, Lcom/badlogic/gdx/math/MathUtils;->b(FFF)F
|
|
|
|
move-result p1
|
|
|
|
float-to-double p1, p1
|
|
|
|
invoke-static {p1, p2}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide p1
|
|
|
|
mul-double p1, p1, v1
|
|
|
|
double-to-float p3, p1
|
|
|
|
:goto_1
|
|
return p3
|
|
.end method
|
|
|
|
.method public getAngleAroundRad(Lcom/badlogic/gdx/math/Vector3;)F
|
|
.locals 2
|
|
|
|
.line 854
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
invoke-virtual {p0, v0, v1, p1}, Lcom/badlogic/gdx/math/Quaternion;->getAngleAroundRad(FFF)F
|
|
|
|
move-result p1
|
|
|
|
return p1
|
|
.end method
|
|
|
|
.method public getAngleRad()F
|
|
.locals 4
|
|
|
|
.line 796
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
cmpl-float v0, v0, v1
|
|
|
|
if-lez v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->len()F
|
|
|
|
move-result v1
|
|
|
|
div-float/2addr v0, v1
|
|
|
|
:goto_0
|
|
float-to-double v0, v0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_0
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
goto :goto_0
|
|
|
|
:goto_1
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
const-wide/high16 v2, 0x4000000000000000L # 2.0
|
|
|
|
mul-double v0, v0, v2
|
|
|
|
double-to-float v0, v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getAxisAngle(Lcom/badlogic/gdx/math/Vector3;)F
|
|
.locals 1
|
|
|
|
.line 760
|
|
invoke-virtual {p0, p1}, Lcom/badlogic/gdx/math/Quaternion;->getAxisAngleRad(Lcom/badlogic/gdx/math/Vector3;)F
|
|
|
|
move-result p1
|
|
|
|
const v0, 0x42652ee0
|
|
|
|
mul-float p1, p1, v0
|
|
|
|
return p1
|
|
.end method
|
|
|
|
.method public getAxisAngleRad(Lcom/badlogic/gdx/math/Vector3;)F
|
|
.locals 6
|
|
|
|
.line 774
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
cmpl-float v0, v0, v1
|
|
|
|
if-lez v0, :cond_0
|
|
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
:cond_0
|
|
const-wide/high16 v2, 0x4000000000000000L # 2.0
|
|
|
|
.line 775
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
float-to-double v4, v0
|
|
|
|
invoke-static {v4, v5}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide v4
|
|
|
|
mul-double v4, v4, v2
|
|
|
|
double-to-float v0, v4
|
|
|
|
.line 776
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
float-to-double v1, v1
|
|
|
|
invoke-static {v1, v2}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide v1
|
|
|
|
const-wide v3, 0x3eb0c6f7a0000000L # 9.999999974752427E-7
|
|
|
|
cmpg-double v5, v1, v3
|
|
|
|
if-gez v5, :cond_1
|
|
|
|
.line 779
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iput v1, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
.line 780
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iput v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
.line 781
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iput v1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
goto :goto_0
|
|
|
|
.line 783
|
|
:cond_1
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
float-to-double v3, v3
|
|
|
|
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
div-double/2addr v3, v1
|
|
|
|
double-to-float v3, v3
|
|
|
|
iput v3, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
.line 784
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
float-to-double v3, v3
|
|
|
|
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
div-double/2addr v3, v1
|
|
|
|
double-to-float v3, v3
|
|
|
|
iput v3, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
.line 785
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
float-to-double v3, v3
|
|
|
|
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
div-double/2addr v3, v1
|
|
|
|
double-to-float v1, v3
|
|
|
|
iput v1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public getGimbalPole()I
|
|
.locals 3
|
|
|
|
.line 156
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
const v1, 0x3eff7cee # 0.499f
|
|
|
|
cmpl-float v1, v0, v1
|
|
|
|
if-lez v1, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const v1, -0x41008312 # -0.499f
|
|
|
|
cmpg-float v0, v0, v1
|
|
|
|
if-gez v0, :cond_1
|
|
|
|
const/4 v0, -0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public getPitch()F
|
|
.locals 2
|
|
|
|
.line 184
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getPitchRad()F
|
|
|
|
move-result v0
|
|
|
|
const v1, 0x42652ee0
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getPitchRad()F
|
|
.locals 4
|
|
|
|
.line 177
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getGimbalPole()I
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/high16 v0, 0x40000000 # 2.0f
|
|
|
|
.line 178
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
mul-float v1, v1, v0
|
|
|
|
const/high16 v0, -0x40800000 # -1.0f
|
|
|
|
const/high16 v2, 0x3f800000 # 1.0f
|
|
|
|
invoke-static {v1, v0, v2}, Lcom/badlogic/gdx/math/MathUtils;->b(FFF)F
|
|
|
|
move-result v0
|
|
|
|
float-to-double v0, v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->asin(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
double-to-float v0, v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
int-to-float v0, v0
|
|
|
|
const v1, 0x40490fdb # (float)Math.PI
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
const/high16 v1, 0x3f000000 # 0.5f
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public getRoll()F
|
|
.locals 2
|
|
|
|
.line 171
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getRollRad()F
|
|
|
|
move-result v0
|
|
|
|
const v1, 0x42652ee0
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getRollRad()F
|
|
.locals 6
|
|
|
|
.line 163
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getGimbalPole()I
|
|
|
|
move-result v0
|
|
|
|
const/high16 v1, 0x40000000 # 2.0f
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 164
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v0, v0, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
add-float/2addr v0, v2
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
const/high16 v2, 0x3f800000 # 1.0f
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v5, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
add-float/2addr v3, v4
|
|
|
|
mul-float v3, v3, v1
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
invoke-static {v0, v2}, Lcom/badlogic/gdx/math/MathUtils;->a(FF)F
|
|
|
|
move-result v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
int-to-float v0, v0
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
.line 165
|
|
invoke-static {v1, v2}, Lcom/badlogic/gdx/math/MathUtils;->a(FF)F
|
|
|
|
move-result v1
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public getSwingTwist(FFFLcom/badlogic/gdx/math/Quaternion;Lcom/badlogic/gdx/math/Quaternion;)V
|
|
.locals 6
|
|
|
|
.line 819
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
move v3, p1
|
|
|
|
move v4, p2
|
|
|
|
move v5, p3
|
|
|
|
invoke-static/range {v0 .. v5}, Lcom/badlogic/gdx/math/Vector3;->dot(FFFFFF)F
|
|
|
|
move-result v0
|
|
|
|
mul-float p1, p1, v0
|
|
|
|
mul-float p2, p2, v0
|
|
|
|
mul-float p3, p3, v0
|
|
|
|
.line 820
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-virtual {p5, p1, p2, p3, v1}, Lcom/badlogic/gdx/math/Quaternion;->set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Lcom/badlogic/gdx/math/Quaternion;->nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
const/4 p1, 0x0
|
|
|
|
cmpg-float p1, v0, p1
|
|
|
|
if-gez p1, :cond_0
|
|
|
|
const/high16 p1, -0x40800000 # -1.0f
|
|
|
|
.line 821
|
|
invoke-virtual {p5, p1}, Lcom/badlogic/gdx/math/Quaternion;->mul(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.line 822
|
|
:cond_0
|
|
invoke-virtual {p4, p5}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Lcom/badlogic/gdx/math/Quaternion;->conjugate()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p0}, Lcom/badlogic/gdx/math/Quaternion;->mulLeft(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public getSwingTwist(Lcom/badlogic/gdx/math/Vector3;Lcom/badlogic/gdx/math/Quaternion;Lcom/badlogic/gdx/math/Quaternion;)V
|
|
.locals 6
|
|
|
|
.line 835
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
move-object v0, p0
|
|
|
|
move-object v4, p2
|
|
|
|
move-object v5, p3
|
|
|
|
invoke-virtual/range {v0 .. v5}, Lcom/badlogic/gdx/math/Quaternion;->getSwingTwist(FFFLcom/badlogic/gdx/math/Quaternion;Lcom/badlogic/gdx/math/Quaternion;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public getYaw()F
|
|
.locals 2
|
|
|
|
.line 196
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getYawRad()F
|
|
|
|
move-result v0
|
|
|
|
const v1, 0x42652ee0
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getYawRad()F
|
|
.locals 6
|
|
|
|
.line 190
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->getGimbalPole()I
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
const/high16 v1, 0x40000000 # 2.0f
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
const/high16 v2, 0x3f800000 # 1.0f
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v5, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
add-float/2addr v3, v4
|
|
|
|
mul-float v3, v3, v1
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
invoke-static {v0, v2}, Lcom/badlogic/gdx/math/MathUtils;->a(FF)F
|
|
|
|
move-result v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public hashCode()I
|
|
.locals 3
|
|
|
|
.line 681
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-static {v0}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x1f
|
|
|
|
add-int/2addr v0, v1
|
|
|
|
mul-int/lit8 v0, v0, 0x1f
|
|
|
|
.line 682
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
invoke-static {v2}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v2
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
mul-int/lit8 v0, v0, 0x1f
|
|
|
|
.line 683
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
invoke-static {v2}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v2
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
mul-int/lit8 v0, v0, 0x1f
|
|
|
|
.line 684
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
invoke-static {v1}, Lcom/badlogic/gdx/utils/NumberUtils;->b(F)I
|
|
|
|
move-result v1
|
|
|
|
add-int/2addr v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public idt()Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 2
|
|
|
|
const/4 v0, 0x0
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
.line 372
|
|
invoke-virtual {p0, v0, v0, v0, v1}, Lcom/badlogic/gdx/math/Quaternion;->set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public isIdentity()Z
|
|
.locals 2
|
|
|
|
.line 377
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
invoke-static {v0}, Lcom/badlogic/gdx/math/MathUtils;->f(F)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
invoke-static {v0}, Lcom/badlogic/gdx/math/MathUtils;->f(F)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
invoke-static {v0}, Lcom/badlogic/gdx/math/MathUtils;->f(F)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
invoke-static {v0, v1}, Lcom/badlogic/gdx/math/MathUtils;->e(FF)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
return v0
|
|
.end method
|
|
|
|
.method public isIdentity(F)Z
|
|
.locals 2
|
|
|
|
.line 382
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
invoke-static {v0, p1}, Lcom/badlogic/gdx/math/MathUtils;->d(FF)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
invoke-static {v0, p1}, Lcom/badlogic/gdx/math/MathUtils;->d(FF)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
invoke-static {v0, p1}, Lcom/badlogic/gdx/math/MathUtils;->d(FF)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
.line 383
|
|
invoke-static {v0, v1, p1}, Lcom/badlogic/gdx/math/MathUtils;->c(FFF)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
const/4 p1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p1, 0x0
|
|
|
|
:goto_0
|
|
return p1
|
|
.end method
|
|
|
|
.method public len()F
|
|
.locals 3
|
|
|
|
.line 108
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
float-to-double v0, v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
double-to-float v0, v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public len2()F
|
|
.locals 3
|
|
|
|
.line 205
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public mul(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
.line 742
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, p1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 743
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v0, v0, p1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 744
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v0, v0, p1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 745
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v0, v0, p1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public mul(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 4
|
|
|
|
.line 271
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v0, v0, p1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v1, v1, p4
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, p3
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, p2
|
|
|
|
sub-float/2addr v0, v1
|
|
|
|
.line 272
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, p2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v2, v2, p4
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, p1
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v2, v2, p3
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
.line 273
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v2, v2, p3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v3, v3, p4
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v3, v3, p2
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v3, v3, p1
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
.line 274
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, p4
|
|
|
|
iget p4, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float p4, p4, p1
|
|
|
|
sub-float/2addr v3, p4
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float p1, p1, p2
|
|
|
|
sub-float/2addr v3, p1
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float p1, p1, p3
|
|
|
|
sub-float/2addr v3, p1
|
|
|
|
.line 275
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 276
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 277
|
|
iput v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 278
|
|
iput v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public mul(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 6
|
|
|
|
.line 252
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
sub-float/2addr v0, v1
|
|
|
|
.line 253
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
.line 254
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
.line 255
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v5, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
sub-float/2addr v3, v4
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v5, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
sub-float/2addr v3, v4
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v4, v4, p1
|
|
|
|
sub-float/2addr v3, v4
|
|
|
|
.line 256
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 257
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 258
|
|
iput v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 259
|
|
iput v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public mulLeft(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 4
|
|
|
|
.line 306
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, p4
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, p1
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, p2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, p3
|
|
|
|
sub-float/2addr v0, v1
|
|
|
|
.line 307
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, p4
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v2, v2, p2
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v2, v2, p3
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, p1
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
.line 308
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, p4
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, p3
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v3, v3, p1
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v3, v3, p2
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
.line 309
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float p4, p4, v3
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float p1, p1, v3
|
|
|
|
sub-float/2addr p4, p1
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float p2, p2, p1
|
|
|
|
sub-float/2addr p4, p2
|
|
|
|
iget p1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float p3, p3, p1
|
|
|
|
sub-float/2addr p4, p3
|
|
|
|
.line 310
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 311
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 312
|
|
iput v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 313
|
|
iput p4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public mulLeft(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 6
|
|
|
|
.line 287
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
sub-float/2addr v0, v1
|
|
|
|
.line 288
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
add-float/2addr v1, v2
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
.line 289
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
add-float/2addr v2, v3
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
.line 290
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v5, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
sub-float/2addr v3, v4
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v5, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
sub-float/2addr v3, v4
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float p1, p1, v4
|
|
|
|
sub-float/2addr v3, p1
|
|
|
|
.line 291
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 292
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 293
|
|
iput v2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 294
|
|
iput v3, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 2
|
|
|
|
.line 211
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->len2()F
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
cmpl-float v1, v0, v1
|
|
|
|
if-eqz v1, :cond_0
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
.line 212
|
|
invoke-static {v0, v1}, Lcom/badlogic/gdx/math/MathUtils;->e(FF)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
float-to-double v0, v0
|
|
|
|
.line 213
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
double-to-float v0, v0
|
|
|
|
.line 214
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
div-float/2addr v1, v0
|
|
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
.line 215
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
div-float/2addr v1, v0
|
|
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 216
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
div-float/2addr v1, v0
|
|
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 217
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
div-float/2addr v1, v0
|
|
|
|
iput v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
:cond_0
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 0
|
|
|
|
.line 73
|
|
iput p1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 74
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 75
|
|
iput p3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 76
|
|
iput p4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 3
|
|
|
|
.line 84
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-virtual {p0, v0, v1, v2, p1}, Lcom/badlogic/gdx/math/Quaternion;->set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public set(Lcom/badlogic/gdx/math/Vector3;F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 2
|
|
|
|
.line 93
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
invoke-virtual {p0, v0, v1, p1, p2}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxis(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setEulerAngles(FFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
const v0, 0x3c8efa35
|
|
|
|
mul-float p1, p1, v0
|
|
|
|
mul-float p2, p2, v0
|
|
|
|
mul-float p3, p3, v0
|
|
|
|
.line 122
|
|
invoke-virtual {p0, p1, p2, p3}, Lcom/badlogic/gdx/math/Quaternion;->setEulerAnglesRad(FFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setEulerAnglesRad(FFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 7
|
|
|
|
const/high16 v0, 0x3f000000 # 0.5f
|
|
|
|
mul-float p3, p3, v0
|
|
|
|
float-to-double v1, p3
|
|
|
|
.line 133
|
|
invoke-static {v1, v2}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v3
|
|
|
|
double-to-float p3, v3
|
|
|
|
.line 134
|
|
invoke-static {v1, v2}, Ljava/lang/Math;->cos(D)D
|
|
|
|
move-result-wide v1
|
|
|
|
double-to-float v1, v1
|
|
|
|
mul-float p2, p2, v0
|
|
|
|
float-to-double v2, p2
|
|
|
|
.line 136
|
|
invoke-static {v2, v3}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v4
|
|
|
|
double-to-float p2, v4
|
|
|
|
.line 137
|
|
invoke-static {v2, v3}, Ljava/lang/Math;->cos(D)D
|
|
|
|
move-result-wide v2
|
|
|
|
double-to-float v2, v2
|
|
|
|
mul-float p1, p1, v0
|
|
|
|
float-to-double v3, p1
|
|
|
|
.line 139
|
|
invoke-static {v3, v4}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v5
|
|
|
|
double-to-float p1, v5
|
|
|
|
.line 140
|
|
invoke-static {v3, v4}, Ljava/lang/Math;->cos(D)D
|
|
|
|
move-result-wide v3
|
|
|
|
double-to-float v0, v3
|
|
|
|
mul-float v3, v0, p2
|
|
|
|
mul-float v4, p1, v2
|
|
|
|
mul-float v0, v0, v2
|
|
|
|
mul-float p1, p1, p2
|
|
|
|
mul-float p2, v3, v1
|
|
|
|
mul-float v2, v4, p3
|
|
|
|
add-float/2addr p2, v2
|
|
|
|
.line 146
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v4, v4, v1
|
|
|
|
mul-float v3, v3, p3
|
|
|
|
sub-float/2addr v4, v3
|
|
|
|
.line 147
|
|
iput v4, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float p2, v0, p3
|
|
|
|
mul-float v2, p1, v1
|
|
|
|
sub-float/2addr p2, v2
|
|
|
|
.line 148
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
mul-float p1, p1, p3
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
.line 149
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public setFromAxes(FFFFFFFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 11
|
|
|
|
const/4 v1, 0x0
|
|
|
|
move-object v0, p0
|
|
|
|
move v2, p1
|
|
|
|
move v3, p2
|
|
|
|
move v4, p3
|
|
|
|
move v5, p4
|
|
|
|
move/from16 v6, p5
|
|
|
|
move/from16 v7, p6
|
|
|
|
move/from16 v8, p7
|
|
|
|
move/from16 v9, p8
|
|
|
|
move/from16 v10, p9
|
|
|
|
.line 474
|
|
invoke-virtual/range {v0 .. v10}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxes(ZFFFFFFFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public setFromAxes(ZFFFFFFFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 5
|
|
|
|
const/high16 v0, 0x3f800000 # 1.0f
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
.line 499
|
|
invoke-static {p2, p3, p4}, Lcom/badlogic/gdx/math/Vector3;->len(FFF)F
|
|
|
|
move-result p1
|
|
|
|
div-float p1, v0, p1
|
|
|
|
.line 500
|
|
invoke-static {p5, p6, p7}, Lcom/badlogic/gdx/math/Vector3;->len(FFF)F
|
|
|
|
move-result v1
|
|
|
|
div-float v1, v0, v1
|
|
|
|
.line 501
|
|
invoke-static {p8, p9, p10}, Lcom/badlogic/gdx/math/Vector3;->len(FFF)F
|
|
|
|
move-result v2
|
|
|
|
div-float v2, v0, v2
|
|
|
|
mul-float p2, p2, p1
|
|
|
|
mul-float p3, p3, p1
|
|
|
|
mul-float p4, p4, p1
|
|
|
|
mul-float p5, p5, v1
|
|
|
|
mul-float p6, p6, v1
|
|
|
|
mul-float p7, p7, v1
|
|
|
|
mul-float p8, p8, v2
|
|
|
|
mul-float p9, p9, v2
|
|
|
|
mul-float p10, p10, v2
|
|
|
|
:cond_0
|
|
add-float p1, p2, p6
|
|
|
|
add-float/2addr p1, p10
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const/high16 v2, 0x3f000000 # 0.5f
|
|
|
|
cmpl-float v1, p1, v1
|
|
|
|
if-ltz v1, :cond_1
|
|
|
|
add-float/2addr p1, v0
|
|
|
|
float-to-double p1, p1
|
|
|
|
.line 518
|
|
invoke-static {p1, p2}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide p1
|
|
|
|
double-to-float p1, p1
|
|
|
|
mul-float p2, p1, v2
|
|
|
|
.line 519
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
div-float/2addr v2, p1
|
|
|
|
sub-float/2addr p9, p7
|
|
|
|
mul-float p9, p9, v2
|
|
|
|
.line 521
|
|
iput p9, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
sub-float/2addr p4, p8
|
|
|
|
mul-float p4, p4, v2
|
|
|
|
.line 522
|
|
iput p4, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
sub-float/2addr p5, p3
|
|
|
|
mul-float p5, p5, v2
|
|
|
|
.line 523
|
|
iput p5, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_1
|
|
const-wide/high16 v0, 0x3ff0000000000000L # 1.0
|
|
|
|
cmpl-float p1, p2, p6
|
|
|
|
if-lez p1, :cond_2
|
|
|
|
cmpl-float p1, p2, p10
|
|
|
|
if-lez p1, :cond_2
|
|
|
|
float-to-double p1, p2
|
|
|
|
.line 525
|
|
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
add-double/2addr p1, v0
|
|
|
|
float-to-double v0, p6
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
sub-double/2addr p1, v0
|
|
|
|
float-to-double v0, p10
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
sub-double/2addr p1, v0
|
|
|
|
invoke-static {p1, p2}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide p1
|
|
|
|
double-to-float p1, p1
|
|
|
|
mul-float p2, p1, v2
|
|
|
|
.line 526
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
div-float/2addr v2, p1
|
|
|
|
add-float/2addr p5, p3
|
|
|
|
mul-float p5, p5, v2
|
|
|
|
.line 528
|
|
iput p5, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
add-float/2addr p4, p8
|
|
|
|
mul-float p4, p4, v2
|
|
|
|
.line 529
|
|
iput p4, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
sub-float/2addr p9, p7
|
|
|
|
mul-float p9, p9, v2
|
|
|
|
.line 530
|
|
iput p9, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
cmpl-float p1, p6, p10
|
|
|
|
if-lez p1, :cond_3
|
|
|
|
float-to-double v3, p6
|
|
|
|
.line 532
|
|
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
add-double/2addr v3, v0
|
|
|
|
float-to-double p1, p2
|
|
|
|
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
sub-double/2addr v3, p1
|
|
|
|
float-to-double p1, p10
|
|
|
|
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
sub-double/2addr v3, p1
|
|
|
|
invoke-static {v3, v4}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide p1
|
|
|
|
double-to-float p1, p1
|
|
|
|
mul-float p2, p1, v2
|
|
|
|
.line 533
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
div-float/2addr v2, p1
|
|
|
|
add-float/2addr p5, p3
|
|
|
|
mul-float p5, p5, v2
|
|
|
|
.line 535
|
|
iput p5, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
add-float/2addr p9, p7
|
|
|
|
mul-float p9, p9, v2
|
|
|
|
.line 536
|
|
iput p9, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
sub-float/2addr p4, p8
|
|
|
|
mul-float p4, p4, v2
|
|
|
|
.line 537
|
|
iput p4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
float-to-double v3, p10
|
|
|
|
.line 539
|
|
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
add-double/2addr v3, v0
|
|
|
|
float-to-double p1, p2
|
|
|
|
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
sub-double/2addr v3, p1
|
|
|
|
float-to-double p1, p6
|
|
|
|
invoke-static {p1, p2}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
sub-double/2addr v3, p1
|
|
|
|
invoke-static {v3, v4}, Ljava/lang/Math;->sqrt(D)D
|
|
|
|
move-result-wide p1
|
|
|
|
double-to-float p1, p1
|
|
|
|
mul-float p2, p1, v2
|
|
|
|
.line 540
|
|
iput p2, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
div-float/2addr v2, p1
|
|
|
|
add-float/2addr p4, p8
|
|
|
|
mul-float p4, p4, v2
|
|
|
|
.line 542
|
|
iput p4, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
add-float/2addr p9, p7
|
|
|
|
mul-float p9, p9, v2
|
|
|
|
.line 543
|
|
iput p9, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
sub-float/2addr p5, p3
|
|
|
|
mul-float p5, p5, v2
|
|
|
|
.line 544
|
|
iput p5, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
:goto_0
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public setFromAxis(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
const v0, 0x3c8efa35
|
|
|
|
mul-float p4, p4, v0
|
|
|
|
.line 412
|
|
invoke-virtual {p0, p1, p2, p3, p4}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxisRad(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromAxis(Lcom/badlogic/gdx/math/Vector3;F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 2
|
|
|
|
.line 393
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
invoke-virtual {p0, v0, v1, p1, p2}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxis(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromAxisRad(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 5
|
|
|
|
.line 422
|
|
invoke-static {p1, p2, p3}, Lcom/badlogic/gdx/math/Vector3;->len(FFF)F
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
cmpl-float v2, v0, v1
|
|
|
|
if-nez v2, :cond_0
|
|
|
|
.line 423
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->idt()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
:cond_0
|
|
const/high16 v2, 0x3f800000 # 1.0f
|
|
|
|
div-float/2addr v2, v0
|
|
|
|
const v0, 0x40c90fdb
|
|
|
|
cmpg-float v1, p4, v1
|
|
|
|
if-gez v1, :cond_1
|
|
|
|
neg-float p4, p4
|
|
|
|
rem-float/2addr p4, v0
|
|
|
|
sub-float/2addr v0, p4
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
rem-float v0, p4, v0
|
|
|
|
:goto_0
|
|
const/high16 p4, 0x40000000 # 2.0f
|
|
|
|
div-float/2addr v0, p4
|
|
|
|
float-to-double v0, v0
|
|
|
|
.line 426
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v3
|
|
|
|
double-to-float p4, v3
|
|
|
|
.line 427
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->cos(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
double-to-float v0, v0
|
|
|
|
mul-float p1, p1, v2
|
|
|
|
mul-float p1, p1, p4
|
|
|
|
mul-float p2, p2, v2
|
|
|
|
mul-float p2, p2, p4
|
|
|
|
mul-float v2, v2, p3
|
|
|
|
mul-float v2, v2, p4
|
|
|
|
.line 428
|
|
invoke-virtual {p0, p1, p2, v2, v0}, Lcom/badlogic/gdx/math/Quaternion;->set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Lcom/badlogic/gdx/math/Quaternion;->nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromAxisRad(Lcom/badlogic/gdx/math/Vector3;F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 2
|
|
|
|
.line 402
|
|
iget v0, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
invoke-virtual {p0, v0, v1, p1, p2}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxisRad(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromCross(FFFFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 3
|
|
|
|
.line 569
|
|
invoke-static/range {p1 .. p6}, Lcom/badlogic/gdx/math/Vector3;->dot(FFFFFF)F
|
|
|
|
move-result v0
|
|
|
|
const/high16 v1, -0x40800000 # -1.0f
|
|
|
|
const/high16 v2, 0x3f800000 # 1.0f
|
|
|
|
invoke-static {v0, v1, v2}, Lcom/badlogic/gdx/math/MathUtils;->b(FFF)F
|
|
|
|
move-result v0
|
|
|
|
float-to-double v0, v0
|
|
|
|
.line 570
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
double-to-float v0, v0
|
|
|
|
mul-float v1, p2, p6
|
|
|
|
mul-float v2, p3, p5
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
mul-float p3, p3, p4
|
|
|
|
mul-float p6, p6, p1
|
|
|
|
sub-float/2addr p3, p6
|
|
|
|
mul-float p1, p1, p5
|
|
|
|
mul-float p2, p2, p4
|
|
|
|
sub-float/2addr p1, p2
|
|
|
|
.line 571
|
|
invoke-virtual {p0, v1, p3, p1, v0}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxisRad(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromCross(Lcom/badlogic/gdx/math/Vector3;Lcom/badlogic/gdx/math/Vector3;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 5
|
|
|
|
.line 555
|
|
invoke-virtual {p1, p2}, Lcom/badlogic/gdx/math/Vector3;->dot(Lcom/badlogic/gdx/math/Vector3;)F
|
|
|
|
move-result v0
|
|
|
|
const/high16 v1, -0x40800000 # -1.0f
|
|
|
|
const/high16 v2, 0x3f800000 # 1.0f
|
|
|
|
invoke-static {v0, v1, v2}, Lcom/badlogic/gdx/math/MathUtils;->b(FFF)F
|
|
|
|
move-result v0
|
|
|
|
float-to-double v0, v0
|
|
|
|
.line 556
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide v0
|
|
|
|
double-to-float v0, v0
|
|
|
|
.line 557
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget v2, p2, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
iget v3, p2, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
iget v3, p2, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v4, p2, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
sub-float/2addr v2, v3
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v4, p2, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget p2, p2, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
mul-float p1, p1, p2
|
|
|
|
sub-float/2addr v3, p1
|
|
|
|
invoke-virtual {p0, v1, v2, v3, v0}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxisRad(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromMatrix(Lcom/badlogic/gdx/math/Matrix3;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 452
|
|
invoke-virtual {p0, v0, p1}, Lcom/badlogic/gdx/math/Quaternion;->setFromMatrix(ZLcom/badlogic/gdx/math/Matrix3;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromMatrix(Lcom/badlogic/gdx/math/Matrix4;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 440
|
|
invoke-virtual {p0, v0, p1}, Lcom/badlogic/gdx/math/Quaternion;->setFromMatrix(ZLcom/badlogic/gdx/math/Matrix4;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromMatrix(ZLcom/badlogic/gdx/math/Matrix3;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 13
|
|
|
|
.line 445
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x0
|
|
|
|
aget v4, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x3
|
|
|
|
aget v5, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x6
|
|
|
|
aget v6, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x1
|
|
|
|
aget v7, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x4
|
|
|
|
aget v8, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x7
|
|
|
|
aget v9, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x2
|
|
|
|
aget v10, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/4 v1, 0x5
|
|
|
|
aget v11, v0, v1
|
|
|
|
iget-object p2, p2, Lcom/badlogic/gdx/math/Matrix3;->val:[F
|
|
|
|
const/16 v0, 0x8
|
|
|
|
aget v12, p2, v0
|
|
|
|
move-object v2, p0
|
|
|
|
move v3, p1
|
|
|
|
invoke-virtual/range {v2 .. v12}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxes(ZFFFFFFFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public setFromMatrix(ZLcom/badlogic/gdx/math/Matrix4;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 13
|
|
|
|
.line 433
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/4 v1, 0x0
|
|
|
|
aget v4, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/4 v1, 0x4
|
|
|
|
aget v5, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/16 v1, 0x8
|
|
|
|
aget v6, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/4 v1, 0x1
|
|
|
|
aget v7, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/4 v1, 0x5
|
|
|
|
aget v8, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/16 v1, 0x9
|
|
|
|
aget v9, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/4 v1, 0x2
|
|
|
|
aget v10, v0, v1
|
|
|
|
iget-object v0, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/4 v1, 0x6
|
|
|
|
aget v11, v0, v1
|
|
|
|
iget-object p2, p2, Lcom/badlogic/gdx/math/Matrix4;->val:[F
|
|
|
|
const/16 v0, 0xa
|
|
|
|
aget v12, p2, v0
|
|
|
|
move-object v2, p0
|
|
|
|
move v3, p1
|
|
|
|
invoke-virtual/range {v2 .. v12}, Lcom/badlogic/gdx/math/Quaternion;->setFromAxes(ZFFFFFFFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public slerp(Lcom/badlogic/gdx/math/Quaternion;F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 10
|
|
|
|
.line 580
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
const/4 v1, 0x0
|
|
|
|
cmpg-float v2, v0, v1
|
|
|
|
if-gez v2, :cond_0
|
|
|
|
neg-float v2, v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
move v2, v0
|
|
|
|
:goto_0
|
|
const/high16 v3, 0x3f800000 # 1.0f
|
|
|
|
sub-float v4, v3, p2
|
|
|
|
sub-float v5, v3, v2
|
|
|
|
float-to-double v5, v5
|
|
|
|
const-wide v7, 0x3fb999999999999aL # 0.1
|
|
|
|
cmpl-double v9, v5, v7
|
|
|
|
if-lez v9, :cond_1
|
|
|
|
float-to-double v5, v2
|
|
|
|
.line 591
|
|
invoke-static {v5, v6}, Ljava/lang/Math;->acos(D)D
|
|
|
|
move-result-wide v5
|
|
|
|
double-to-float v2, v5
|
|
|
|
float-to-double v5, v2
|
|
|
|
.line 592
|
|
invoke-static {v5, v6}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v5
|
|
|
|
double-to-float v5, v5
|
|
|
|
div-float/2addr v3, v5
|
|
|
|
mul-float v4, v4, v2
|
|
|
|
float-to-double v4, v4
|
|
|
|
.line 596
|
|
invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v4
|
|
|
|
double-to-float v4, v4
|
|
|
|
mul-float v4, v4, v3
|
|
|
|
mul-float p2, p2, v2
|
|
|
|
float-to-double v5, p2
|
|
|
|
.line 597
|
|
invoke-static {v5, v6}, Ljava/lang/Math;->sin(D)D
|
|
|
|
move-result-wide v5
|
|
|
|
double-to-float p2, v5
|
|
|
|
mul-float p2, p2, v3
|
|
|
|
:cond_1
|
|
cmpg-float v0, v0, v1
|
|
|
|
if-gez v0, :cond_2
|
|
|
|
neg-float p2, p2
|
|
|
|
.line 604
|
|
:cond_2
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v4
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v1, v1, p2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
.line 605
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v0, v0, v4
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, p2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
.line 606
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v0, v0, v4
|
|
|
|
iget v1, p1, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v1, v1, p2
|
|
|
|
add-float/2addr v0, v1
|
|
|
|
iput v0, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
.line 607
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v4, v4, v0
|
|
|
|
iget p1, p1, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float p2, p2, p1
|
|
|
|
add-float/2addr v4, p2
|
|
|
|
iput v4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public slerp([Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 4
|
|
|
|
.line 620
|
|
array-length v0, p1
|
|
|
|
int-to-float v0, v0
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
div-float/2addr v1, v0
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 621
|
|
aget-object v0, p1, v0
|
|
|
|
invoke-virtual {p0, v0}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0, v1}, Lcom/badlogic/gdx/math/Quaternion;->exp(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
const/4 v0, 0x1
|
|
|
|
.line 622
|
|
:goto_0
|
|
array-length v2, p1
|
|
|
|
if-ge v0, v2, :cond_0
|
|
|
|
.line 623
|
|
sget-object v2, Lcom/badlogic/gdx/math/Quaternion;->tmp1:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
aget-object v3, p1, v0
|
|
|
|
invoke-virtual {v2, v3}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v2, v1}, Lcom/badlogic/gdx/math/Quaternion;->exp(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {p0, v2}, Lcom/badlogic/gdx/math/Quaternion;->mul(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
.line 624
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public slerp([Lcom/badlogic/gdx/math/Quaternion;[F)Lcom/badlogic/gdx/math/Quaternion;
|
|
.locals 3
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 637
|
|
aget-object v1, p1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v1
|
|
|
|
aget v0, p2, v0
|
|
|
|
invoke-virtual {v1, v0}, Lcom/badlogic/gdx/math/Quaternion;->exp(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
const/4 v0, 0x1
|
|
|
|
.line 638
|
|
:goto_0
|
|
array-length v1, p1
|
|
|
|
if-ge v0, v1, :cond_0
|
|
|
|
.line 639
|
|
sget-object v1, Lcom/badlogic/gdx/math/Quaternion;->tmp1:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
aget-object v2, p1, v0
|
|
|
|
invoke-virtual {v1, v2}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v1
|
|
|
|
aget v2, p2, v0
|
|
|
|
invoke-virtual {v1, v2}, Lcom/badlogic/gdx/math/Quaternion;->exp(F)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {p0, v1}, Lcom/badlogic/gdx/math/Quaternion;->mul(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
.line 640
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/badlogic/gdx/math/Quaternion;->nor()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public toMatrix([F)V
|
|
.locals 13
|
|
|
|
.line 341
|
|
iget v0, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
mul-float v0, v0, v1
|
|
|
|
.line 342
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v1, v1, v2
|
|
|
|
.line 343
|
|
iget v2, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v2, v2, v3
|
|
|
|
.line 344
|
|
iget v3, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v3, v3, v4
|
|
|
|
.line 345
|
|
iget v4, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v5, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
mul-float v4, v4, v5
|
|
|
|
.line 346
|
|
iget v5, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v6, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v5, v5, v6
|
|
|
|
.line 347
|
|
iget v6, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iget v7, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v6, v6, v7
|
|
|
|
.line 348
|
|
iget v7, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v8, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
mul-float v7, v7, v8
|
|
|
|
.line 349
|
|
iget v8, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iget v9, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
mul-float v8, v8, v9
|
|
|
|
add-float v9, v4, v7
|
|
|
|
const/high16 v10, 0x40000000 # 2.0f
|
|
|
|
mul-float v9, v9, v10
|
|
|
|
const/high16 v11, 0x3f800000 # 1.0f
|
|
|
|
sub-float v9, v11, v9
|
|
|
|
const/4 v12, 0x0
|
|
|
|
.line 351
|
|
aput v9, p1, v12
|
|
|
|
sub-float v9, v1, v8
|
|
|
|
mul-float v9, v9, v10
|
|
|
|
const/4 v12, 0x4
|
|
|
|
.line 352
|
|
aput v9, p1, v12
|
|
|
|
add-float v9, v2, v6
|
|
|
|
mul-float v9, v9, v10
|
|
|
|
const/16 v12, 0x8
|
|
|
|
.line 353
|
|
aput v9, p1, v12
|
|
|
|
const/4 v9, 0x0
|
|
|
|
const/16 v12, 0xc
|
|
|
|
.line 354
|
|
aput v9, p1, v12
|
|
|
|
add-float/2addr v1, v8
|
|
|
|
mul-float v1, v1, v10
|
|
|
|
const/4 v8, 0x1
|
|
|
|
.line 355
|
|
aput v1, p1, v8
|
|
|
|
add-float/2addr v7, v0
|
|
|
|
mul-float v7, v7, v10
|
|
|
|
sub-float v1, v11, v7
|
|
|
|
const/4 v7, 0x5
|
|
|
|
.line 356
|
|
aput v1, p1, v7
|
|
|
|
sub-float v1, v5, v3
|
|
|
|
mul-float v1, v1, v10
|
|
|
|
const/16 v7, 0x9
|
|
|
|
.line 357
|
|
aput v1, p1, v7
|
|
|
|
const/16 v1, 0xd
|
|
|
|
.line 358
|
|
aput v9, p1, v1
|
|
|
|
sub-float/2addr v2, v6
|
|
|
|
mul-float v2, v2, v10
|
|
|
|
const/4 v1, 0x2
|
|
|
|
.line 359
|
|
aput v2, p1, v1
|
|
|
|
add-float/2addr v5, v3
|
|
|
|
mul-float v5, v5, v10
|
|
|
|
const/4 v1, 0x6
|
|
|
|
.line 360
|
|
aput v5, p1, v1
|
|
|
|
add-float/2addr v0, v4
|
|
|
|
mul-float v0, v0, v10
|
|
|
|
sub-float v0, v11, v0
|
|
|
|
const/16 v1, 0xa
|
|
|
|
.line 361
|
|
aput v0, p1, v1
|
|
|
|
const/16 v0, 0xe
|
|
|
|
.line 362
|
|
aput v9, p1, v0
|
|
|
|
const/4 v0, 0x3
|
|
|
|
.line 363
|
|
aput v9, p1, v0
|
|
|
|
const/4 v0, 0x7
|
|
|
|
.line 364
|
|
aput v9, p1, v0
|
|
|
|
const/16 v0, 0xb
|
|
|
|
.line 365
|
|
aput v9, p1, v0
|
|
|
|
const/16 v0, 0xf
|
|
|
|
.line 366
|
|
aput v11, p1, v0
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public toString()Ljava/lang/String;
|
|
.locals 2
|
|
|
|
.line 113
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "["
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "|"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "|"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "|"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
iget v1, p0, Lcom/badlogic/gdx/math/Quaternion;->w:F
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "]"
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public transform(Lcom/badlogic/gdx/math/Vector3;)Lcom/badlogic/gdx/math/Vector3;
|
|
.locals 6
|
|
|
|
.line 237
|
|
sget-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
invoke-virtual {v0, p0}, Lcom/badlogic/gdx/math/Quaternion;->set(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.line 238
|
|
sget-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
invoke-virtual {v0}, Lcom/badlogic/gdx/math/Quaternion;->conjugate()Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.line 239
|
|
sget-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
sget-object v1, Lcom/badlogic/gdx/math/Quaternion;->tmp1:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
iget v2, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
iget v3, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
iget v4, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
const/4 v5, 0x0
|
|
|
|
invoke-virtual {v1, v2, v3, v4, v5}, Lcom/badlogic/gdx/math/Quaternion;->set(FFFF)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v0, v1}, Lcom/badlogic/gdx/math/Quaternion;->mulLeft(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0, p0}, Lcom/badlogic/gdx/math/Quaternion;->mulLeft(Lcom/badlogic/gdx/math/Quaternion;)Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
.line 241
|
|
sget-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
iget v0, v0, Lcom/badlogic/gdx/math/Quaternion;->x:F
|
|
|
|
iput v0, p1, Lcom/badlogic/gdx/math/Vector3;->x:F
|
|
|
|
.line 242
|
|
sget-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
iget v0, v0, Lcom/badlogic/gdx/math/Quaternion;->y:F
|
|
|
|
iput v0, p1, Lcom/badlogic/gdx/math/Vector3;->y:F
|
|
|
|
.line 243
|
|
sget-object v0, Lcom/badlogic/gdx/math/Quaternion;->tmp2:Lcom/badlogic/gdx/math/Quaternion;
|
|
|
|
iget v0, v0, Lcom/badlogic/gdx/math/Quaternion;->z:F
|
|
|
|
iput v0, p1, Lcom/badlogic/gdx/math/Vector3;->z:F
|
|
|
|
return-object p1
|
|
.end method
|