Distance$DistanceProxy.smali
.class public Lorg/jbox2d/collision/Distance$DistanceProxy;
.super Ljava/lang/Object;
.source "Distance.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/jbox2d/collision/Distance;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "DistanceProxy"
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field public final m_buffer:[Lorg/jbox2d/common/Vec2;
.field public m_count:I
.field public m_radius:F
.field public final m_vertices:[Lorg/jbox2d/common/Vec2;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 476
const-class v0, Lorg/jbox2d/collision/Distance;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_c
const/4 v0, 0x1
:goto_9
sput-boolean v0, Lorg/jbox2d/collision/Distance$DistanceProxy;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>()V
.registers 5
.prologue
const/4 v1, 0x0
.line 482
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 483
sget v0, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I
new-array v0, v0, [Lorg/jbox2d/common/Vec2;
iput-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
move v0, v1
.line 484
:goto_b
iget-object v2, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
array-length v2, v2
if-ge v0, v2, :cond_1c
.line 485
iget-object v2, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
new-instance v3, Lorg/jbox2d/common/Vec2;
invoke-direct {v3}, Lorg/jbox2d/common/Vec2;-><init>()V
aput-object v3, v2, v0
.line 484
add-int/lit8 v0, v0, 0x1
goto :goto_b
.line 487
:cond_1c
const/4 v0, 0x2
new-array v0, v0, [Lorg/jbox2d/common/Vec2;
iput-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_buffer:[Lorg/jbox2d/common/Vec2;
.line 488
iput v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
.line 489
const/4 v0, 0x0
iput v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
.line 490
return-void
.end method
# virtual methods
.method public final getSupport(Lorg/jbox2d/common/Vec2;)I
.registers 7
.prologue
const/4 v2, 0x0
.line 548
.line 549
iget-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v2
invoke-static {v0, p1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
.line 550
const/4 v0, 0x1
:goto_a
iget v3, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
if-ge v0, v3, :cond_1f
.line 551
iget-object v3, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v3, v3, v0
invoke-static {v3, p1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v3
.line 552
cmpl-float v4, v3, v1
if-lez v4, :cond_1c
move v1, v3
move v2, v0
.line 550
:cond_1c
add-int/lit8 v0, v0, 0x1
goto :goto_a
.line 558
:cond_1f
return v2
.end method
.method public final getSupportVertex(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.registers 7
.prologue
const/4 v2, 0x0
.line 568
.line 569
iget-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v2
invoke-static {v0, p1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
.line 570
const/4 v0, 0x1
:goto_a
iget v3, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
if-ge v0, v3, :cond_1f
.line 571
iget-object v3, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v3, v3, v0
invoke-static {v3, p1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v3
.line 572
cmpl-float v4, v3, v1
if-lez v4, :cond_1c
move v1, v3
move v2, v0
.line 570
:cond_1c
add-int/lit8 v0, v0, 0x1
goto :goto_a
.line 578
:cond_1f
iget-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v2
return-object v0
.end method
.method public final getVertex(I)Lorg/jbox2d/common/Vec2;
.registers 3
.prologue
.line 597
sget-boolean v0, Lorg/jbox2d/collision/Distance$DistanceProxy;->$assertionsDisabled:Z
if-nez v0, :cond_10
if-ltz p1, :cond_a
iget v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
if-lt p1, v0, :cond_10
:cond_a
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 598
:cond_10
iget-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v0, p1
return-object v0
.end method
.method public final getVertexCount()I
.registers 2
.prologue
.line 587
iget v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
return v0
.end method
.method public final set(Lorg/jbox2d/collision/shapes/Shape;I)V
.registers 9
.prologue
const/4 v5, 0x2
const/4 v4, 0x1
const/4 v0, 0x0
.line 497
sget-object v1, Lorg/jbox2d/collision/Distance$1;->$SwitchMap$org$jbox2d$collision$shapes$ShapeType:[I
invoke-virtual {p1}, Lorg/jbox2d/collision/shapes/Shape;->getType()Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v2
invoke-virtual {v2}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v2
aget v1, v1, v2
packed-switch v1, :pswitch_data_b6
.line 537
sget-boolean v0, Lorg/jbox2d/collision/Distance$DistanceProxy;->$assertionsDisabled:Z
if-nez v0, :cond_2d
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 499
:pswitch_1c
check-cast p1, Lorg/jbox2d/collision/shapes/CircleShape;
.line 500
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v1, v0
iget-object v1, p1, Lorg/jbox2d/collision/shapes/CircleShape;->m_p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 501
iput v4, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
.line 502
iget v0, p1, Lorg/jbox2d/collision/shapes/CircleShape;->m_radius:F
iput v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
.line 539
:cond_2d
:goto_2d
return-void
.line 506
:pswitch_2e
check-cast p1, Lorg/jbox2d/collision/shapes/PolygonShape;
.line 507
iget v1, p1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I
iput v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
.line 508
iget v1, p1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_radius:F
iput v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
.line 509
:goto_38
iget v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
if-ge v0, v1, :cond_2d
.line 510
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v1, v1, v0
iget-object v2, p1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v2, v2, v0
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 509
add-int/lit8 v0, v0, 0x1
goto :goto_38
.line 514
:pswitch_4a
check-cast p1, Lorg/jbox2d/collision/shapes/ChainShape;
.line 515
sget-boolean v1, Lorg/jbox2d/collision/Distance$DistanceProxy;->$assertionsDisabled:Z
if-nez v1, :cond_5c
if-ltz p2, :cond_56
iget v1, p1, Lorg/jbox2d/collision/shapes/ChainShape;->m_count:I
if-lt p2, v1, :cond_5c
:cond_56
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 517
:cond_5c
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_buffer:[Lorg/jbox2d/common/Vec2;
iget-object v2, p1, Lorg/jbox2d/collision/shapes/ChainShape;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v2, v2, p2
aput-object v2, v1, v0
.line 518
add-int/lit8 v1, p2, 0x1
iget v2, p1, Lorg/jbox2d/collision/shapes/ChainShape;->m_count:I
if-ge v1, v2, :cond_91
.line 519
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_buffer:[Lorg/jbox2d/common/Vec2;
iget-object v2, p1, Lorg/jbox2d/collision/shapes/ChainShape;->m_vertices:[Lorg/jbox2d/common/Vec2;
add-int/lit8 v3, p2, 0x1
aget-object v2, v2, v3
aput-object v2, v1, v4
.line 524
:goto_74
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v1, v1, v0
iget-object v2, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_buffer:[Lorg/jbox2d/common/Vec2;
aget-object v0, v2, v0
invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 525
iget-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_buffer:[Lorg/jbox2d/common/Vec2;
aget-object v1, v1, v4
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 526
iput v5, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
.line 527
iget v0, p1, Lorg/jbox2d/collision/shapes/ChainShape;->m_radius:F
iput v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
goto :goto_2d
.line 521
:cond_91
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_buffer:[Lorg/jbox2d/common/Vec2;
iget-object v2, p1, Lorg/jbox2d/collision/shapes/ChainShape;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v2, v2, v0
aput-object v2, v1, v4
goto :goto_74
.line 530
:pswitch_9a
check-cast p1, Lorg/jbox2d/collision/shapes/EdgeShape;
.line 531
iget-object v1, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v1, v0
iget-object v1, p1, Lorg/jbox2d/collision/shapes/EdgeShape;->m_vertex1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 532
iget-object v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
iget-object v1, p1, Lorg/jbox2d/collision/shapes/EdgeShape;->m_vertex2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 533
iput v5, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_count:I
.line 534
iget v0, p1, Lorg/jbox2d/collision/shapes/EdgeShape;->m_radius:F
iput v0, p0, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
goto/16 :goto_2d
.line 497
:pswitch_data_b6
.packed-switch 0x1
:pswitch_1c
:pswitch_2e
:pswitch_4a
:pswitch_9a
.end packed-switch
.end method