SeparationFunction.smali
.class Lorg/jbox2d/collision/SeparationFunction;
.super Ljava/lang/Object;
.source "TimeOfImpact.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/jbox2d/collision/SeparationFunction$1;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field private final axisA:Lorg/jbox2d/common/Vec2;
.field private final axisB:Lorg/jbox2d/common/Vec2;
.field private final localPointA:Lorg/jbox2d/common/Vec2;
.field private final localPointA1:Lorg/jbox2d/common/Vec2;
.field private final localPointA2:Lorg/jbox2d/common/Vec2;
.field private final localPointB:Lorg/jbox2d/common/Vec2;
.field private final localPointB1:Lorg/jbox2d/common/Vec2;
.field private final localPointB2:Lorg/jbox2d/common/Vec2;
.field public final m_axis:Lorg/jbox2d/common/Vec2;
.field public final m_localPoint:Lorg/jbox2d/common/Vec2;
.field public m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
.field public m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
.field public m_sweepA:Lorg/jbox2d/common/Sweep;
.field public m_sweepB:Lorg/jbox2d/common/Sweep;
.field public m_type:Lorg/jbox2d/collision/Type;
.field private final normal:Lorg/jbox2d/common/Vec2;
.field private final pointA:Lorg/jbox2d/common/Vec2;
.field private final pointB:Lorg/jbox2d/common/Vec2;
.field private final temp:Lorg/jbox2d/common/Vec2;
.field private final xfa:Lorg/jbox2d/common/Transform;
.field private final xfb:Lorg/jbox2d/common/Transform;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 308
const-class v0, Lorg/jbox2d/collision/SeparationFunction;
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/SeparationFunction;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method constructor <init>()V
.registers 2
.prologue
.line 308
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 313
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
.line 314
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
.line 319
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
.line 320
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
.line 321
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
.line 322
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
.line 323
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA1:Lorg/jbox2d/common/Vec2;
.line 324
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA2:Lorg/jbox2d/common/Vec2;
.line 325
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
.line 326
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB1:Lorg/jbox2d/common/Vec2;
.line 327
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB2:Lorg/jbox2d/common/Vec2;
.line 328
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
.line 329
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
.line 330
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
.line 420
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->axisA:Lorg/jbox2d/common/Vec2;
.line 421
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->axisB:Lorg/jbox2d/common/Vec2;
return-void
.end method
# virtual methods
.method public evaluate(IIF)F
.registers 7
.prologue
.line 488
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepA:Lorg/jbox2d/common/Sweep;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
invoke-virtual {v0, v1, p3}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 489
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepB:Lorg/jbox2d/common/Sweep;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
invoke-virtual {v0, v1, p3}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 491
sget-object v0, Lorg/jbox2d/collision/SeparationFunction$1;->$SwitchMap$org$jbox2d$collision$Type:[I
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_type:Lorg/jbox2d/collision/Type;
invoke-virtual {v1}, Lorg/jbox2d/collision/Type;->ordinal()I
move-result v1
aget v0, v0, v1
packed-switch v0, :pswitch_data_cc
.line 522
sget-boolean v0, Lorg/jbox2d/collision/SeparationFunction;->$assertionsDisabled:Z
if-nez v0, :cond_ca
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 493
:pswitch_25
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
invoke-virtual {v1, p1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 494
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
invoke-virtual {v1, p2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 496
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 497
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 499
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 523
:goto_5b
return v0
.line 503
:pswitch_5c
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 504
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 506
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
invoke-virtual {v1, p2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 507
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 508
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
goto :goto_5b
.line 512
:pswitch_93
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 513
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 515
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
invoke-virtual {v1, p1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 516
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 518
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
goto :goto_5b
.line 523
:cond_ca
const/4 v0, 0x0
goto :goto_5b
.line 491
:pswitch_data_cc
.packed-switch 0x1
:pswitch_25
:pswitch_5c
:pswitch_93
.end packed-switch
.end method
.method public findMinSeparation([IF)F
.registers 9
.prologue
const/4 v5, -0x1
const/4 v4, 0x1
const/4 v3, 0x0
.line 426
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepA:Lorg/jbox2d/common/Sweep;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
invoke-virtual {v0, v1, p2}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 427
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepB:Lorg/jbox2d/common/Sweep;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
invoke-virtual {v0, v1, p2}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 429
sget-object v0, Lorg/jbox2d/collision/SeparationFunction$1;->$SwitchMap$org$jbox2d$collision$Type:[I
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_type:Lorg/jbox2d/collision/Type;
invoke-virtual {v1}, Lorg/jbox2d/collision/Type;->ordinal()I
move-result v1
aget v0, v0, v1
packed-switch v0, :pswitch_data_150
.line 480
sget-boolean v0, Lorg/jbox2d/collision/SeparationFunction;->$assertionsDisabled:Z
if-nez v0, :cond_149
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 431
:pswitch_28
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->axisA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 432
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->axisB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 433
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 435
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->axisA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getSupport(Lorg/jbox2d/common/Vec2;)I
move-result v0
aput v0, p1, v3
.line 436
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->axisB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getSupport(Lorg/jbox2d/common/Vec2;)I
move-result v0
aput v0, p1, v4
.line 438
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
aget v2, p1, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 439
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
aget v2, p1, v4
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 441
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 442
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 444
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 483
:goto_95
return v0
.line 448
:pswitch_96
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 449
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 451
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->axisB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 452
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 454
aput v5, p1, v3
.line 455
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->axisB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getSupport(Lorg/jbox2d/common/Vec2;)I
move-result v0
aput v0, p1, v4
.line 457
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
aget v2, p1, v4
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 458
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 460
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
goto :goto_95
.line 464
:pswitch_ef
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 465
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 467
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->axisA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 468
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 470
aput v5, p1, v4
.line 471
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->axisA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getSupport(Lorg/jbox2d/common/Vec2;)I
move-result v0
aput v0, p1, v3
.line 473
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
aget v2, p1, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 474
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 476
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
goto/16 :goto_95
.line 481
:cond_149
aput v5, p1, v3
.line 482
aput v5, p1, v4
.line 483
const/4 v0, 0x0
goto/16 :goto_95
.line 429
:pswitch_data_150
.packed-switch 0x1
:pswitch_28
:pswitch_96
:pswitch_ef
.end packed-switch
.end method
.method public initialize(Lorg/jbox2d/collision/Distance$SimplexCache;Lorg/jbox2d/collision/Distance$DistanceProxy;Lorg/jbox2d/common/Sweep;Lorg/jbox2d/collision/Distance$DistanceProxy;Lorg/jbox2d/common/Sweep;F)F
.registers 15
.prologue
const/high16 v7, 0x3f800000 # 1.0f
const/high16 v6, 0x3f000000 # 0.5f
const/4 v5, 0x0
const/4 v4, 0x1
const/4 v3, 0x0
.line 336
iput-object p2, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
.line 337
iput-object p4, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
.line 338
iget v0, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->count:I
.line 339
sget-boolean v1, Lorg/jbox2d/collision/SeparationFunction;->$assertionsDisabled:Z
if-nez v1, :cond_1c
if-lez v0, :cond_16
const/4 v1, 0x3
if-lt v0, v1, :cond_1c
:cond_16
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 341
:cond_1c
iput-object p3, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepA:Lorg/jbox2d/common/Sweep;
.line 342
iput-object p5, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepB:Lorg/jbox2d/common/Sweep;
.line 344
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepA:Lorg/jbox2d/common/Sweep;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
invoke-virtual {v1, v2, p6}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 345
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_sweepB:Lorg/jbox2d/common/Sweep;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
invoke-virtual {v1, v2, p6}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 351
if-ne v0, v4, :cond_78
.line 352
sget-object v0, Lorg/jbox2d/collision/Type;->POINTS:Lorg/jbox2d/collision/Type;
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_type:Lorg/jbox2d/collision/Type;
.line 358
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexA:[I
aget v2, v2, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 359
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexB:[I
aget v2, v2, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 360
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 361
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 362
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 363
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->normalize()F
move-result v0
.line 416
:cond_77
:goto_77
return v0
.line 365
:cond_78
iget-object v0, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexA:[I
aget v0, v0, v3
iget-object v1, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexA:[I
aget v1, v1, v4
if-ne v0, v1, :cond_119
.line 367
sget-object v0, Lorg/jbox2d/collision/Type;->FACE_B:Lorg/jbox2d/collision/Type;
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_type:Lorg/jbox2d/collision/Type;
.line 369
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB1:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexB:[I
aget v2, v2, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 370
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB2:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexB:[I
aget v2, v2, v4
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 372
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 373
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v7, v1}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(Lorg/jbox2d/common/Vec2;FLorg/jbox2d/common/Vec2;)V
.line 374
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->normalize()F
.line 376
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 378
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v0, v6}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 379
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 381
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v1, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexA:[I
aget v1, v1, v3
invoke-virtual {p2, v1}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 382
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 384
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 385
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 386
cmpg-float v1, v0, v5
if-gez v1, :cond_77
.line 387
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 388
neg-float v0, v0
goto/16 :goto_77
.line 393
:cond_119
sget-object v0, Lorg/jbox2d/collision/Type;->FACE_A:Lorg/jbox2d/collision/Type;
iput-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_type:Lorg/jbox2d/collision/Type;
.line 395
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA1:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexA:[I
aget v2, v2, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 396
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA2:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexA:[I
aget v2, v2, v4
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 398
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 399
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v7, v1}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(Lorg/jbox2d/common/Vec2;FLorg/jbox2d/common/Vec2;)V
.line 400
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->normalize()F
.line 402
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 404
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointA2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v0, v6}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 405
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfa:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_localPoint:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 407
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iget-object v2, p1, Lorg/jbox2d/collision/Distance$SimplexCache;->indexB:[I
aget v2, v2, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 408
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->xfb:Lorg/jbox2d/common/Transform;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->localPointB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 410
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->pointA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 411
iget-object v0, p0, Lorg/jbox2d/collision/SeparationFunction;->temp:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->normal:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 412
cmpg-float v1, v0, v5
if-gez v1, :cond_77
.line 413
iget-object v1, p0, Lorg/jbox2d/collision/SeparationFunction;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 414
neg-float v0, v0
goto/16 :goto_77
.end method