Island.smali
.class public Lorg/jbox2d/dynamics/Island;
.super Ljava/lang/Object;
.source "Island.java"
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field private final contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
.field private final impulse:Lorg/jbox2d/callbacks/ContactImpulse;
.field public m_bodies:[Lorg/jbox2d/dynamics/Body;
.field public m_bodyCapacity:I
.field public m_bodyCount:I
.field public m_contactCapacity:I
.field public m_contactCount:I
.field public m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
.field public m_jointCapacity:I
.field public m_jointCount:I
.field public m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
.field public m_listener:Lorg/jbox2d/callbacks/ContactListener;
.field public m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
.field public m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
.field private final solverData:Lorg/jbox2d/dynamics/SolverData;
.field private final solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
.field private final timer:Lorg/jbox2d/common/Timer;
.field private final toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
.field private final toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 164
const-class v0, Lorg/jbox2d/dynamics/Island;
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/dynamics/Island;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 183
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 236
new-instance v0, Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-direct {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
.line 237
new-instance v0, Lorg/jbox2d/common/Timer;
invoke-direct {v0}, Lorg/jbox2d/common/Timer;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
.line 238
new-instance v0, Lorg/jbox2d/dynamics/SolverData;
invoke-direct {v0}, Lorg/jbox2d/dynamics/SolverData;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
.line 239
new-instance v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
invoke-direct {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
.line 431
new-instance v0, Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-direct {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
.line 432
new-instance v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
invoke-direct {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
.line 582
new-instance v0, Lorg/jbox2d/callbacks/ContactImpulse;
invoke-direct {v0}, Lorg/jbox2d/callbacks/ContactImpulse;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->impulse:Lorg/jbox2d/callbacks/ContactImpulse;
.line 185
return-void
.end method
# virtual methods
.method public add(Lorg/jbox2d/dynamics/Body;)V
.registers 4
.prologue
.line 566
sget-boolean v0, Lorg/jbox2d/dynamics/Island;->$assertionsDisabled:Z
if-nez v0, :cond_10
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
if-lt v0, v1, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 567
:cond_10
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
iput v0, p1, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
.line 568
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
aput-object p1, v0, v1
.line 569
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
.line 570
return-void
.end method
.method public add(Lorg/jbox2d/dynamics/contacts/Contact;)V
.registers 5
.prologue
.line 573
sget-boolean v0, Lorg/jbox2d/dynamics/Island;->$assertionsDisabled:Z
if-nez v0, :cond_10
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_contactCapacity:I
if-lt v0, v1, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 574
:cond_10
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
aput-object p1, v0, v1
.line 575
return-void
.end method
.method public add(Lorg/jbox2d/dynamics/joints/Joint;)V
.registers 5
.prologue
.line 578
sget-boolean v0, Lorg/jbox2d/dynamics/Island;->$assertionsDisabled:Z
if-nez v0, :cond_10
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_jointCapacity:I
if-lt v0, v1, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 579
:cond_10
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
aput-object p1, v0, v1
.line 580
return-void
.end method
.method public clear()V
.registers 2
.prologue
const/4 v0, 0x0
.line 231
iput v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
.line 232
iput v0, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
.line 233
iput v0, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
.line 234
return-void
.end method
.method public init(IIILorg/jbox2d/callbacks/ContactListener;)V
.registers 9
.prologue
const/4 v3, 0x0
.line 190
iput p1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
.line 191
iput p2, p0, Lorg/jbox2d/dynamics/Island;->m_contactCapacity:I
.line 192
iput p3, p0, Lorg/jbox2d/dynamics/Island;->m_jointCapacity:I
.line 193
iput v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
.line 194
iput v3, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
.line 195
iput v3, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
.line 197
iput-object p4, p0, Lorg/jbox2d/dynamics/Island;->m_listener:Lorg/jbox2d/callbacks/ContactListener;
.line 199
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
if-eqz v0, :cond_1a
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
array-length v1, v1
if-le v0, v1, :cond_20
.line 200
:cond_1a
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
new-array v0, v0, [Lorg/jbox2d/dynamics/Body;
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
.line 202
:cond_20
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
if-eqz v0, :cond_2b
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_jointCapacity:I
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
array-length v1, v1
if-le v0, v1, :cond_31
.line 203
:cond_2b
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_jointCapacity:I
new-array v0, v0, [Lorg/jbox2d/dynamics/joints/Joint;
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
.line 205
:cond_31
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
if-eqz v0, :cond_3c
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_contactCapacity:I
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
array-length v1, v1
if-le v0, v1, :cond_42
.line 206
:cond_3c
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_contactCapacity:I
new-array v0, v0, [Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
.line 210
:cond_42
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
if-eqz v0, :cond_4d
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
array-length v1, v1
if-le v0, v1, :cond_74
.line 211
:cond_4d
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
if-nez v0, :cond_71
new-array v0, v3, [Lorg/jbox2d/dynamics/contacts/Velocity;
.line 212
:goto_53
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
new-array v1, v1, [Lorg/jbox2d/dynamics/contacts/Velocity;
iput-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
.line 213
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
array-length v2, v0
invoke-static {v0, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 214
array-length v0, v0
:goto_60
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
array-length v1, v1
if-ge v0, v1, :cond_74
.line 215
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
new-instance v2, Lorg/jbox2d/dynamics/contacts/Velocity;
invoke-direct {v2}, Lorg/jbox2d/dynamics/contacts/Velocity;-><init>()V
aput-object v2, v1, v0
.line 214
add-int/lit8 v0, v0, 0x1
goto :goto_60
.line 211
:cond_71
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
goto :goto_53
.line 220
:cond_74
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
if-eqz v0, :cond_7f
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
array-length v1, v1
if-le v0, v1, :cond_a6
.line 221
:cond_7f
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
if-nez v0, :cond_a3
new-array v0, v3, [Lorg/jbox2d/dynamics/contacts/Position;
.line 222
:goto_85
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
new-array v1, v1, [Lorg/jbox2d/dynamics/contacts/Position;
iput-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
.line 223
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
array-length v2, v0
invoke-static {v0, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 224
array-length v0, v0
:goto_92
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
array-length v1, v1
if-ge v0, v1, :cond_a6
.line 225
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
new-instance v2, Lorg/jbox2d/dynamics/contacts/Position;
invoke-direct {v2}, Lorg/jbox2d/dynamics/contacts/Position;-><init>()V
aput-object v2, v1, v0
.line 224
add-int/lit8 v0, v0, 0x1
goto :goto_92
.line 221
:cond_a3
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
goto :goto_85
.line 228
:cond_a6
return-void
.end method
.method public report([Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;)V
.registers 9
.prologue
const/4 v1, 0x0
.line 585
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_listener:Lorg/jbox2d/callbacks/ContactListener;
if-nez v0, :cond_6
.line 601
:cond_5
return-void
:cond_6
move v0, v1
.line 589
:goto_7
iget v2, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
if-ge v0, v2, :cond_5
.line 590
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
aget-object v3, v2, v0
.line 592
aget-object v4, p1, v0
.line 593
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->impulse:Lorg/jbox2d/callbacks/ContactImpulse;
iget v5, v4, Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;->pointCount:I
iput v5, v2, Lorg/jbox2d/callbacks/ContactImpulse;->count:I
move v2, v1
.line 594
:goto_18
iget v5, v4, Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;->pointCount:I
if-ge v2, v5, :cond_37
.line 595
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->impulse:Lorg/jbox2d/callbacks/ContactImpulse;
iget-object v5, v5, Lorg/jbox2d/callbacks/ContactImpulse;->normalImpulses:[F
iget-object v6, v4, Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;->points:[Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint$VelocityConstraintPoint;
aget-object v6, v6, v2
iget v6, v6, Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint$VelocityConstraintPoint;->normalImpulse:F
aput v6, v5, v2
.line 596
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->impulse:Lorg/jbox2d/callbacks/ContactImpulse;
iget-object v5, v5, Lorg/jbox2d/callbacks/ContactImpulse;->tangentImpulses:[F
iget-object v6, v4, Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;->points:[Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint$VelocityConstraintPoint;
aget-object v6, v6, v2
iget v6, v6, Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint$VelocityConstraintPoint;->tangentImpulse:F
aput v6, v5, v2
.line 594
add-int/lit8 v2, v2, 0x1
goto :goto_18
.line 599
:cond_37
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_listener:Lorg/jbox2d/callbacks/ContactListener;
iget-object v4, p0, Lorg/jbox2d/dynamics/Island;->impulse:Lorg/jbox2d/callbacks/ContactImpulse;
invoke-interface {v2, v3, v4}, Lorg/jbox2d/callbacks/ContactListener;->postSolve(Lorg/jbox2d/dynamics/contacts/Contact;Lorg/jbox2d/callbacks/ContactImpulse;)V
.line 589
add-int/lit8 v0, v0, 0x1
goto :goto_7
.end method
.method public solve(Lorg/jbox2d/dynamics/Profile;Lorg/jbox2d/dynamics/TimeStep;Lorg/jbox2d/common/Vec2;Z)V
.registers 16
.prologue
.line 244
iget v4, p2, Lorg/jbox2d/dynamics/TimeStep;->dt:F
.line 247
const/4 v0, 0x0
:goto_3
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v0, v1, :cond_b2
.line 248
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v2, v1, v0
.line 249
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
.line 250
iget-object v5, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
.line 251
iget v6, v3, Lorg/jbox2d/common/Sweep;->a:F
.line 252
iget-object v7, v2, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
.line 253
iget v1, v2, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
.line 256
iget-object v8, v3, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;
iget-object v9, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
invoke-virtual {v8, v9}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 257
iget v8, v3, Lorg/jbox2d/common/Sweep;->a:F
iput v8, v3, Lorg/jbox2d/common/Sweep;->a0:F
.line 259
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v8, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v3, v8, :cond_7a
.line 262
iget v3, v7, Lorg/jbox2d/common/Vec2;->x:F
iget v8, v2, Lorg/jbox2d/dynamics/Body;->m_gravityScale:F
iget v9, p3, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v8, v9
iget v9, v2, Lorg/jbox2d/dynamics/Body;->m_invMass:F
iget-object v10, v2, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v9, v10
add-float/2addr v8, v9
mul-float/2addr v8, v4
add-float/2addr v3, v8
iput v3, v7, Lorg/jbox2d/common/Vec2;->x:F
.line 263
iget v3, v7, Lorg/jbox2d/common/Vec2;->y:F
iget v8, v2, Lorg/jbox2d/dynamics/Body;->m_gravityScale:F
iget v9, p3, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v8, v9
iget v9, v2, Lorg/jbox2d/dynamics/Body;->m_invMass:F
iget-object v10, v2, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v9, v10
add-float/2addr v8, v9
mul-float/2addr v8, v4
add-float/2addr v3, v8
iput v3, v7, Lorg/jbox2d/common/Vec2;->y:F
.line 264
iget v3, v2, Lorg/jbox2d/dynamics/Body;->m_invI:F
mul-float/2addr v3, v4
iget v8, v2, Lorg/jbox2d/dynamics/Body;->m_torque:F
mul-float/2addr v3, v8
add-float/2addr v1, v3
.line 274
iget v3, v7, Lorg/jbox2d/common/Vec2;->x:F
const/high16 v8, 0x3f800000 # 1.0f
const/high16 v9, 0x3f800000 # 1.0f
iget v10, v2, Lorg/jbox2d/dynamics/Body;->m_linearDamping:F
mul-float/2addr v10, v4
add-float/2addr v9, v10
div-float/2addr v8, v9
mul-float/2addr v3, v8
iput v3, v7, Lorg/jbox2d/common/Vec2;->x:F
.line 275
iget v3, v7, Lorg/jbox2d/common/Vec2;->y:F
const/high16 v8, 0x3f800000 # 1.0f
const/high16 v9, 0x3f800000 # 1.0f
iget v10, v2, Lorg/jbox2d/dynamics/Body;->m_linearDamping:F
mul-float/2addr v10, v4
add-float/2addr v9, v10
div-float/2addr v8, v9
mul-float/2addr v3, v8
iput v3, v7, Lorg/jbox2d/common/Vec2;->y:F
.line 276
const/high16 v3, 0x3f800000 # 1.0f
const/high16 v8, 0x3f800000 # 1.0f
iget v2, v2, Lorg/jbox2d/dynamics/Body;->m_angularDamping:F
mul-float/2addr v2, v4
add-float/2addr v2, v8
div-float v2, v3, v2
mul-float/2addr v1, v2
.line 279
:cond_7a
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v3, v5, Lorg/jbox2d/common/Vec2;->x:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 280
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v3, v5, Lorg/jbox2d/common/Vec2;->y:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 281
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, v0
iput v6, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 282
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget v3, v7, Lorg/jbox2d/common/Vec2;->x:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 283
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget v3, v7, Lorg/jbox2d/common/Vec2;->y:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 284
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 247
add-int/lit8 v0, v0, 0x1
goto/16 :goto_3
.line 287
:cond_b2
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 290
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
iput-object p2, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
.line 291
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
iput-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
.line 292
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iput-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
.line 295
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iput-object p2, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->step:Lorg/jbox2d/dynamics/TimeStep;
.line 296
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
.line 297
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
iput v1, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->count:I
.line 298
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
iput-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
.line 299
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iput-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
.line 301
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->solverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->init(Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;)V
.line 303
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->initializeVelocityConstraints()V
.line 305
iget-boolean v0, p2, Lorg/jbox2d/dynamics/TimeStep;->warmStarting:Z
if-eqz v0, :cond_f8
.line 307
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->warmStart()V
.line 310
:cond_f8
const/4 v0, 0x0
:goto_f9
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
if-ge v0, v1, :cond_109
.line 311
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
aget-object v1, v1, v0
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
invoke-virtual {v1, v2}, Lorg/jbox2d/dynamics/joints/Joint;->initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.line 310
add-int/lit8 v0, v0, 0x1
goto :goto_f9
.line 314
:cond_109
iget-object v0, p1, Lorg/jbox2d/dynamics/Profile;->solveInit:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
invoke-virtual {v1}, Lorg/jbox2d/common/Timer;->getMilliseconds()F
move-result v1
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->accum(F)V
.line 317
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 319
const/4 v0, 0x0
:goto_11a
iget v1, p2, Lorg/jbox2d/dynamics/TimeStep;->velocityIterations:I
if-ge v0, v1, :cond_137
.line 320
const/4 v1, 0x0
:goto_11f
iget v2, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
if-ge v1, v2, :cond_12f
.line 321
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
aget-object v2, v2, v1
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
invoke-virtual {v2, v3}, Lorg/jbox2d/dynamics/joints/Joint;->solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.line 320
add-int/lit8 v1, v1, 0x1
goto :goto_11f
.line 324
:cond_12f
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->solveVelocityConstraints()V
.line 319
add-int/lit8 v0, v0, 0x1
goto :goto_11a
.line 328
:cond_137
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->storeImpulses()V
.line 329
iget-object v0, p1, Lorg/jbox2d/dynamics/Profile;->solveVelocity:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
invoke-virtual {v1}, Lorg/jbox2d/common/Timer;->getMilliseconds()F
move-result v1
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->accum(F)V
.line 332
const/4 v0, 0x0
:goto_148
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v0, v1, :cond_1bf
.line 333
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v1, v1, v0
iget-object v2, v1, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 334
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v1, v1, v0
iget v3, v1, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 335
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v1, v1, v0
iget-object v5, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 336
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v1, v1, v0
iget v1, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 339
iget v6, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v4
.line 340
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v4
.line 342
mul-float v8, v6, v6
mul-float v9, v7, v7
add-float/2addr v8, v9
sget v9, Lorg/jbox2d/common/Settings;->maxTranslationSquared:F
cmpl-float v8, v8, v9
if-lez v8, :cond_18a
.line 343
sget v8, Lorg/jbox2d/common/Settings;->maxTranslation:F
mul-float/2addr v6, v6
mul-float/2addr v7, v7
add-float/2addr v6, v7
invoke-static {v6}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v6
div-float v6, v8, v6
.line 345
iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v6
iput v7, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 346
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v7
iput v6, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 349
:cond_18a
mul-float v6, v4, v1
.line 350
mul-float v7, v6, v6
sget v8, Lorg/jbox2d/common/Settings;->maxRotationSquared:F
cmpl-float v7, v7, v8
if-lez v7, :cond_19d
.line 351
sget v7, Lorg/jbox2d/common/Settings;->maxRotation:F
invoke-static {v6}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v6
div-float v6, v7, v6
.line 352
mul-float/2addr v1, v6
.line 356
:cond_19d
iget v6, v2, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v4
add-float/2addr v6, v7
iput v6, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 357
iget v6, v2, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v4
add-float/2addr v5, v6
iput v5, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 358
mul-float v2, v4, v1
add-float/2addr v2, v3
.line 360
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v3, v3, v0
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 361
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 332
add-int/lit8 v0, v0, 0x1
goto :goto_148
.line 365
:cond_1bf
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 366
const/4 v3, 0x0
.line 367
const/4 v0, 0x0
:goto_1c6
iget v1, p2, Lorg/jbox2d/dynamics/TimeStep;->positionIterations:I
if-ge v0, v1, :cond_2c1
.line 368
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->solvePositionConstraints()Z
move-result v5
.line 370
const/4 v2, 0x1
.line 371
const/4 v1, 0x0
:goto_1d2
iget v6, p0, Lorg/jbox2d/dynamics/Island;->m_jointCount:I
if-ge v1, v6, :cond_1ea
.line 372
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_joints:[Lorg/jbox2d/dynamics/joints/Joint;
aget-object v6, v6, v1
iget-object v7, p0, Lorg/jbox2d/dynamics/Island;->solverData:Lorg/jbox2d/dynamics/SolverData;
invoke-virtual {v6, v7}, Lorg/jbox2d/dynamics/joints/Joint;->solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
move-result v6
.line 373
if-eqz v2, :cond_1e8
if-eqz v6, :cond_1e8
const/4 v2, 0x1
.line 371
:goto_1e5
add-int/lit8 v1, v1, 0x1
goto :goto_1d2
.line 373
:cond_1e8
const/4 v2, 0x0
goto :goto_1e5
.line 376
:cond_1ea
if-eqz v5, :cond_244
if-eqz v2, :cond_244
.line 378
const/4 v0, 0x1
.line 384
:goto_1ef
const/4 v1, 0x0
:goto_1f0
iget v2, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v1, v2, :cond_247
.line 385
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v2, v2, v1
.line 386
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v5, v5, v1
iget-object v5, v5, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->x:F
iput v5, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 387
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v5, v5, v1
iget-object v5, v5, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
iput v5, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 388
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v5, v5, v1
iget v5, v5, Lorg/jbox2d/dynamics/contacts/Position;->a:F
iput v5, v3, Lorg/jbox2d/common/Sweep;->a:F
.line 389
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v5, v5, v1
iget-object v5, v5, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->x:F
iput v5, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 390
iget-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget-object v5, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v5, v5, v1
iget-object v5, v5, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
iput v5, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 391
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v3, v3, v1
iget v3, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
iput v3, v2, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
.line 392
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->synchronizeTransform()V
.line 384
add-int/lit8 v1, v1, 0x1
goto :goto_1f0
.line 367
:cond_244
add-int/lit8 v0, v0, 0x1
goto :goto_1c6
.line 395
:cond_247
iget-object v1, p1, Lorg/jbox2d/dynamics/Profile;->solvePosition:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->timer:Lorg/jbox2d/common/Timer;
invoke-virtual {v2}, Lorg/jbox2d/common/Timer;->getMilliseconds()F
move-result v2
invoke-virtual {v1, v2}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->accum(F)V
.line 397
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->contactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
iget-object v1, v1, Lorg/jbox2d/dynamics/contacts/ContactSolver;->m_velocityConstraints:[Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;
invoke-virtual {p0, v1}, Lorg/jbox2d/dynamics/Island;->report([Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;)V
.line 399
if-eqz p4, :cond_2c0
.line 400
const v2, 0x7f7fffff # Float.MAX_VALUE
.line 402
sget v1, Lorg/jbox2d/common/Settings;->linearSleepTolerance:F
sget v3, Lorg/jbox2d/common/Settings;->linearSleepTolerance:F
mul-float/2addr v3, v1
.line 403
sget v1, Lorg/jbox2d/common/Settings;->angularSleepTolerance:F
sget v5, Lorg/jbox2d/common/Settings;->angularSleepTolerance:F
mul-float/2addr v5, v1
.line 405
const/4 v1, 0x0
:goto_269
iget v6, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v1, v6, :cond_2a8
.line 406
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v6, v6, v1
.line 407
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v7
sget-object v8, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v7, v8, :cond_27c
.line 405
:goto_279
add-int/lit8 v1, v1, 0x1
goto :goto_269
.line 411
:cond_27c
iget v7, v6, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v7, v7, 0x4
if-eqz v7, :cond_297
iget v7, v6, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
iget v8, v6, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
mul-float/2addr v7, v8
cmpl-float v7, v7, v5
if-gtz v7, :cond_297
iget-object v7, v6, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget-object v8, v6, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
invoke-static {v7, v8}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v7
cmpl-float v7, v7, v3
if-lez v7, :cond_29c
.line 414
:cond_297
const/4 v2, 0x0
iput v2, v6, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F
.line 415
const/4 v2, 0x0
goto :goto_279
.line 417
:cond_29c
iget v7, v6, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F
add-float/2addr v7, v4
iput v7, v6, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F
.line 418
iget v6, v6, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F
invoke-static {v2, v6}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v2
goto :goto_279
.line 422
:cond_2a8
sget v1, Lorg/jbox2d/common/Settings;->timeToSleep:F
cmpl-float v1, v2, v1
if-ltz v1, :cond_2c0
if-eqz v0, :cond_2c0
.line 423
const/4 v0, 0x0
:goto_2b1
iget v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v0, v1, :cond_2c0
.line 424
iget-object v1, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v1, v1, v0
.line 425
const/4 v2, 0x0
invoke-virtual {v1, v2}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 423
add-int/lit8 v0, v0, 0x1
goto :goto_2b1
.line 429
:cond_2c0
return-void
:cond_2c1
move v0, v3
goto/16 :goto_1ef
.end method
.method public solveTOI(Lorg/jbox2d/dynamics/TimeStep;II)V
.registers 14
.prologue
const/4 v1, 0x0
.line 435
sget-boolean v0, Lorg/jbox2d/dynamics/Island;->$assertionsDisabled:Z
if-nez v0, :cond_f
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-lt p2, v0, :cond_f
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 436
:cond_f
sget-boolean v0, Lorg/jbox2d/dynamics/Island;->$assertionsDisabled:Z
if-nez v0, :cond_1d
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-lt p3, v0, :cond_1d
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_1d
move v0, v1
.line 439
:goto_1e
iget v2, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v0, v2, :cond_83
.line 440
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v3, v3, v0
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v3, v3, Lorg/jbox2d/common/Vec2;->x:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 441
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v3, v3, v0
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 442
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, v0
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v3, v3, v0
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v3, v3, Lorg/jbox2d/common/Sweep;->a:F
iput v3, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 443
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v3, v3, v0
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v3, v3, Lorg/jbox2d/common/Vec2;->x:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 444
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v3, v3, v0
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F
iput v3, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 445
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v2, v2, v0
iget-object v3, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v3, v3, v0
iget v3, v3, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
iput v3, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 439
add-int/lit8 v0, v0, 0x1
goto :goto_1e
.line 448
:cond_83
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v2, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->contacts:[Lorg/jbox2d/dynamics/contacts/Contact;
.line 449
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget v2, p0, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
iput v2, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->count:I
.line 450
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iput-object p1, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->step:Lorg/jbox2d/dynamics/TimeStep;
.line 451
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
iput-object v2, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
.line 452
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iput-object v2, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
.line 453
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->toiSolverDef:Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;
invoke-virtual {v0, v2}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->init(Lorg/jbox2d/dynamics/contacts/ContactSolver$ContactSolverDef;)V
move v0, v1
.line 456
:goto_a7
iget v2, p1, Lorg/jbox2d/dynamics/TimeStep;->positionIterations:I
if-ge v0, v2, :cond_b3
.line 457
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v2, p2, p3}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->solveTOIPositionConstraints(II)Z
move-result v2
.line 458
if-eqz v2, :cond_116
.line 496
:cond_b3
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v0, v0, p2
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, p2
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F
iput v2, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 497
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v0, v0, p2
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, p2
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v2, v2, Lorg/jbox2d/common/Vec2;->y:F
iput v2, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 498
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v0, v0, p2
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, p2
iget v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
iput v2, v0, Lorg/jbox2d/common/Sweep;->a0:F
.line 499
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v0, v0, p3
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, p3
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 500
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v0, v0, p3
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v2, v2, p3
iget v2, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
iput v2, v0, Lorg/jbox2d/common/Sweep;->a0:F
.line 504
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->initializeVelocityConstraints()V
move v0, v1
.line 507
:goto_10a
iget v2, p1, Lorg/jbox2d/dynamics/TimeStep;->velocityIterations:I
if-ge v0, v2, :cond_119
.line 508
iget-object v2, p0, Lorg/jbox2d/dynamics/Island;->toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
invoke-virtual {v2}, Lorg/jbox2d/dynamics/contacts/ContactSolver;->solveVelocityConstraints()V
.line 507
add-int/lit8 v0, v0, 0x1
goto :goto_10a
.line 456
:cond_116
add-int/lit8 v0, v0, 0x1
goto :goto_a7
.line 514
:cond_119
iget v2, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
.line 517
:goto_11b
iget v0, p0, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v1, v0, :cond_1dd
.line 518
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v0, v0, v1
iget-object v3, v0, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 519
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v0, v0, v1
iget v4, v0, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 520
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v0, v0, v1
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 521
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v0, v0, v1
iget v0, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 524
iget v6, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v2
.line 525
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v2
.line 526
mul-float v8, v6, v6
mul-float v9, v7, v7
add-float/2addr v8, v9
sget v9, Lorg/jbox2d/common/Settings;->maxTranslationSquared:F
cmpl-float v8, v8, v9
if-lez v8, :cond_156
.line 527
sget v8, Lorg/jbox2d/common/Settings;->maxTranslation:F
mul-float/2addr v6, v6
mul-float/2addr v7, v7
add-float/2addr v6, v7
invoke-static {v6}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v6
div-float v6, v8, v6
.line 530
invoke-virtual {v5, v6}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 533
:cond_156
mul-float v6, v2, v0
.line 534
mul-float v7, v6, v6
sget v8, Lorg/jbox2d/common/Settings;->maxRotationSquared:F
cmpl-float v7, v7, v8
if-lez v7, :cond_169
.line 535
sget v7, Lorg/jbox2d/common/Settings;->maxRotation:F
invoke-static {v6}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v6
div-float v6, v7, v6
.line 536
mul-float/2addr v0, v6
.line 540
:cond_169
iget v6, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v2
add-float/2addr v6, v7
iput v6, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 541
iget v6, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v2
add-float/2addr v6, v7
iput v6, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 542
mul-float v6, v2, v0
add-float/2addr v4, v6
.line 544
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v6, v6, v1
iget-object v6, v6, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v7, v3, Lorg/jbox2d/common/Vec2;->x:F
iput v7, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 545
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v6, v6, v1
iget-object v6, v6, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
iget v7, v3, Lorg/jbox2d/common/Vec2;->y:F
iput v7, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 546
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_positions:[Lorg/jbox2d/dynamics/contacts/Position;
aget-object v6, v6, v1
iput v4, v6, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 547
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v6, v6, v1
iget-object v6, v6, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F
iput v7, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 548
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v6, v6, v1
iget-object v6, v6, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
iput v7, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 549
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
aget-object v6, v6, v1
iput v0, v6, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 552
iget-object v6, p0, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v6, v6, v1
.line 553
iget-object v7, v6, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v7, v7, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v8, v3, Lorg/jbox2d/common/Vec2;->x:F
iput v8, v7, Lorg/jbox2d/common/Vec2;->x:F
.line 554
iget-object v7, v6, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v7, v7, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F
iput v3, v7, Lorg/jbox2d/common/Vec2;->y:F
.line 555
iget-object v3, v6, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iput v4, v3, Lorg/jbox2d/common/Sweep;->a:F
.line 556
iget-object v3, v6, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v4, v5, Lorg/jbox2d/common/Vec2;->x:F
iput v4, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 557
iget-object v3, v6, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v4, v5, Lorg/jbox2d/common/Vec2;->y:F
iput v4, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 558
iput v0, v6, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
.line 559
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Body;->synchronizeTransform()V
.line 517
add-int/lit8 v1, v1, 0x1
goto/16 :goto_11b
.line 562
:cond_1dd
iget-object v0, p0, Lorg/jbox2d/dynamics/Island;->toiContactSolver:Lorg/jbox2d/dynamics/contacts/ContactSolver;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactSolver;->m_velocityConstraints:[Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;
invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Island;->report([Lorg/jbox2d/dynamics/contacts/ContactVelocityConstraint;)V
.line 563
return-void
.end method