World.smali
.class public Lorg/jbox2d/dynamics/World;
.super Ljava/lang/Object;
.source "World.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/jbox2d/dynamics/World$1;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
.field public static final CLEAR_FORCES:I = 0x4
.field private static LIQUID_INT:Ljava/lang/Integer; = null
.field public static final LOCKED:I = 0x2
.field public static final NEW_FIXTURE:I = 0x1
.field public static final WORLD_POOL_CONTAINER_SIZE:I = 0xa
.field public static final WORLD_POOL_SIZE:I = 0x64
# instance fields
.field public activeContacts:I
.field private averageLinearVel:F
.field private final avs:Lorg/jbox2d/pooling/arrays/Vec2Array;
.field private final axis:Lorg/jbox2d/common/Vec2;
.field private final backup1:Lorg/jbox2d/common/Sweep;
.field private final backup2:Lorg/jbox2d/common/Sweep;
.field private final broadphaseTimer:Lorg/jbox2d/common/Timer;
.field private final cA:Lorg/jbox2d/common/Vec2;
.field private final cB:Lorg/jbox2d/common/Vec2;
.field private final center:Lorg/jbox2d/common/Vec2;
.field private final circCenterMoved:Lorg/jbox2d/common/Vec2;
.field private final color:Lorg/jbox2d/common/Color3f;
.field public contactPoolCount:I
.field private contactStacks:[[Lorg/jbox2d/dynamics/contacts/ContactRegister;
.field private final input:Lorg/jbox2d/collision/RayCastInput;
.field private final island:Lorg/jbox2d/dynamics/Island;
.field private final liquidColor:Lorg/jbox2d/common/Color3f;
.field private liquidLength:F
.field private final liquidOffset:Lorg/jbox2d/common/Vec2;
.field private m_allowSleep:Z
.field private m_bodyCount:I
.field private m_bodyList:Lorg/jbox2d/dynamics/Body;
.field protected m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
.field private m_continuousPhysics:Z
.field private m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
.field private m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
.field protected m_flags:I
.field private final m_gravity:Lorg/jbox2d/common/Vec2;
.field private m_inv_dt0:F
.field private m_jointCount:I
.field private m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
.field private m_particleDestructionListener:Lorg/jbox2d/callbacks/ParticleDestructionListener;
.field private m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
.field private m_profile:Lorg/jbox2d/dynamics/Profile;
.field private m_stepComplete:Z
.field private m_subStepping:Z
.field private m_warmStarting:Z
.field private final pool:Lorg/jbox2d/pooling/IWorldPool;
.field private stack:[Lorg/jbox2d/dynamics/Body;
.field private final step:Lorg/jbox2d/dynamics/TimeStep;
.field private final stepTimer:Lorg/jbox2d/common/Timer;
.field private final subStep:Lorg/jbox2d/dynamics/TimeStep;
.field private final tempBodies:[Lorg/jbox2d/dynamics/Body;
.field private final tempTimer:Lorg/jbox2d/common/Timer;
.field private final tlvertices:Lorg/jbox2d/pooling/arrays/Vec2Array;
.field private final toiInput:Lorg/jbox2d/collision/TimeOfImpact$TOIInput;
.field private final toiIsland:Lorg/jbox2d/dynamics/Island;
.field private final toiOutput:Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;
.field private final v1:Lorg/jbox2d/common/Vec2;
.field private final v2:Lorg/jbox2d/common/Vec2;
.field private final wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
.field private final wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
.field private final xf:Lorg/jbox2d/common/Transform;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
.line 85
const-class v0, Lorg/jbox2d/dynamics/World;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_16
const/4 v0, 0x1
:goto_9
sput-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
.line 1559
new-instance v0, Ljava/lang/Integer;
const v1, 0x499679e4 # 1232700.5f
invoke-direct {v0, v1}, Ljava/lang/Integer;-><init>(I)V
sput-object v0, Lorg/jbox2d/dynamics/World;->LIQUID_INT:Ljava/lang/Integer;
return-void
.line 85
:cond_16
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>(Lorg/jbox2d/common/Vec2;)V
.registers 5
.prologue
.line 145
new-instance v0, Lorg/jbox2d/pooling/normal/DefaultWorldPool;
const/16 v1, 0x64
const/16 v2, 0xa
invoke-direct {v0, v1, v2}, Lorg/jbox2d/pooling/normal/DefaultWorldPool;-><init>(II)V
invoke-direct {p0, p1, v0}, Lorg/jbox2d/dynamics/World;-><init>(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/pooling/IWorldPool;)V
.line 146
return-void
.end method
.method public constructor <init>(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/pooling/IWorldPool;)V
.registers 4
.prologue
.line 154
new-instance v0, Lorg/jbox2d/collision/broadphase/DynamicTree;
invoke-direct {v0}, Lorg/jbox2d/collision/broadphase/DynamicTree;-><init>()V
invoke-direct {p0, p1, p2, v0}, Lorg/jbox2d/dynamics/World;-><init>(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/collision/broadphase/BroadPhaseStrategy;)V
.line 155
return-void
.end method
.method public constructor <init>(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/collision/broadphase/BroadPhase;)V
.registers 10
.prologue
const v5, 0x3ecccccd # 0.4f
const/4 v4, 0x0
const/4 v3, 0x1
const/4 v2, 0x0
.line 161
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 95
iput v2, p0, Lorg/jbox2d/dynamics/World;->activeContacts:I
.line 96
iput v2, p0, Lorg/jbox2d/dynamics/World;->contactPoolCount:I
.line 108
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->m_gravity:Lorg/jbox2d/common/Vec2;
.line 136
invoke-static {}, Lorg/jbox2d/collision/shapes/ShapeType;->values()[Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v0
array-length v0, v0
invoke-static {}, Lorg/jbox2d/collision/shapes/ShapeType;->values()[Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v1
array-length v1, v1
filled-new-array {v0, v1}, [I
move-result-object v0
const-class v1, Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-static {v1, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[Lorg/jbox2d/dynamics/contacts/ContactRegister;
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->contactStacks:[[Lorg/jbox2d/dynamics/contacts/ContactRegister;
.line 587
new-instance v0, Lorg/jbox2d/dynamics/TimeStep;
invoke-direct {v0}, Lorg/jbox2d/dynamics/TimeStep;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
.line 588
new-instance v0, Lorg/jbox2d/common/Timer;
invoke-direct {v0}, Lorg/jbox2d/common/Timer;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->stepTimer:Lorg/jbox2d/common/Timer;
.line 589
new-instance v0, Lorg/jbox2d/common/Timer;
invoke-direct {v0}, Lorg/jbox2d/common/Timer;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->tempTimer:Lorg/jbox2d/common/Timer;
.line 675
new-instance v0, Lorg/jbox2d/common/Color3f;
invoke-direct {v0}, Lorg/jbox2d/common/Color3f;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
.line 676
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
.line 677
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->cA:Lorg/jbox2d/common/Vec2;
.line 678
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->cB:Lorg/jbox2d/common/Vec2;
.line 679
new-instance v0, Lorg/jbox2d/pooling/arrays/Vec2Array;
invoke-direct {v0}, Lorg/jbox2d/pooling/arrays/Vec2Array;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->avs:Lorg/jbox2d/pooling/arrays/Vec2Array;
.line 775
new-instance v0, Lorg/jbox2d/dynamics/WorldQueryWrapper;
invoke-direct {v0}, Lorg/jbox2d/dynamics/WorldQueryWrapper;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
.line 813
new-instance v0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;
invoke-direct {v0}, Lorg/jbox2d/dynamics/WorldRayCastWrapper;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
.line 814
new-instance v0, Lorg/jbox2d/collision/RayCastInput;
invoke-direct {v0}, Lorg/jbox2d/collision/RayCastInput;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
.line 1060
new-instance v0, Lorg/jbox2d/dynamics/Island;
invoke-direct {v0}, Lorg/jbox2d/dynamics/Island;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
.line 1061
const/16 v0, 0xa
new-array v0, v0, [Lorg/jbox2d/dynamics/Body;
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
.line 1062
new-instance v0, Lorg/jbox2d/common/Timer;
invoke-direct {v0}, Lorg/jbox2d/common/Timer;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->broadphaseTimer:Lorg/jbox2d/common/Timer;
.line 1227
new-instance v0, Lorg/jbox2d/dynamics/Island;
invoke-direct {v0}, Lorg/jbox2d/dynamics/Island;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->toiIsland:Lorg/jbox2d/dynamics/Island;
.line 1228
new-instance v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;
invoke-direct {v0}, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->toiInput:Lorg/jbox2d/collision/TimeOfImpact$TOIInput;
.line 1229
new-instance v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;
invoke-direct {v0}, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->toiOutput:Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;
.line 1230
new-instance v0, Lorg/jbox2d/dynamics/TimeStep;
invoke-direct {v0}, Lorg/jbox2d/dynamics/TimeStep;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
.line 1231
const/4 v0, 0x2
new-array v0, v0, [Lorg/jbox2d/dynamics/Body;
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->tempBodies:[Lorg/jbox2d/dynamics/Body;
.line 1232
new-instance v0, Lorg/jbox2d/common/Sweep;
invoke-direct {v0}, Lorg/jbox2d/common/Sweep;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->backup1:Lorg/jbox2d/common/Sweep;
.line 1233
new-instance v0, Lorg/jbox2d/common/Sweep;
invoke-direct {v0}, Lorg/jbox2d/common/Sweep;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->backup2:Lorg/jbox2d/common/Sweep;
.line 1560
const v0, 0x3df5c28f # 0.12f
iput v0, p0, Lorg/jbox2d/dynamics/World;->liquidLength:F
.line 1561
const/high16 v0, -0x40800000 # -1.0f
iput v0, p0, Lorg/jbox2d/dynamics/World;->averageLinearVel:F
.line 1562
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->liquidOffset:Lorg/jbox2d/common/Vec2;
.line 1563
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->circCenterMoved:Lorg/jbox2d/common/Vec2;
.line 1564
new-instance v0, Lorg/jbox2d/common/Color3f;
const/high16 v1, 0x3f800000 # 1.0f
invoke-direct {v0, v5, v5, v1}, Lorg/jbox2d/common/Color3f;-><init>(FFF)V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->liquidColor:Lorg/jbox2d/common/Color3f;
.line 1566
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->center:Lorg/jbox2d/common/Vec2;
.line 1567
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->axis:Lorg/jbox2d/common/Vec2;
.line 1568
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
.line 1569
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->v2:Lorg/jbox2d/common/Vec2;
.line 1570
new-instance v0, Lorg/jbox2d/pooling/arrays/Vec2Array;
invoke-direct {v0}, Lorg/jbox2d/pooling/arrays/Vec2Array;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->tlvertices:Lorg/jbox2d/pooling/arrays/Vec2Array;
.line 162
iput-object p2, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
.line 163
iput-object v4, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
.line 164
iput-object v4, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
.line 166
iput-object v4, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
.line 167
iput-object v4, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
.line 169
iput v2, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
.line 170
iput v2, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
.line 172
iput-boolean v3, p0, Lorg/jbox2d/dynamics/World;->m_warmStarting:Z
.line 173
iput-boolean v3, p0, Lorg/jbox2d/dynamics/World;->m_continuousPhysics:Z
.line 174
iput-boolean v2, p0, Lorg/jbox2d/dynamics/World;->m_subStepping:Z
.line 175
iput-boolean v3, p0, Lorg/jbox2d/dynamics/World;->m_stepComplete:Z
.line 177
iput-boolean v3, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
.line 178
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_gravity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, p1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 180
const/4 v0, 0x4
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
.line 182
const/4 v0, 0x0
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_inv_dt0:F
.line 184
new-instance v0, Lorg/jbox2d/dynamics/ContactManager;
invoke-direct {v0, p0, p3}, Lorg/jbox2d/dynamics/ContactManager;-><init>(Lorg/jbox2d/dynamics/World;Lorg/jbox2d/collision/broadphase/BroadPhase;)V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
.line 185
new-instance v0, Lorg/jbox2d/dynamics/Profile;
invoke-direct {v0}, Lorg/jbox2d/dynamics/Profile;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
.line 187
new-instance v0, Lorg/jbox2d/particle/ParticleSystem;
invoke-direct {v0, p0}, Lorg/jbox2d/particle/ParticleSystem;-><init>(Lorg/jbox2d/dynamics/World;)V
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
.line 189
invoke-direct {p0}, Lorg/jbox2d/dynamics/World;->initializeRegisters()V
.line 190
return-void
.end method
.method public constructor <init>(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/collision/broadphase/BroadPhaseStrategy;)V
.registers 5
.prologue
.line 158
new-instance v0, Lorg/jbox2d/collision/broadphase/DefaultBroadPhaseBuffer;
invoke-direct {v0, p3}, Lorg/jbox2d/collision/broadphase/DefaultBroadPhaseBuffer;-><init>(Lorg/jbox2d/collision/broadphase/BroadPhaseStrategy;)V
invoke-direct {p0, p1, p2, v0}, Lorg/jbox2d/dynamics/World;-><init>(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/collision/broadphase/BroadPhase;)V
.line 159
return-void
.end method
.method private addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/jbox2d/pooling/IDynamicStack",
"<",
"Lorg/jbox2d/dynamics/contacts/Contact;",
">;",
"Lorg/jbox2d/collision/shapes/ShapeType;",
"Lorg/jbox2d/collision/shapes/ShapeType;",
")V"
}
.end annotation
.prologue
.line 218
new-instance v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-direct {v0}, Lorg/jbox2d/dynamics/contacts/ContactRegister;-><init>()V
.line 219
iput-object p1, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->creator:Lorg/jbox2d/pooling/IDynamicStack;
.line 220
const/4 v1, 0x1
iput-boolean v1, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->primary:Z
.line 221
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->contactStacks:[[Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-virtual {p2}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v2
aget-object v1, v1, v2
invoke-virtual {p3}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v2
aput-object v0, v1, v2
.line 223
if-eq p2, p3, :cond_32
.line 224
new-instance v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-direct {v0}, Lorg/jbox2d/dynamics/contacts/ContactRegister;-><init>()V
.line 225
iput-object p1, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->creator:Lorg/jbox2d/pooling/IDynamicStack;
.line 226
const/4 v1, 0x0
iput-boolean v1, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->primary:Z
.line 227
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->contactStacks:[[Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-virtual {p3}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v2
aget-object v1, v1, v2
invoke-virtual {p2}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v2
aput-object v0, v1, v2
.line 229
:cond_32
return-void
.end method
.method private drawJoint(Lorg/jbox2d/dynamics/joints/Joint;)V
.registers 9
.prologue
const v6, 0x3f4ccccd # 0.8f
.line 1517
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v0
.line 1518
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v1
.line 1519
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getTransform()Lorg/jbox2d/common/Transform;
move-result-object v0
.line 1520
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Body;->getTransform()Lorg/jbox2d/common/Transform;
move-result-object v1
.line 1521
iget-object v0, v0, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
.line 1522
iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
.line 1523
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v2
.line 1524
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v3
.line 1525
invoke-virtual {p1, v2}, Lorg/jbox2d/dynamics/joints/Joint;->getAnchorA(Lorg/jbox2d/common/Vec2;)V
.line 1526
invoke-virtual {p1, v3}, Lorg/jbox2d/dynamics/joints/Joint;->getAnchorB(Lorg/jbox2d/common/Vec2;)V
.line 1528
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
const/high16 v5, 0x3f000000 # 0.5f
invoke-virtual {v4, v5, v6, v6}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 1530
sget-object v4, Lorg/jbox2d/dynamics/World$1;->$SwitchMap$org$jbox2d$dynamics$joints$JointType:[I
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/Joint;->getType()Lorg/jbox2d/dynamics/joints/JointType;
move-result-object v5
invoke-virtual {v5}, Lorg/jbox2d/dynamics/joints/JointType;->ordinal()I
move-result v5
aget v4, v4, v5
packed-switch v4, :pswitch_data_84
.line 1550
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v4, v0, v2, v5}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 1551
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v0, v2, v3, v4}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 1552
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v0, v1, v3, v2}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 1554
:goto_54
:pswitch_54
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v1, 0x2
invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 1555
return-void
.line 1533
:pswitch_5b
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v0, v2, v3, v1}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
goto :goto_54
.line 1537
:pswitch_63
check-cast p1, Lorg/jbox2d/dynamics/joints/PulleyJoint;
.line 1538
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/PulleyJoint;->getGroundAnchorA()Lorg/jbox2d/common/Vec2;
move-result-object v0
.line 1539
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/PulleyJoint;->getGroundAnchorB()Lorg/jbox2d/common/Vec2;
move-result-object v1
.line 1540
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v4, v0, v2, v5}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 1541
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v2, v1, v3, v4}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 1542
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v2, v0, v1, v3}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
goto :goto_54
.line 1530
nop
:pswitch_data_84
.packed-switch 0x1
:pswitch_5b
:pswitch_63
:pswitch_54
:pswitch_54
.end packed-switch
.end method
.method private drawParticleSystem(Lorg/jbox2d/particle/ParticleSystem;)V
.registers 8
.prologue
.line 1649
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0}, Lorg/jbox2d/callbacks/DebugDraw;->getFlags()I
move-result v0
and-int/lit16 v0, v0, 0x80
if-eqz v0, :cond_2c
const/4 v0, 0x1
.line 1650
:goto_b
invoke-virtual {p1}, Lorg/jbox2d/particle/ParticleSystem;->getParticleCount()I
move-result v2
.line 1651
if-eqz v2, :cond_2b
.line 1652
invoke-virtual {p1}, Lorg/jbox2d/particle/ParticleSystem;->getParticleRadius()F
move-result v3
.line 1653
invoke-virtual {p1}, Lorg/jbox2d/particle/ParticleSystem;->getParticlePositionBuffer()[Lorg/jbox2d/common/Vec2;
move-result-object v4
.line 1654
const/4 v1, 0x0
.line 1655
iget-object v5, p1, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v5, v5, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-eqz v5, :cond_24
.line 1656
invoke-virtual {p1}, Lorg/jbox2d/particle/ParticleSystem;->getParticleColorBuffer()[Lorg/jbox2d/particle/ParticleColor;
move-result-object v1
.line 1658
:cond_24
if-eqz v0, :cond_2e
.line 1659
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0, v4, v3, v1, v2}, Lorg/jbox2d/callbacks/DebugDraw;->drawParticlesWireframe([Lorg/jbox2d/common/Vec2;F[Lorg/jbox2d/particle/ParticleColor;I)V
.line 1665
:cond_2b
:goto_2b
return-void
.line 1649
:cond_2c
const/4 v0, 0x0
goto :goto_b
.line 1662
:cond_2e
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0, v4, v3, v1, v2}, Lorg/jbox2d/callbacks/DebugDraw;->drawParticles([Lorg/jbox2d/common/Vec2;F[Lorg/jbox2d/particle/ParticleColor;I)V
goto :goto_2b
.end method
.method private drawShape(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Color3f;Z)V
.registers 11
.prologue
const/4 v1, 0x0
.line 1573
sget-object v0, Lorg/jbox2d/dynamics/World$1;->$SwitchMap$org$jbox2d$collision$shapes$ShapeType:[I
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getType()Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v2
invoke-virtual {v2}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v2
aget v0, v0, v2
packed-switch v0, :pswitch_data_13a
.line 1646
:cond_10
:goto_10
return-void
.line 1575
:pswitch_11
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getShape()Lorg/jbox2d/collision/shapes/Shape;
move-result-object v0
check-cast v0, Lorg/jbox2d/collision/shapes/CircleShape;
.line 1578
iget-object v1, v0, Lorg/jbox2d/collision/shapes/CircleShape;->m_p:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->center:Lorg/jbox2d/common/Vec2;
invoke-static {p2, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 1579
iget v0, v0, Lorg/jbox2d/collision/shapes/CircleShape;->m_radius:F
.line 1580
iget-object v1, p2, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Rot;->getXAxis(Lorg/jbox2d/common/Vec2;)V
.line 1582
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getUserData()Ljava/lang/Object;
move-result-object v1
if-eqz v1, :cond_8f
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getUserData()Ljava/lang/Object;
move-result-object v1
sget-object v2, Lorg/jbox2d/dynamics/World;->LIQUID_INT:Ljava/lang/Integer;
invoke-virtual {v1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8f
.line 1583
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v0
.line 1584
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->liquidOffset:Lorg/jbox2d/common/Vec2;
iget-object v2, v0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1585
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->length()F
move-result v0
.line 1586
iget v1, p0, Lorg/jbox2d/dynamics/World;->averageLinearVel:F
const/high16 v2, -0x40800000 # -1.0f
cmpl-float v1, v1, v2
if-nez v1, :cond_81
.line 1587
iput v0, p0, Lorg/jbox2d/dynamics/World;->averageLinearVel:F
.line 1591
:goto_54
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->liquidOffset:Lorg/jbox2d/common/Vec2;
iget v1, p0, Lorg/jbox2d/dynamics/World;->liquidLength:F
iget v2, p0, Lorg/jbox2d/dynamics/World;->averageLinearVel:F
div-float/2addr v1, v2
const/high16 v2, 0x40000000 # 2.0f
div-float/2addr v1, v2
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 1592
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->circCenterMoved:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->center: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/dynamics/World;->liquidOffset:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1593
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->center:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->liquidOffset:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1594
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->center:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->circCenterMoved:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->liquidColor:Lorg/jbox2d/common/Color3f;
invoke-virtual {v0, v1, v2, v3}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
goto :goto_10
.line 1589
:cond_81
const v1, 0x3f7ae148 # 0.98f
iget v2, p0, Lorg/jbox2d/dynamics/World;->averageLinearVel:F
mul-float/2addr v1, v2
const v2, 0x3ca3d70a # 0.02f
mul-float/2addr v0, v2
add-float/2addr v0, v1
iput v0, p0, Lorg/jbox2d/dynamics/World;->averageLinearVel:F
goto :goto_54
.line 1597
:cond_8f
if-eqz p4, :cond_9c
.line 1598
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->center:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v2, v0, v3, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawCircle(Lorg/jbox2d/common/Vec2;FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
goto/16 :goto_10
.line 1600
:cond_9c
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->center:Lorg/jbox2d/common/Vec2;
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v2, v0, v3, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawSolidCircle(Lorg/jbox2d/common/Vec2;FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
goto/16 :goto_10
.line 1606
:pswitch_a7
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getShape()Lorg/jbox2d/collision/shapes/Shape;
move-result-object v0
check-cast v0, Lorg/jbox2d/collision/shapes/PolygonShape;
.line 1607
iget v2, v0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I
.line 1608
sget-boolean v3, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v3, :cond_bd
sget v3, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I
if-le v2, v3, :cond_bd
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1609
:cond_bd
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->tlvertices:Lorg/jbox2d/pooling/arrays/Vec2Array;
sget v4, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I
invoke-virtual {v3, v4}, Lorg/jbox2d/pooling/arrays/Vec2Array;->get(I)[Lorg/jbox2d/common/Vec2;
move-result-object v3
.line 1611
:goto_c5
if-ge v1, v2, :cond_d3
.line 1613
iget-object v4, v0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;
aget-object v4, v4, v1
aget-object v5, v3, v1
invoke-static {p2, v4, v5}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 1611
add-int/lit8 v1, v1, 0x1
goto :goto_c5
.line 1615
:cond_d3
if-eqz p4, :cond_dc
.line 1616
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0, v3, v2, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawPolygon([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Color3f;)V
goto/16 :goto_10
.line 1618
:cond_dc
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0, v3, v2, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawSolidPolygon([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Color3f;)V
goto/16 :goto_10
.line 1623
:pswitch_e3
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getShape()Lorg/jbox2d/collision/shapes/Shape;
move-result-object v0
check-cast v0, Lorg/jbox2d/collision/shapes/EdgeShape;
.line 1624
iget-object v1, v0, Lorg/jbox2d/collision/shapes/EdgeShape;->m_vertex1:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
invoke-static {p2, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 1625
iget-object v0, v0, Lorg/jbox2d/collision/shapes/EdgeShape;->m_vertex2:Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->v2:Lorg/jbox2d/common/Vec2;
invoke-static {p2, v0, v1}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 1626
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->v2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1, v2, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
goto/16 :goto_10
.line 1630
:pswitch_102
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getShape()Lorg/jbox2d/collision/shapes/Shape;
move-result-object v0
check-cast v0, Lorg/jbox2d/collision/shapes/ChainShape;
.line 1631
iget v2, v0, Lorg/jbox2d/collision/shapes/ChainShape;->m_count:I
.line 1632
iget-object v3, v0, Lorg/jbox2d/collision/shapes/ChainShape;->m_vertices:[Lorg/jbox2d/common/Vec2;
.line 1634
aget-object v0, v3, v1
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
invoke-static {p2, v0, v1}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 1635
const/4 v0, 0x1
:goto_114
if-ge v0, v2, :cond_10
.line 1636
aget-object v1, v3, v0
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->v2:Lorg/jbox2d/common/Vec2;
invoke-static {p2, v1, v4}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 1637
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->v2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v4, v5, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 1638
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
const v5, 0x3d4ccccd # 0.05f
invoke-virtual {v1, v4, v5, p3}, Lorg/jbox2d/callbacks/DebugDraw;->drawCircle(Lorg/jbox2d/common/Vec2;FLorg/jbox2d/common/Color3f;)V
.line 1639
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->v1:Lorg/jbox2d/common/Vec2;
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->v2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1635
add-int/lit8 v0, v0, 0x1
goto :goto_114
.line 1573
:pswitch_data_13a
.packed-switch 0x1
:pswitch_11
:pswitch_a7
:pswitch_e3
:pswitch_102
.end packed-switch
.end method
.method private initializeRegisters()V
.registers 4
.prologue
.line 232
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getCircleContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->CIRCLE:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->CIRCLE:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 233
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getPolyCircleContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->POLYGON:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->CIRCLE:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 234
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getPolyContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->POLYGON:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->POLYGON:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 235
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getEdgeCircleContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->EDGE:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->CIRCLE:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 236
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getEdgePolyContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->EDGE:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->POLYGON:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 237
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getChainCircleContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->CHAIN:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->CIRCLE:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 238
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->getChainPolyContactStack()Lorg/jbox2d/pooling/IDynamicStack;
move-result-object v0
sget-object v1, Lorg/jbox2d/collision/shapes/ShapeType;->CHAIN:Lorg/jbox2d/collision/shapes/ShapeType;
sget-object v2, Lorg/jbox2d/collision/shapes/ShapeType;->POLYGON:Lorg/jbox2d/collision/shapes/ShapeType;
invoke-direct {p0, v0, v1, v2}, Lorg/jbox2d/dynamics/World;->addType(Lorg/jbox2d/pooling/IDynamicStack;Lorg/jbox2d/collision/shapes/ShapeType;Lorg/jbox2d/collision/shapes/ShapeType;)V
.line 239
return-void
.end method
.method private solve(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 12
.prologue
const/4 v2, 0x0
const/4 v4, 0x1
.line 1065
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solveInit:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->startAccum()V
.line 1066
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solveVelocity:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->startAccum()V
.line 1067
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solvePosition:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->startAccum()V
.line 1070
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_19
if-eqz v0, :cond_25
.line 1071
iget-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_xf0:Lorg/jbox2d/common/Transform;
iget-object v3, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
invoke-virtual {v1, v3}, Lorg/jbox2d/common/Transform;->set(Lorg/jbox2d/common/Transform;)Lorg/jbox2d/common/Transform;
.line 1070
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
goto :goto_19
.line 1075
:cond_25
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
iget v1, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget v3, v3, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
iget v5, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v6, v6, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
invoke-virtual {v0, v1, v3, v5, v6}, Lorg/jbox2d/dynamics/Island;->init(IIILorg/jbox2d/callbacks/ContactListener;)V
.line 1079
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_38
if-eqz v0, :cond_43
.line 1080
iget v1, v0, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v1, v1, -0x2
iput v1, v0, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1079
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
goto :goto_38
.line 1082
:cond_43
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
:goto_47
if-eqz v0, :cond_52
.line 1083
iget v1, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v1, v1, -0x2
iput v1, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1082
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
goto :goto_47
.line 1085
:cond_52
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
:goto_54
if-eqz v0, :cond_5b
.line 1086
iput-boolean v2, v0, Lorg/jbox2d/dynamics/joints/Joint;->m_islandFlag:Z
.line 1085
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
goto :goto_54
.line 1090
:cond_5b
iget v6, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
.line 1091
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
array-length v0, v0
if-ge v0, v6, :cond_66
.line 1092
new-array v0, v6, [Lorg/jbox2d/dynamics/Body;
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
.line 1094
:cond_66
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
move-object v5, v0
:goto_69
if-eqz v5, :cond_186
.line 1095
iget v0, v5, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v0, v0, 0x1
if-ne v0, v4, :cond_75
.line 1094
:cond_71
iget-object v0, v5, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
move-object v5, v0
goto :goto_69
.line 1099
:cond_75
invoke-virtual {v5}, Lorg/jbox2d/dynamics/Body;->isAwake()Z
move-result v0
if-eqz v0, :cond_71
invoke-virtual {v5}, Lorg/jbox2d/dynamics/Body;->isActive()Z
move-result v0
if-eqz v0, :cond_71
.line 1104
invoke-virtual {v5}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v0
sget-object v1, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v0, v1, :cond_71
.line 1109
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Island;->clear()V
.line 1111
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
aput-object v5, v0, v2
.line 1112
iget v0, v5, Lorg/jbox2d/dynamics/Body;->m_flags:I
or-int/lit8 v0, v0, 0x1
iput v0, v5, Lorg/jbox2d/dynamics/Body;->m_flags:I
move v1, v4
.line 1115
:cond_99
:goto_99
if-lez v1, :cond_15d
.line 1117
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
add-int/lit8 v1, v1, -0x1
aget-object v7, v0, v1
.line 1118
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_b1
invoke-virtual {v7}, Lorg/jbox2d/dynamics/Body;->isActive()Z
move-result v0
if-eq v0, v4, :cond_b1
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1119
:cond_b1
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
invoke-virtual {v0, v7}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/Body;)V
.line 1122
invoke-virtual {v7, v4}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 1126
invoke-virtual {v7}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v0
sget-object v3, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v0, v3, :cond_99
.line 1131
iget-object v0, v7, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
move-object v3, v0
move v0, v1
:goto_c5
if-eqz v3, :cond_118
.line 1132
iget-object v1, v3, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
.line 1135
iget v8, v1, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v8, v8, 0x1
if-ne v8, v4, :cond_d3
.line 1131
:cond_cf
:goto_cf
iget-object v1, v3, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
move-object v3, v1
goto :goto_c5
.line 1140
:cond_d3
invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/Contact;->isEnabled()Z
move-result v8
if-eqz v8, :cond_cf
invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/Contact;->isTouching()Z
move-result v8
if-eqz v8, :cond_cf
.line 1145
iget-object v8, v1, Lorg/jbox2d/dynamics/contacts/Contact;->m_fixtureA:Lorg/jbox2d/dynamics/Fixture;
iget-boolean v8, v8, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z
.line 1146
iget-object v9, v1, Lorg/jbox2d/dynamics/contacts/Contact;->m_fixtureB:Lorg/jbox2d/dynamics/Fixture;
iget-boolean v9, v9, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z
.line 1147
if-nez v8, :cond_cf
if-nez v9, :cond_cf
.line 1151
iget-object v8, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
invoke-virtual {v8, v1}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/contacts/Contact;)V
.line 1152
iget v8, v1, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
or-int/lit8 v8, v8, 0x1
iput v8, v1, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1154
iget-object v8, v3, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 1157
iget v1, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v1, v1, 0x1
if-eq v1, v4, :cond_cf
.line 1161
sget-boolean v1, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v1, :cond_10a
if-lt v0, v6, :cond_10a
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1162
:cond_10a
iget-object v9, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
add-int/lit8 v1, v0, 0x1
aput-object v8, v9, v0
.line 1163
iget v0, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
or-int/lit8 v0, v0, 0x1
iput v0, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
move v0, v1
goto :goto_cf
.line 1167
:cond_118
iget-object v1, v7, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
move-object v3, v1
:goto_11b
if-eqz v3, :cond_15a
.line 1168
iget-object v1, v3, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
iget-boolean v1, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_islandFlag:Z
if-ne v1, v4, :cond_127
.line 1167
:cond_123
:goto_123
iget-object v1, v3, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
move-object v3, v1
goto :goto_11b
.line 1172
:cond_127
iget-object v7, v3, Lorg/jbox2d/dynamics/joints/JointEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 1175
invoke-virtual {v7}, Lorg/jbox2d/dynamics/Body;->isActive()Z
move-result v1
if-eqz v1, :cond_123
.line 1179
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
iget-object v8, v3, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v1, v8}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/joints/Joint;)V
.line 1180
iget-object v1, v3, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
iput-boolean v4, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_islandFlag:Z
.line 1182
iget v1, v7, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v1, v1, 0x1
if-eq v1, v4, :cond_123
.line 1186
sget-boolean v1, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v1, :cond_14c
if-lt v0, v6, :cond_14c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1187
:cond_14c
iget-object v8, p0, Lorg/jbox2d/dynamics/World;->stack:[Lorg/jbox2d/dynamics/Body;
add-int/lit8 v1, v0, 0x1
aput-object v7, v8, v0
.line 1188
iget v0, v7, Lorg/jbox2d/dynamics/Body;->m_flags:I
or-int/lit8 v0, v0, 0x1
iput v0, v7, Lorg/jbox2d/dynamics/Body;->m_flags:I
move v0, v1
goto :goto_123
:cond_15a
move v1, v0
.line 1190
goto/16 :goto_99
.line 1191
:cond_15d
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->m_gravity:Lorg/jbox2d/common/Vec2;
iget-boolean v7, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
invoke-virtual {v0, v1, p1, v3, v7}, Lorg/jbox2d/dynamics/Island;->solve(Lorg/jbox2d/dynamics/Profile;Lorg/jbox2d/dynamics/TimeStep;Lorg/jbox2d/common/Vec2;Z)V
move v0, v2
.line 1194
:goto_169
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
iget v1, v1, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v0, v1, :cond_71
.line 1196
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->island:Lorg/jbox2d/dynamics/Island;
iget-object v1, v1, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v1, v1, v0
.line 1197
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v3
sget-object v7, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v3, v7, :cond_183
.line 1198
iget v3, v1, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v3, v3, -0x2
iput v3, v1, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1194
:cond_183
add-int/lit8 v0, v0, 0x1
goto :goto_169
.line 1202
:cond_186
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solveInit:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->endAccum()V
.line 1203
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solveVelocity:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->endAccum()V
.line 1204
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solvePosition:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Profile$ProfileEntry;->endAccum()V
.line 1206
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->broadphaseTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 1208
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_1a2
if-eqz v0, :cond_1bb
.line 1210
iget v1, v0, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v1, v1, 0x1
if-nez v1, :cond_1af
.line 1208
:cond_1aa
:goto_1aa
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getNext()Lorg/jbox2d/dynamics/Body;
move-result-object v0
goto :goto_1a2
.line 1214
:cond_1af
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v1
sget-object v2, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v1, v2, :cond_1aa
.line 1219
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->synchronizeFixtures()V
goto :goto_1aa
.line 1223
:cond_1bb
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/ContactManager;->findNewContacts()V
.line 1224
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->broadphase:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->broadphaseTimer: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;->record(F)V
.line 1225
return-void
.end method
.method private solveTOI(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 15
.prologue
.line 1237
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->toiIsland:Lorg/jbox2d/dynamics/Island;
.line 1238
sget v0, Lorg/jbox2d/common/Settings;->maxTOIContacts:I
mul-int/lit8 v0, v0, 0x2
sget v1, Lorg/jbox2d/common/Settings;->maxTOIContacts:I
const/4 v2, 0x0
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v3, v3, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
invoke-virtual {v5, v0, v1, v2, v3}, Lorg/jbox2d/dynamics/Island;->init(IIILorg/jbox2d/callbacks/ContactListener;)V
.line 1240
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_stepComplete:Z
if-eqz v0, :cond_98
.line 1241
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_16
if-eqz v0, :cond_26
.line 1242
iget v1, v0, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v1, v1, -0x2
iput v1, v0, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1243
iget-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
const/4 v2, 0x0
iput v2, v1, Lorg/jbox2d/common/Sweep;->alpha0:F
.line 1241
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
goto :goto_16
.line 1246
:cond_26
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
:goto_2a
if-eqz v0, :cond_98
.line 1248
iget v1, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v1, v1, -0x22
iput v1, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1249
const/4 v1, 0x0
iput v1, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_toiCount:F
.line 1250
const/high16 v1, 0x3f800000 # 1.0f
iput v1, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_toi:F
.line 1246
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
goto :goto_2a
.line 1360
:cond_3c
invoke-virtual {v2}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v1
.line 1361
invoke-virtual {v2}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v3
.line 1362
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v4
.line 1363
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v3
.line 1365
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->backup1:Lorg/jbox2d/common/Sweep;
iget-object v6, v4, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v1, v6}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1366
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->backup2:Lorg/jbox2d/common/Sweep;
iget-object v6, v3, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v1, v6}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1368
invoke-virtual {v4, v0}, Lorg/jbox2d/dynamics/Body;->advance(F)V
.line 1369
invoke-virtual {v3, v0}, Lorg/jbox2d/dynamics/Body;->advance(F)V
.line 1372
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v1, v1, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
invoke-virtual {v2, v1}, Lorg/jbox2d/dynamics/contacts/Contact;->update(Lorg/jbox2d/callbacks/ContactListener;)V
.line 1373
iget v1, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v1, v1, -0x21
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1374
iget v1, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_toiCount:F
const/high16 v6, 0x3f800000 # 1.0f
add-float/2addr v1, v6
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_toiCount:F
.line 1377
invoke-virtual {v2}, Lorg/jbox2d/dynamics/contacts/Contact;->isEnabled()Z
move-result v1
if-eqz v1, :cond_80
invoke-virtual {v2}, Lorg/jbox2d/dynamics/contacts/Contact;->isTouching()Z
move-result v1
if-nez v1, :cond_1e4
.line 1379
:cond_80
const/4 v0, 0x0
invoke-virtual {v2, v0}, Lorg/jbox2d/dynamics/contacts/Contact;->setEnabled(Z)V
.line 1380
iget-object v0, v4, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->backup1:Lorg/jbox2d/common/Sweep;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1381
iget-object v0, v3, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->backup2:Lorg/jbox2d/common/Sweep;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1382
invoke-virtual {v4}, Lorg/jbox2d/dynamics/Body;->synchronizeTransform()V
.line 1383
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Body;->synchronizeTransform()V
.line 1257
:cond_98
const/4 v2, 0x0
.line 1258
const/high16 v0, 0x3f800000 # 1.0f
.line 1260
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v3, v1, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
:goto_9f
if-eqz v3, :cond_1d7
.line 1262
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->isEnabled()Z
move-result v1
if-nez v1, :cond_ac
move-object v1, v2
.line 1260
:goto_a8
iget-object v3, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
move-object v2, v1
goto :goto_9f
.line 1267
:cond_ac
iget v1, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_toiCount:F
sget v4, Lorg/jbox2d/common/Settings;->maxSubSteps:I
int-to-float v4, v4
cmpl-float v1, v1, v4
if-lez v1, :cond_b7
move-object v1, v2
.line 1268
goto :goto_a8
.line 1272
:cond_b7
iget v1, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v1, v1, 0x20
if-eqz v1, :cond_c6
.line 1274
iget v1, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_toi:F
.line 1346
:goto_bf
cmpg-float v4, v1, v0
if-gez v4, :cond_32c
move v0, v1
move-object v1, v3
.line 1349
goto :goto_a8
.line 1276
:cond_c6
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v6
.line 1277
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v7
.line 1280
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Fixture;->isSensor()Z
move-result v1
if-nez v1, :cond_32c
invoke-virtual {v7}, Lorg/jbox2d/dynamics/Fixture;->isSensor()Z
move-result v1
if-eqz v1, :cond_dc
move-object v1, v2
.line 1281
goto :goto_a8
.line 1284
:cond_dc
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v8
.line 1285
invoke-virtual {v7}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v9
.line 1287
iget-object v10, v8, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
.line 1288
iget-object v11, v9, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
.line 1289
sget-boolean v1, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v1, :cond_fa
sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v10, v1, :cond_fa
sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v11, v1, :cond_fa
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1291
:cond_fa
invoke-virtual {v8}, Lorg/jbox2d/dynamics/Body;->isAwake()Z
move-result v1
if-eqz v1, :cond_116
sget-object v1, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v10, v1, :cond_116
const/4 v1, 0x1
.line 1292
:goto_105
invoke-virtual {v9}, Lorg/jbox2d/dynamics/Body;->isAwake()Z
move-result v4
if-eqz v4, :cond_118
sget-object v4, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v11, v4, :cond_118
const/4 v4, 0x1
.line 1295
:goto_110
if-nez v1, :cond_11a
if-nez v4, :cond_11a
move-object v1, v2
.line 1296
goto :goto_a8
.line 1291
:cond_116
const/4 v1, 0x0
goto :goto_105
.line 1292
:cond_118
const/4 v4, 0x0
goto :goto_110
.line 1299
:cond_11a
invoke-virtual {v8}, Lorg/jbox2d/dynamics/Body;->isBullet()Z
move-result v1
if-nez v1, :cond_124
sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v10, v1, :cond_137
:cond_124
const/4 v1, 0x1
.line 1300
:goto_125
invoke-virtual {v9}, Lorg/jbox2d/dynamics/Body;->isBullet()Z
move-result v4
if-nez v4, :cond_12f
sget-object v4, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v11, v4, :cond_139
:cond_12f
const/4 v4, 0x1
.line 1303
:goto_130
if-nez v1, :cond_13b
if-nez v4, :cond_13b
move-object v1, v2
.line 1304
goto/16 :goto_a8
.line 1299
:cond_137
const/4 v1, 0x0
goto :goto_125
.line 1300
:cond_139
const/4 v4, 0x0
goto :goto_130
.line 1309
:cond_13b
iget-object v1, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v1, v1, Lorg/jbox2d/common/Sweep;->alpha0:F
.line 1311
iget-object v4, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v4, v4, Lorg/jbox2d/common/Sweep;->alpha0:F
iget-object v10, v9, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v10, v10, Lorg/jbox2d/common/Sweep;->alpha0:F
cmpg-float v4, v4, v10
if-gez v4, :cond_164
.line 1312
iget-object v1, v9, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v1, v1, Lorg/jbox2d/common/Sweep;->alpha0:F
.line 1313
iget-object v4, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v4, v1}, Lorg/jbox2d/common/Sweep;->advance(F)V
.line 1319
:cond_154
:goto_154
sget-boolean v4, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v4, :cond_17a
const/high16 v4, 0x3f800000 # 1.0f
cmpg-float v4, v1, v4
if-ltz v4, :cond_17a
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1314
:cond_164
iget-object v4, v9, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v4, v4, Lorg/jbox2d/common/Sweep;->alpha0:F
iget-object v10, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v10, v10, Lorg/jbox2d/common/Sweep;->alpha0:F
cmpg-float v4, v4, v10
if-gez v4, :cond_154
.line 1315
iget-object v1, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v1, v1, Lorg/jbox2d/common/Sweep;->alpha0:F
.line 1316
iget-object v4, v9, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v4, v1}, Lorg/jbox2d/common/Sweep;->advance(F)V
goto :goto_154
.line 1321
:cond_17a
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexA()I
move-result v4
.line 1322
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexB()I
move-result v10
.line 1325
iget-object v11, p0, Lorg/jbox2d/dynamics/World;->toiInput:Lorg/jbox2d/collision/TimeOfImpact$TOIInput;
.line 1326
iget-object v12, v11, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Fixture;->getShape()Lorg/jbox2d/collision/shapes/Shape;
move-result-object v6
invoke-virtual {v12, v6, v4}, Lorg/jbox2d/collision/Distance$DistanceProxy;->set(Lorg/jbox2d/collision/shapes/Shape;I)V
.line 1327
iget-object v4, v11, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
invoke-virtual {v7}, Lorg/jbox2d/dynamics/Fixture;->getShape()Lorg/jbox2d/collision/shapes/Shape;
move-result-object v6
invoke-virtual {v4, v6, v10}, Lorg/jbox2d/collision/Distance$DistanceProxy;->set(Lorg/jbox2d/collision/shapes/Shape;I)V
.line 1328
iget-object v4, v11, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->sweepA:Lorg/jbox2d/common/Sweep;
iget-object v6, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1329
iget-object v4, v11, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->sweepB:Lorg/jbox2d/common/Sweep;
iget-object v6, v9, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1330
const/high16 v4, 0x3f800000 # 1.0f
iput v4, v11, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->tMax:F
.line 1332
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->getTimeOfImpact()Lorg/jbox2d/collision/TimeOfImpact;
move-result-object v4
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->toiOutput:Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;
invoke-virtual {v4, v6, v11}, Lorg/jbox2d/collision/TimeOfImpact;->timeOfImpact(Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;Lorg/jbox2d/collision/TimeOfImpact$TOIInput;)V
.line 1335
iget-object v4, p0, Lorg/jbox2d/dynamics/World;->toiOutput:Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;
iget v4, v4, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
.line 1336
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->toiOutput:Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;
iget-object v6, v6, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
sget-object v7, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->TOUCHING:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
if-ne v6, v7, :cond_1d4
.line 1337
const/high16 v6, 0x3f800000 # 1.0f
sub-float/2addr v6, v1
mul-float/2addr v4, v6
add-float/2addr v1, v4
const/high16 v4, 0x3f800000 # 1.0f
invoke-static {v1, v4}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v1
.line 1342
:goto_1ca
iput v1, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_toi:F
.line 1343
iget v4, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
or-int/lit8 v4, v4, 0x20
iput v4, v3, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
goto/16 :goto_bf
.line 1339
:cond_1d4
const/high16 v1, 0x3f800000 # 1.0f
goto :goto_1ca
.line 1353
:cond_1d7
if-eqz v2, :cond_1e0
const v1, 0x3f7fffec # 0.9999988f
cmpg-float v1, v1, v0
if-gez v1, :cond_3c
.line 1355
:cond_1e0
const/4 v0, 0x1
iput-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_stepComplete:Z
.line 1514
:goto_1e3
return-void
.line 1387
:cond_1e4
const/4 v1, 0x1
invoke-virtual {v4, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 1388
const/4 v1, 0x1
invoke-virtual {v3, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 1391
invoke-virtual {v5}, Lorg/jbox2d/dynamics/Island;->clear()V
.line 1392
invoke-virtual {v5, v4}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/Body;)V
.line 1393
invoke-virtual {v5, v3}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/Body;)V
.line 1394
invoke-virtual {v5, v2}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/contacts/Contact;)V
.line 1396
iget v1, v4, Lorg/jbox2d/dynamics/Body;->m_flags:I
or-int/lit8 v1, v1, 0x1
iput v1, v4, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1397
iget v1, v3, Lorg/jbox2d/dynamics/Body;->m_flags:I
or-int/lit8 v1, v1, 0x1
iput v1, v3, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1398
iget v1, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
or-int/lit8 v1, v1, 0x1
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1401
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempBodies:[Lorg/jbox2d/dynamics/Body;
const/4 v2, 0x0
aput-object v4, v1, v2
.line 1402
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempBodies:[Lorg/jbox2d/dynamics/Body;
const/4 v2, 0x1
aput-object v3, v1, v2
.line 1403
const/4 v1, 0x0
move v2, v1
:goto_216
const/4 v1, 0x2
if-ge v2, v1, :cond_2be
.line 1404
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempBodies:[Lorg/jbox2d/dynamics/Body;
aget-object v6, v1, v2
.line 1405
iget-object v1, v6, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v7, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v1, v7, :cond_22d
.line 1406
iget-object v1, v6, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
:goto_225
if-eqz v1, :cond_22d
.line 1407
iget v7, v5, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
iget v8, v5, Lorg/jbox2d/dynamics/Island;->m_bodyCapacity:I
if-ne v7, v8, :cond_231
.line 1403
:cond_22d
add-int/lit8 v1, v2, 0x1
move v2, v1
goto :goto_216
.line 1411
:cond_231
iget v7, v5, Lorg/jbox2d/dynamics/Island;->m_contactCount:I
iget v8, v5, Lorg/jbox2d/dynamics/Island;->m_contactCapacity:I
if-eq v7, v8, :cond_22d
.line 1415
iget-object v7, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
.line 1418
iget v8, v7, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v8, v8, 0x1
if-eqz v8, :cond_242
.line 1406
:cond_23f
:goto_23f
iget-object v1, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
goto :goto_225
.line 1423
:cond_242
iget-object v8, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 1424
iget-object v9, v8, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v10, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v9, v10, :cond_256
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Body;->isBullet()Z
move-result v9
if-nez v9, :cond_256
invoke-virtual {v8}, Lorg/jbox2d/dynamics/Body;->isBullet()Z
move-result v9
if-eqz v9, :cond_23f
.line 1430
:cond_256
iget-object v9, v7, Lorg/jbox2d/dynamics/contacts/Contact;->m_fixtureA:Lorg/jbox2d/dynamics/Fixture;
iget-boolean v9, v9, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z
.line 1431
iget-object v10, v7, Lorg/jbox2d/dynamics/contacts/Contact;->m_fixtureB:Lorg/jbox2d/dynamics/Fixture;
iget-boolean v10, v10, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z
.line 1432
if-nez v9, :cond_23f
if-nez v10, :cond_23f
.line 1437
iget-object v9, p0, Lorg/jbox2d/dynamics/World;->backup1:Lorg/jbox2d/common/Sweep;
iget-object v10, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
invoke-virtual {v9, v10}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1438
iget v9, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v9, v9, 0x1
if-nez v9, :cond_272
.line 1439
invoke-virtual {v8, v0}, Lorg/jbox2d/dynamics/Body;->advance(F)V
.line 1443
:cond_272
iget-object v9, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v9, v9, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
invoke-virtual {v7, v9}, Lorg/jbox2d/dynamics/contacts/Contact;->update(Lorg/jbox2d/callbacks/ContactListener;)V
.line 1446
invoke-virtual {v7}, Lorg/jbox2d/dynamics/contacts/Contact;->isEnabled()Z
move-result v9
if-nez v9, :cond_28a
.line 1447
iget-object v7, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v9, p0, Lorg/jbox2d/dynamics/World;->backup1:Lorg/jbox2d/common/Sweep;
invoke-virtual {v7, v9}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1448
invoke-virtual {v8}, Lorg/jbox2d/dynamics/Body;->synchronizeTransform()V
goto :goto_23f
.line 1453
:cond_28a
invoke-virtual {v7}, Lorg/jbox2d/dynamics/contacts/Contact;->isTouching()Z
move-result v9
if-nez v9, :cond_29b
.line 1454
iget-object v7, v8, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v9, p0, Lorg/jbox2d/dynamics/World;->backup1:Lorg/jbox2d/common/Sweep;
invoke-virtual {v7, v9}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 1455
invoke-virtual {v8}, Lorg/jbox2d/dynamics/Body;->synchronizeTransform()V
goto :goto_23f
.line 1460
:cond_29b
iget v9, v7, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
or-int/lit8 v9, v9, 0x1
iput v9, v7, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1461
invoke-virtual {v5, v7}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/contacts/Contact;)V
.line 1464
iget v7, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v7, v7, 0x1
if-nez v7, :cond_23f
.line 1469
iget v7, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
or-int/lit8 v7, v7, 0x1
iput v7, v8, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1471
iget-object v7, v8, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v9, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v7, v9, :cond_2ba
.line 1472
const/4 v7, 0x1
invoke-virtual {v8, v7}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 1475
:cond_2ba
invoke-virtual {v5, v8}, Lorg/jbox2d/dynamics/Island;->add(Lorg/jbox2d/dynamics/Body;)V
goto :goto_23f
.line 1480
:cond_2be
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
const/high16 v2, 0x3f800000 # 1.0f
sub-float v0, v2, v0
iget v2, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
mul-float/2addr v0, v2
iput v0, v1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
.line 1481
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
const/high16 v1, 0x3f800000 # 1.0f
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
iget v2, v2, Lorg/jbox2d/dynamics/TimeStep;->dt:F
div-float/2addr v1, v2
iput v1, v0, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
.line 1482
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
const/high16 v1, 0x3f800000 # 1.0f
iput v1, v0, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
.line 1483
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
const/16 v1, 0x14
iput v1, v0, Lorg/jbox2d/dynamics/TimeStep;->positionIterations:I
.line 1484
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
iget v1, p1, Lorg/jbox2d/dynamics/TimeStep;->velocityIterations:I
iput v1, v0, Lorg/jbox2d/dynamics/TimeStep;->velocityIterations:I
.line 1485
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
const/4 v1, 0x0
iput-boolean v1, v0, Lorg/jbox2d/dynamics/TimeStep;->warmStarting:Z
.line 1486
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->subStep:Lorg/jbox2d/dynamics/TimeStep;
iget v1, v4, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
iget v2, v3, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
invoke-virtual {v5, v0, v1, v2}, Lorg/jbox2d/dynamics/Island;->solveTOI(Lorg/jbox2d/dynamics/TimeStep;II)V
.line 1489
const/4 v0, 0x0
:goto_2f5
iget v1, v5, Lorg/jbox2d/dynamics/Island;->m_bodyCount:I
if-ge v0, v1, :cond_31e
.line 1490
iget-object v1, v5, Lorg/jbox2d/dynamics/Island;->m_bodies:[Lorg/jbox2d/dynamics/Body;
aget-object v1, v1, v0
.line 1491
iget v2, v1, Lorg/jbox2d/dynamics/Body;->m_flags:I
and-int/lit8 v2, v2, -0x2
iput v2, v1, Lorg/jbox2d/dynamics/Body;->m_flags:I
.line 1493
iget-object v2, v1, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v3, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v2, v3, :cond_30c
.line 1489
:cond_309
add-int/lit8 v0, v0, 0x1
goto :goto_2f5
.line 1497
:cond_30c
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Body;->synchronizeFixtures()V
.line 1500
iget-object v1, v1, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
:goto_311
if-eqz v1, :cond_309
.line 1501
iget-object v2, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
iget v3, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v3, v3, -0x22
iput v3, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 1500
iget-object v1, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
goto :goto_311
.line 1507
:cond_31e
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/ContactManager;->findNewContacts()V
.line 1509
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_subStepping:Z
if-eqz v0, :cond_98
.line 1510
const/4 v0, 0x0
iput-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_stepComplete:Z
goto/16 :goto_1e3
:cond_32c
move-object v1, v2
goto/16 :goto_a8
.end method
# virtual methods
.method public clearForces()V
.registers 3
.prologue
.line 669
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_2
if-eqz v0, :cond_11
.line 670
iget-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 671
const/4 v1, 0x0
iput v1, v0, Lorg/jbox2d/dynamics/Body;->m_torque:F
.line 669
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getNext()Lorg/jbox2d/dynamics/Body;
move-result-object v0
goto :goto_2
.line 673
:cond_11
return-void
.end method
.method public computeParticleCollisionEnergy()F
.registers 2
.prologue
.line 2006
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->computeParticleCollisionEnergy()F
move-result v0
return v0
.end method
.method public createBody(Lorg/jbox2d/dynamics/BodyDef;)Lorg/jbox2d/dynamics/Body;
.registers 4
.prologue
const/4 v0, 0x0
.line 339
sget-boolean v1, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v1, :cond_11
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v1
if-eqz v1, :cond_11
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 340
:cond_11
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v1
if-eqz v1, :cond_18
.line 355
:goto_17
return-object v0
.line 344
:cond_18
new-instance v1, Lorg/jbox2d/dynamics/Body;
invoke-direct {v1, p1, p0}, Lorg/jbox2d/dynamics/Body;-><init>(Lorg/jbox2d/dynamics/BodyDef;Lorg/jbox2d/dynamics/World;)V
.line 347
iput-object v0, v1, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;
.line 348
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
iput-object v0, v1, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
.line 349
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
if-eqz v0, :cond_2b
.line 350
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
iput-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;
.line 352
:cond_2b
iput-object v1, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
.line 353
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
move-object v0, v1
.line 355
goto :goto_17
.end method
.method public createJoint(Lorg/jbox2d/dynamics/joints/JointDef;)Lorg/jbox2d/dynamics/joints/Joint;
.registers 6
.prologue
const/4 v0, 0x0
.line 441
sget-boolean v1, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v1, :cond_11
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v1
if-eqz v1, :cond_11
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 442
:cond_11
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v1
if-eqz v1, :cond_18
.line 495
:goto_17
return-object v0
.line 446
:cond_18
invoke-static {p0, p1}, Lorg/jbox2d/dynamics/joints/Joint;->create(Lorg/jbox2d/dynamics/World;Lorg/jbox2d/dynamics/joints/JointDef;)Lorg/jbox2d/dynamics/joints/Joint;
move-result-object v1
.line 449
iput-object v0, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;
.line 450
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
.line 451
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
if-eqz v2, :cond_2a
.line 452
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v1, v2, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;
.line 454
:cond_2a
iput-object v1, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
.line 455
iget v2, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
add-int/lit8 v2, v2, 0x1
iput v2, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
.line 458
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v1, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
.line 459
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v3
iput-object v3, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 460
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v0, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 461
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v3
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v3, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 462
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v2
iget-object v2, v2, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
if-eqz v2, :cond_5e
.line 463
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v2
iget-object v2, v2, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v3, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v3, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 465
:cond_5e
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v2
iget-object v3, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v3, v2, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 467
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v1, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
.line 468
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v3
iput-object v3, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 469
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v0, v2, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 470
iget-object v0, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v2
iget-object v2, v2, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 471
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
if-eqz v0, :cond_92
.line 472
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 474
:cond_92
invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iget-object v2, v1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v2, v0, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 476
iget-object v2, p1, Lorg/jbox2d/dynamics/joints/JointDef;->bodyA:Lorg/jbox2d/dynamics/Body;
.line 477
iget-object v0, p1, Lorg/jbox2d/dynamics/joints/JointDef;->bodyB:Lorg/jbox2d/dynamics/Body;
.line 480
iget-boolean v3, p1, Lorg/jbox2d/dynamics/joints/JointDef;->collideConnected:Z
if-nez v3, :cond_b4
.line 481
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getContactList()Lorg/jbox2d/dynamics/contacts/ContactEdge;
move-result-object v0
.line 482
:goto_a6
if-eqz v0, :cond_b4
.line 483
iget-object v3, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
if-ne v3, v2, :cond_b1
.line 486
iget-object v3, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->flagForFiltering()V
.line 489
:cond_b1
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
goto :goto_a6
:cond_b4
move-object v0, v1
.line 495
goto/16 :goto_17
.end method
.method public createParticle(Lorg/jbox2d/particle/ParticleDef;)I
.registers 3
.prologue
.line 1677
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1678
:cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_18
.line 1679
const/4 v0, 0x0
.line 1682
:goto_17
return v0
.line 1681
:cond_18
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->createParticle(Lorg/jbox2d/particle/ParticleDef;)I
move-result v0
goto :goto_17
.end method
.method public createParticleGroup(Lorg/jbox2d/particle/ParticleGroupDef;)Lorg/jbox2d/particle/ParticleGroup;
.registers 3
.prologue
.line 1744
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1745
:cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_18
.line 1746
const/4 v0, 0x0
.line 1749
:goto_17
return-object v0
.line 1748
:cond_18
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->createParticleGroup(Lorg/jbox2d/particle/ParticleGroupDef;)Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
goto :goto_17
.end method
.method public destroyBody(Lorg/jbox2d/dynamics/Body;)V
.registers 7
.prologue
const/4 v4, 0x0
.line 367
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_f
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
if-gtz v0, :cond_f
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 368
:cond_f
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_1f
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_1f
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 369
:cond_1f
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_26
.line 430
:goto_25
return-void
.line 374
:cond_26
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 375
:goto_28
if-eqz v0, :cond_40
.line 377
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 378
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
if-eqz v2, :cond_37
.line 379
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
invoke-interface {v2, v3}, Lorg/jbox2d/callbacks/DestructionListener;->sayGoodbye(Lorg/jbox2d/dynamics/joints/Joint;)V
.line 382
:cond_37
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/World;->destroyJoint(Lorg/jbox2d/dynamics/joints/Joint;)Z
.line 384
iput-object v1, p1, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
move-object v0, v1
.line 385
goto :goto_28
.line 386
:cond_40
iput-object v4, p1, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 389
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 390
:goto_44
if-eqz v0, :cond_51
.line 392
iget-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 393
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v2, v0}, Lorg/jbox2d/dynamics/ContactManager;->destroy(Lorg/jbox2d/dynamics/contacts/Contact;)V
move-object v0, v1
.line 394
goto :goto_44
.line 395
:cond_51
iput-object v4, p1, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 397
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;
.line 398
:goto_55
if-eqz v0, :cond_76
.line 400
iget-object v1, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;
.line 402
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
if-eqz v2, :cond_62
.line 403
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
invoke-interface {v2, v0}, Lorg/jbox2d/callbacks/DestructionListener;->sayGoodbye(Lorg/jbox2d/dynamics/Fixture;)V
.line 406
:cond_62
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v2, v2, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-virtual {v0, v2}, Lorg/jbox2d/dynamics/Fixture;->destroyProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;)V
.line 407
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Fixture;->destroy()V
.line 409
iput-object v1, p1, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;
.line 410
iget v0, p1, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I
add-int/lit8 v0, v0, -0x1
iput v0, p1, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I
move-object v0, v1
.line 411
goto :goto_55
.line 412
:cond_76
iput-object v4, p1, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;
.line 413
const/4 v0, 0x0
iput v0, p1, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I
.line 416
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;
if-eqz v0, :cond_85
.line 417
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;
iget-object v1, p1, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
iput-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
.line 420
:cond_85
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
if-eqz v0, :cond_8f
.line 421
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
iget-object v1, p1, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;
iput-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;
.line 424
:cond_8f
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
if-ne p1, v0, :cond_97
.line 425
iget-object v0, p1, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
iput-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
.line 428
:cond_97
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
goto :goto_25
.end method
.method public destroyJoint(Lorg/jbox2d/dynamics/joints/Joint;)Z
.registers 9
.prologue
const/4 v0, 0x1
const/4 v6, 0x0
.line 505
sget-boolean v1, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v1, :cond_12
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v1
if-eqz v1, :cond_12
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 506
:cond_12
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v1
if-eqz v1, :cond_1a
.line 507
const/4 v0, 0x0
.line 583
:cond_19
return v0
.line 510
:cond_1a
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/Joint;->getCollideConnected()Z
move-result v1
.line 513
iget-object v2, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;
if-eqz v2, :cond_28
.line 514
iget-object v2, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;
iget-object v3, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v3, v2, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
.line 517
:cond_28
iget-object v2, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
if-eqz v2, :cond_32
.line 518
iget-object v2, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
iget-object v3, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v3, v2, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;
.line 521
:cond_32
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
if-ne p1, v2, :cond_3a
.line 522
iget-object v2, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v2, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
.line 526
:cond_3a
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v2
.line 527
invoke-virtual {p1}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v3
.line 530
invoke-virtual {v2, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 531
invoke-virtual {v3, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 534
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
if-eqz v4, :cond_58
.line 535
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, v5, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v5, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 538
:cond_58
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
if-eqz v4, :cond_68
.line 539
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, v5, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v5, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 542
:cond_68
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, v2, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
if-ne v4, v5, :cond_74
.line 543
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v4, v2, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 546
:cond_74
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v6, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 547
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v6, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 550
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
if-eqz v4, :cond_8c
.line 551
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, v5, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v5, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 554
:cond_8c
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
if-eqz v4, :cond_9c
.line 555
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, v5, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v5, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 558
:cond_9c
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v5, v3, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
if-ne v4, v5, :cond_a8
.line 559
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iget-object v4, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v4, v3, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 562
:cond_a8
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v6, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 563
iget-object v4, p1, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;
iput-object v6, v4, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;
.line 565
invoke-static {p1}, Lorg/jbox2d/dynamics/joints/Joint;->destroy(Lorg/jbox2d/dynamics/joints/Joint;)V
.line 567
sget-boolean v4, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v4, :cond_c1
iget v4, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
if-gtz v4, :cond_c1
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 568
:cond_c1
iget v4, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
add-int/lit8 v4, v4, -0x1
iput v4, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
.line 571
if-nez v1, :cond_19
.line 572
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Body;->getContactList()Lorg/jbox2d/dynamics/contacts/ContactEdge;
move-result-object v1
.line 573
:goto_cd
if-eqz v1, :cond_19
.line 574
iget-object v3, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
if-ne v3, v2, :cond_d8
.line 577
iget-object v3, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v3}, Lorg/jbox2d/dynamics/contacts/Contact;->flagForFiltering()V
.line 580
:cond_d8
iget-object v1, v1, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
goto :goto_cd
.end method
.method public destroyParticle(I)V
.registers 3
.prologue
.line 1691
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/World;->destroyParticle(IZ)V
.line 1692
return-void
.end method
.method public destroyParticle(IZ)V
.registers 4
.prologue
.line 1701
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->destroyParticle(IZ)V
.line 1702
return-void
.end method
.method public destroyParticlesInGroup(Lorg/jbox2d/particle/ParticleGroup;)V
.registers 3
.prologue
.line 1790
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/World;->destroyParticlesInGroup(Lorg/jbox2d/particle/ParticleGroup;Z)V
.line 1791
return-void
.end method
.method public destroyParticlesInGroup(Lorg/jbox2d/particle/ParticleGroup;Z)V
.registers 4
.prologue
.line 1775
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1776
:cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_17
.line 1780
:goto_16
return-void
.line 1779
:cond_17
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->destroyParticlesInGroup(Lorg/jbox2d/particle/ParticleGroup;Z)V
goto :goto_16
.end method
.method public destroyParticlesInShape(Lorg/jbox2d/collision/shapes/Shape;Lorg/jbox2d/common/Transform;)I
.registers 4
.prologue
.line 1715
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0}, Lorg/jbox2d/dynamics/World;->destroyParticlesInShape(Lorg/jbox2d/collision/shapes/Shape;Lorg/jbox2d/common/Transform;Z)I
move-result v0
return v0
.end method
.method public destroyParticlesInShape(Lorg/jbox2d/collision/shapes/Shape;Lorg/jbox2d/common/Transform;Z)I
.registers 5
.prologue
.line 1730
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1731
:cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_18
.line 1732
const/4 v0, 0x0
.line 1734
:goto_17
return v0
:cond_18
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2, p3}, Lorg/jbox2d/particle/ParticleSystem;->destroyParticlesInShape(Lorg/jbox2d/collision/shapes/Shape;Lorg/jbox2d/common/Transform;Z)I
move-result v0
goto :goto_17
.end method
.method public drawDebugData()V
.registers 12
.prologue
const v10, 0x3f333333 # 0.7f
const/4 v1, 0x0
const v9, 0x3e99999a # 0.3f
const v8, 0x3f666666 # 0.9f
const/high16 v7, 0x3f000000 # 0.5f
.line 685
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
if-nez v0, :cond_11
.line 773
:goto_10
return-void
.line 690
:cond_11
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0}, Lorg/jbox2d/callbacks/DebugDraw;->getFlags()I
move-result v4
.line 691
and-int/lit16 v0, v4, 0x80
if-eqz v0, :cond_4c
const/4 v0, 0x1
move v3, v0
.line 693
:goto_1d
and-int/lit8 v0, v4, 0x2
if-eqz v0, :cond_a3
.line 694
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
move-object v2, v0
:goto_24
if-eqz v2, :cond_9e
.line 695
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->getTransform()Lorg/jbox2d/common/Transform;
move-result-object v5
invoke-virtual {v0, v5}, Lorg/jbox2d/common/Transform;->set(Lorg/jbox2d/common/Transform;)Lorg/jbox2d/common/Transform;
.line 696
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->getFixtureList()Lorg/jbox2d/dynamics/Fixture;
move-result-object v0
:goto_33
if-eqz v0, :cond_98
.line 697
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->isActive()Z
move-result v5
if-nez v5, :cond_4e
.line 698
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v5, v7, v7, v9}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 699
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-direct {p0, v0, v5, v6, v3}, Lorg/jbox2d/dynamics/World;->drawShape(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Color3f;Z)V
.line 696
:goto_47
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Fixture;->getNext()Lorg/jbox2d/dynamics/Fixture;
move-result-object v0
goto :goto_33
:cond_4c
move v3, v1
.line 691
goto :goto_1d
.line 700
:cond_4e
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v5
sget-object v6, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v5, v6, :cond_63
.line 701
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v5, v7, v8, v9}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 702
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-direct {p0, v0, v5, v6, v3}, Lorg/jbox2d/dynamics/World;->drawShape(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Color3f;Z)V
goto :goto_47
.line 703
:cond_63
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->getType()Lorg/jbox2d/dynamics/BodyType;
move-result-object v5
sget-object v6, Lorg/jbox2d/dynamics/BodyType;->KINEMATIC:Lorg/jbox2d/dynamics/BodyType;
if-ne v5, v6, :cond_78
.line 704
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v5, v7, v7, v8}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 705
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-direct {p0, v0, v5, v6, v3}, Lorg/jbox2d/dynamics/World;->drawShape(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Color3f;Z)V
goto :goto_47
.line 706
:cond_78
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->isAwake()Z
move-result v5
if-nez v5, :cond_8b
.line 707
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v5, v7, v7, v7}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 708
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-direct {p0, v0, v5, v6, v3}, Lorg/jbox2d/dynamics/World;->drawShape(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Color3f;Z)V
goto :goto_47
.line 710
:cond_8b
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v5, v8, v10, v10}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 711
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-direct {p0, v0, v5, v6, v3}, Lorg/jbox2d/dynamics/World;->drawShape(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Color3f;Z)V
goto :goto_47
.line 694
:cond_98
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Body;->getNext()Lorg/jbox2d/dynamics/Body;
move-result-object v0
move-object v2, v0
goto :goto_24
.line 715
:cond_9e
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-direct {p0, v0}, Lorg/jbox2d/dynamics/World;->drawParticleSystem(Lorg/jbox2d/particle/ParticleSystem;)V
.line 718
:cond_a3
and-int/lit8 v0, v4, 0x4
if-eqz v0, :cond_b3
.line 719
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
:goto_a9
if-eqz v0, :cond_b3
.line 720
invoke-direct {p0, v0}, Lorg/jbox2d/dynamics/World;->drawJoint(Lorg/jbox2d/dynamics/joints/Joint;)V
.line 719
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getNext()Lorg/jbox2d/dynamics/joints/Joint;
move-result-object v0
goto :goto_a9
.line 724
:cond_b3
and-int/lit8 v0, v4, 0x10
if-eqz v0, :cond_f4
.line 725
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v0, v9, v8, v8}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 726
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
:goto_c0
if-eqz v0, :cond_f4
.line 727
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v2
.line 728
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v3
.line 729
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexA()I
move-result v5
invoke-virtual {v2, v5}, Lorg/jbox2d/dynamics/Fixture;->getAABB(I)Lorg/jbox2d/collision/AABB;
move-result-object v2
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->cA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v5}, Lorg/jbox2d/collision/AABB;->getCenterToOut(Lorg/jbox2d/common/Vec2;)V
.line 730
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexB()I
move-result v2
invoke-virtual {v3, v2}, Lorg/jbox2d/dynamics/Fixture;->getAABB(I)Lorg/jbox2d/collision/AABB;
move-result-object v2
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->cB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v3}, Lorg/jbox2d/collision/AABB;->getCenterToOut(Lorg/jbox2d/common/Vec2;)V
.line 731
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v3, p0, Lorg/jbox2d/dynamics/World;->cA:Lorg/jbox2d/common/Vec2;
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->cB:Lorg/jbox2d/common/Vec2;
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v2, v3, v5, v6}, Lorg/jbox2d/callbacks/DebugDraw;->drawSegment(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Color3f;)V
.line 726
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getNext()Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
goto :goto_c0
.line 735
:cond_f4
and-int/lit8 v0, v4, 0x8
if-eqz v0, :cond_179
.line 736
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v0, v8, v9, v8}, Lorg/jbox2d/common/Color3f;->set(FFF)V
.line 738
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
move-object v3, v0
:goto_100
if-eqz v3, :cond_179
.line 739
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Body;->isActive()Z
move-result v0
if-nez v0, :cond_10e
.line 738
:cond_108
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Body;->getNext()Lorg/jbox2d/dynamics/Body;
move-result-object v0
move-object v3, v0
goto :goto_100
.line 743
:cond_10e
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Body;->getFixtureList()Lorg/jbox2d/dynamics/Fixture;
move-result-object v0
move-object v2, v0
:goto_113
if-eqz v2, :cond_108
move v0, v1
.line 744
:goto_116
iget v5, v2, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I
if-ge v0, v5, :cond_173
.line 745
iget-object v5, v2, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;
aget-object v5, v5, v0
.line 746
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v6, v6, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iget v5, v5, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I
invoke-interface {v6, v5}, Lorg/jbox2d/collision/broadphase/BroadPhase;->getFatAABB(I)Lorg/jbox2d/collision/AABB;
move-result-object v5
.line 747
if-eqz v5, :cond_170
.line 748
iget-object v6, p0, Lorg/jbox2d/dynamics/World;->avs:Lorg/jbox2d/pooling/arrays/Vec2Array;
const/4 v7, 0x4
invoke-virtual {v6, v7}, Lorg/jbox2d/pooling/arrays/Vec2Array;->get(I)[Lorg/jbox2d/common/Vec2;
move-result-object v6
.line 749
aget-object v7, v6, v1
iget-object v8, v5, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v8, v8, Lorg/jbox2d/common/Vec2;->x:F
iget-object v9, v5, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v7, v8, v9}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 750
const/4 v7, 0x1
aget-object v7, v6, v7
iget-object v8, v5, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v8, v8, Lorg/jbox2d/common/Vec2;->x:F
iget-object v9, v5, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v7, v8, v9}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 751
const/4 v7, 0x2
aget-object v7, v6, v7
iget-object v8, v5, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v8, v8, Lorg/jbox2d/common/Vec2;->x:F
iget-object v9, v5, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v7, v8, v9}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 752
const/4 v7, 0x3
aget-object v7, v6, v7
iget-object v8, v5, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v8, v8, Lorg/jbox2d/common/Vec2;->x:F
iget-object v5, v5, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v7, v8, v5}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 753
iget-object v5, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
const/4 v7, 0x4
iget-object v8, p0, Lorg/jbox2d/dynamics/World;->color:Lorg/jbox2d/common/Color3f;
invoke-virtual {v5, v6, v7, v8}, Lorg/jbox2d/callbacks/DebugDraw;->drawPolygon([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Color3f;)V
.line 744
:cond_170
add-int/lit8 v0, v0, 0x1
goto :goto_116
.line 743
:cond_173
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Fixture;->getNext()Lorg/jbox2d/dynamics/Fixture;
move-result-object v0
move-object v2, v0
goto :goto_113
.line 760
:cond_179
and-int/lit8 v0, v4, 0x20
if-eqz v0, :cond_1a1
.line 761
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_17f
if-eqz v0, :cond_1a1
.line 762
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getTransform()Lorg/jbox2d/common/Transform;
move-result-object v2
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Transform;->set(Lorg/jbox2d/common/Transform;)Lorg/jbox2d/common/Transform;
.line 763
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getWorldCenter()Lorg/jbox2d/common/Vec2;
move-result-object v2
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 764
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->xf:Lorg/jbox2d/common/Transform;
invoke-virtual {v1, v2}, Lorg/jbox2d/callbacks/DebugDraw;->drawTransform(Lorg/jbox2d/common/Transform;)V
.line 761
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getNext()Lorg/jbox2d/dynamics/Body;
move-result-object v0
goto :goto_17f
.line 768
:cond_1a1
and-int/lit8 v0, v4, 0x40
if-eqz v0, :cond_1ae
.line 769
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-interface {v0, v1}, Lorg/jbox2d/collision/broadphase/BroadPhase;->drawTree(Lorg/jbox2d/callbacks/DebugDraw;)V
.line 772
:cond_1ae
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
invoke-virtual {v0}, Lorg/jbox2d/callbacks/DebugDraw;->flush()V
goto/16 :goto_10
.end method
.method public getAutoClearForces()Z
.registers 3
.prologue
.line 1044
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, 0x4
const/4 v1, 0x4
if-ne v0, v1, :cond_9
const/4 v0, 0x1
:goto_8
return v0
:cond_9
const/4 v0, 0x0
goto :goto_8
.end method
.method public getBodyCount()I
.registers 2
.prologue
.line 950
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyCount:I
return v0
.end method
.method public getBodyList()Lorg/jbox2d/dynamics/Body;
.registers 2
.prologue
.line 874
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
return-object v0
.end method
.method public getContactCount()I
.registers 2
.prologue
.line 968
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
return v0
.end method
.method public getContactList()Lorg/jbox2d/dynamics/contacts/Contact;
.registers 2
.prologue
.line 896
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
return-object v0
.end method
.method public getContactManager()Lorg/jbox2d/dynamics/ContactManager;
.registers 2
.prologue
.line 1053
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
return-object v0
.end method
.method public getDestructionListener()Lorg/jbox2d/callbacks/DestructionListener;
.registers 2
.prologue
.line 242
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
return-object v0
.end method
.method public getGravity()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 1013
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_gravity:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getJointCount()I
.registers 2
.prologue
.line 959
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_jointCount:I
return v0
.end method
.method public getJointList()Lorg/jbox2d/dynamics/joints/Joint;
.registers 2
.prologue
.line 884
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_jointList:Lorg/jbox2d/dynamics/joints/Joint;
return-object v0
.end method
.method public getParticleBodyContactCount()I
.registers 2
.prologue
.line 1997
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
iget v0, v0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
return v0
.end method
.method public getParticleBodyContacts()[Lorg/jbox2d/particle/ParticleBodyContact;
.registers 2
.prologue
.line 1993
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
return-object v0
.end method
.method public getParticleColorBuffer()[Lorg/jbox2d/particle/ParticleColor;
.registers 2
.prologue
.line 1934
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleColorBuffer()[Lorg/jbox2d/particle/ParticleColor;
move-result-object v0
return-object v0
.end method
.method public getParticleContactCount()I
.registers 2
.prologue
.line 1984
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
iget v0, v0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
return v0
.end method
.method public getParticleContacts()[Lorg/jbox2d/particle/ParticleContact;
.registers 2
.prologue
.line 1980
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
return-object v0
.end method
.method public getParticleCount()I
.registers 2
.prologue
.line 1818
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleCount()I
move-result v0
return v0
.end method
.method public getParticleDamping()F
.registers 2
.prologue
.line 1894
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleDamping()F
move-result v0
return v0
.end method
.method public getParticleDensity()F
.registers 2
.prologue
.line 1854
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleDensity()F
move-result v0
return v0
.end method
.method public getParticleDestructionListener()Lorg/jbox2d/callbacks/ParticleDestructionListener;
.registers 2
.prologue
.line 246
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleDestructionListener:Lorg/jbox2d/callbacks/ParticleDestructionListener;
return-object v0
.end method
.method public getParticleFlagsBuffer()[I
.registers 2
.prologue
.line 1922
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleFlagsBuffer()[I
move-result-object v0
return-object v0
.end method
.method public getParticleGravityScale()F
.registers 2
.prologue
.line 1874
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleGravityScale()F
move-result v0
return v0
.end method
.method public getParticleGroupBuffer()[Lorg/jbox2d/particle/ParticleGroup;
.registers 2
.prologue
.line 1938
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleGroupBuffer()[Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
return-object v0
.end method
.method public getParticleGroupCount()I
.registers 2
.prologue
.line 1809
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleGroupCount()I
move-result v0
return v0
.end method
.method public getParticleGroupList()[Lorg/jbox2d/particle/ParticleGroup;
.registers 2
.prologue
.line 1800
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleGroupList()[Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
return-object v0
.end method
.method public getParticleMaxCount()I
.registers 2
.prologue
.line 1827
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleMaxCount()I
move-result v0
return v0
.end method
.method public getParticlePositionBuffer()[Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 1926
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticlePositionBuffer()[Lorg/jbox2d/common/Vec2;
move-result-object v0
return-object v0
.end method
.method public getParticleRadius()F
.registers 2
.prologue
.line 1913
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleRadius()F
move-result v0
return v0
.end method
.method public getParticleUserDataBuffer()[Ljava/lang/Object;
.registers 2
.prologue
.line 1942
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleUserDataBuffer()[Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public getParticleVelocityBuffer()[Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 1930
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleVelocityBuffer()[Lorg/jbox2d/common/Vec2;
move-result-object v0
return-object v0
.end method
.method public getPool()Lorg/jbox2d/pooling/IWorldPool;
.registers 2
.prologue
.line 290
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->pool:Lorg/jbox2d/pooling/IWorldPool;
return-object v0
.end method
.method public getProfile()Lorg/jbox2d/dynamics/Profile;
.registers 2
.prologue
.line 1057
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
return-object v0
.end method
.method public getProxyCount()I
.registers 2
.prologue
.line 941
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v0}, Lorg/jbox2d/collision/broadphase/BroadPhase;->getProxyCount()I
move-result v0
return v0
.end method
.method public getTreeBalance()I
.registers 2
.prologue
.line 986
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v0}, Lorg/jbox2d/collision/broadphase/BroadPhase;->getTreeBalance()I
move-result v0
return v0
.end method
.method public getTreeHeight()I
.registers 2
.prologue
.line 977
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v0}, Lorg/jbox2d/collision/broadphase/BroadPhase;->getTreeHeight()I
move-result v0
return v0
.end method
.method public getTreeQuality()F
.registers 2
.prologue
.line 995
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v0}, Lorg/jbox2d/collision/broadphase/BroadPhase;->getTreeQuality()F
move-result v0
return v0
.end method
.method public isAllowSleep()Z
.registers 2
.prologue
.line 214
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
return v0
.end method
.method public isContinuousPhysics()Z
.registers 2
.prologue
.line 930
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_continuousPhysics:Z
return v0
.end method
.method public isLocked()Z
.registers 3
.prologue
.line 1022
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, 0x2
const/4 v1, 0x2
if-ne v0, v1, :cond_9
const/4 v0, 0x1
:goto_8
return v0
:cond_9
const/4 v0, 0x0
goto :goto_8
.end method
.method public isSleepingAllowed()Z
.registers 2
.prologue
.line 900
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
return v0
.end method
.method public isSubStepping()Z
.registers 2
.prologue
.line 210
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_subStepping:Z
return v0
.end method
.method public isWarmStarting()Z
.registers 2
.prologue
.line 917
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_warmStarting:Z
return v0
.end method
.method public joinParticleGroups(Lorg/jbox2d/particle/ParticleGroup;Lorg/jbox2d/particle/ParticleGroup;)V
.registers 4
.prologue
.line 1760
sget-boolean v0, Lorg/jbox2d/dynamics/World;->$assertionsDisabled:Z
if-nez v0, :cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_10
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1761
:cond_10
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->isLocked()Z
move-result v0
if-eqz v0, :cond_17
.line 1765
:goto_16
return-void
.line 1764
:cond_17
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->joinParticleGroups(Lorg/jbox2d/particle/ParticleGroup;Lorg/jbox2d/particle/ParticleGroup;)V
goto :goto_16
.end method
.method public popContact(Lorg/jbox2d/dynamics/Fixture;ILorg/jbox2d/dynamics/Fixture;I)Lorg/jbox2d/dynamics/contacts/Contact;
.registers 8
.prologue
.line 254
invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->getType()Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v0
.line 255
invoke-virtual {p3}, Lorg/jbox2d/dynamics/Fixture;->getType()Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v1
.line 257
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->contactStacks:[[Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-virtual {v0}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v0
aget-object v0, v2, v0
invoke-virtual {v1}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v1
aget-object v0, v0, v1
.line 258
if-eqz v0, :cond_34
.line 259
iget-boolean v1, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->primary:Z
if-eqz v1, :cond_28
.line 260
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->creator:Lorg/jbox2d/pooling/IDynamicStack;
invoke-interface {v0}, Lorg/jbox2d/pooling/IDynamicStack;->pop()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/jbox2d/dynamics/contacts/Contact;
.line 261
invoke-virtual {v0, p1, p2, p3, p4}, Lorg/jbox2d/dynamics/contacts/Contact;->init(Lorg/jbox2d/dynamics/Fixture;ILorg/jbox2d/dynamics/Fixture;I)V
.line 269
:goto_27
return-object v0
.line 264
:cond_28
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->creator:Lorg/jbox2d/pooling/IDynamicStack;
invoke-interface {v0}, Lorg/jbox2d/pooling/IDynamicStack;->pop()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/jbox2d/dynamics/contacts/Contact;
.line 265
invoke-virtual {v0, p3, p4, p1, p2}, Lorg/jbox2d/dynamics/contacts/Contact;->init(Lorg/jbox2d/dynamics/Fixture;ILorg/jbox2d/dynamics/Fixture;I)V
goto :goto_27
.line 269
:cond_34
const/4 v0, 0x0
goto :goto_27
.end method
.method public pushContact(Lorg/jbox2d/dynamics/contacts/Contact;)V
.registers 6
.prologue
const/4 v3, 0x1
.line 274
invoke-virtual {p1}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v0
.line 275
invoke-virtual {p1}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v1
.line 277
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_manifold:Lorg/jbox2d/collision/Manifold;
iget v2, v2, Lorg/jbox2d/collision/Manifold;->pointCount:I
if-lez v2, :cond_29
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Fixture;->isSensor()Z
move-result v2
if-nez v2, :cond_29
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->isSensor()Z
move-result v2
if-nez v2, :cond_29
.line 278
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v2
invoke-virtual {v2, v3}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 279
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v2
invoke-virtual {v2, v3}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 282
:cond_29
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Fixture;->getType()Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v0
.line 283
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->getType()Lorg/jbox2d/collision/shapes/ShapeType;
move-result-object v1
.line 285
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->contactStacks:[[Lorg/jbox2d/dynamics/contacts/ContactRegister;
invoke-virtual {v0}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v0
aget-object v0, v2, v0
invoke-virtual {v1}, Lorg/jbox2d/collision/shapes/ShapeType;->ordinal()I
move-result v1
aget-object v0, v0, v1
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactRegister;->creator:Lorg/jbox2d/pooling/IDynamicStack;
.line 286
invoke-interface {v0, p1}, Lorg/jbox2d/pooling/IDynamicStack;->push(Ljava/lang/Object;)V
.line 287
return-void
.end method
.method public queryAABB(Lorg/jbox2d/callbacks/ParticleQueryCallback;Lorg/jbox2d/collision/AABB;)V
.registers 4
.prologue
.line 810
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->queryAABB(Lorg/jbox2d/callbacks/ParticleQueryCallback;Lorg/jbox2d/collision/AABB;)V
.line 811
return-void
.end method
.method public queryAABB(Lorg/jbox2d/callbacks/QueryCallback;Lorg/jbox2d/callbacks/ParticleQueryCallback;Lorg/jbox2d/collision/AABB;)V
.registers 6
.prologue
.line 797
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v1, v1, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iput-object v1, v0, Lorg/jbox2d/dynamics/WorldQueryWrapper;->broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.line 798
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
iput-object p1, v0, Lorg/jbox2d/dynamics/WorldQueryWrapper;->callback:Lorg/jbox2d/callbacks/QueryCallback;
.line 799
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
invoke-interface {v0, v1, p3}, Lorg/jbox2d/collision/broadphase/BroadPhase;->query(Lorg/jbox2d/callbacks/TreeCallback;Lorg/jbox2d/collision/AABB;)V
.line 800
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p2, p3}, Lorg/jbox2d/particle/ParticleSystem;->queryAABB(Lorg/jbox2d/callbacks/ParticleQueryCallback;Lorg/jbox2d/collision/AABB;)V
.line 801
return-void
.end method
.method public queryAABB(Lorg/jbox2d/callbacks/QueryCallback;Lorg/jbox2d/collision/AABB;)V
.registers 5
.prologue
.line 784
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v1, v1, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iput-object v1, v0, Lorg/jbox2d/dynamics/WorldQueryWrapper;->broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.line 785
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
iput-object p1, v0, Lorg/jbox2d/dynamics/WorldQueryWrapper;->callback:Lorg/jbox2d/callbacks/QueryCallback;
.line 786
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->wqwrapper:Lorg/jbox2d/dynamics/WorldQueryWrapper;
invoke-interface {v0, v1, p2}, Lorg/jbox2d/collision/broadphase/BroadPhase;->query(Lorg/jbox2d/callbacks/TreeCallback;Lorg/jbox2d/collision/AABB;)V
.line 787
return-void
.end method
.method public raycast(Lorg/jbox2d/callbacks/ParticleRaycastCallback;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.registers 5
.prologue
.line 864
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2, p3}, Lorg/jbox2d/particle/ParticleSystem;->raycast(Lorg/jbox2d/callbacks/ParticleRaycastCallback;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 865
return-void
.end method
.method public raycast(Lorg/jbox2d/callbacks/RayCastCallback;Lorg/jbox2d/callbacks/ParticleRaycastCallback;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.registers 8
.prologue
.line 846
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v1, v1, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iput-object v1, v0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.line 847
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
iput-object p1, v0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->callback:Lorg/jbox2d/callbacks/RayCastCallback;
.line 848
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
const/high16 v1, 0x3f800000 # 1.0f
iput v1, v0, Lorg/jbox2d/collision/RayCastInput;->maxFraction:F
.line 849
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
iget-object v0, v0, Lorg/jbox2d/collision/RayCastInput;->p1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, p3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 850
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
iget-object v0, v0, Lorg/jbox2d/collision/RayCastInput;->p2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, p4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 851
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
invoke-interface {v0, v1, v2}, Lorg/jbox2d/collision/broadphase/BroadPhase;->raycast(Lorg/jbox2d/callbacks/TreeRayCastCallback;Lorg/jbox2d/collision/RayCastInput;)V
.line 852
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p2, p3, p4}, Lorg/jbox2d/particle/ParticleSystem;->raycast(Lorg/jbox2d/callbacks/ParticleRaycastCallback;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 853
return-void
.end method
.method public raycast(Lorg/jbox2d/callbacks/RayCastCallback;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.registers 7
.prologue
.line 826
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v1, v1, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iput-object v1, v0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.line 827
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
iput-object p1, v0, Lorg/jbox2d/dynamics/WorldRayCastWrapper;->callback:Lorg/jbox2d/callbacks/RayCastCallback;
.line 828
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
const/high16 v1, 0x3f800000 # 1.0f
iput v1, v0, Lorg/jbox2d/collision/RayCastInput;->maxFraction:F
.line 829
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
iget-object v0, v0, Lorg/jbox2d/collision/RayCastInput;->p1:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, p2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 830
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
iget-object v0, v0, Lorg/jbox2d/collision/RayCastInput;->p2:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, p3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 831
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iget-object v0, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->wrcwrapper:Lorg/jbox2d/dynamics/WorldRayCastWrapper;
iget-object v2, p0, Lorg/jbox2d/dynamics/World;->input:Lorg/jbox2d/collision/RayCastInput;
invoke-interface {v0, v1, v2}, Lorg/jbox2d/collision/broadphase/BroadPhase;->raycast(Lorg/jbox2d/callbacks/TreeRayCastCallback;Lorg/jbox2d/collision/RayCastInput;)V
.line 832
return-void
.end method
.method public setAllowSleep(Z)V
.registers 4
.prologue
.line 193
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
if-ne p1, v0, :cond_5
.line 203
:cond_4
return-void
.line 197
:cond_5
iput-boolean p1, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
.line 198
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
if-nez v0, :cond_4
.line 199
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_bodyList:Lorg/jbox2d/dynamics/Body;
:goto_d
if-eqz v0, :cond_4
.line 200
const/4 v1, 0x1
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 199
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;
goto :goto_d
.end method
.method public setAutoClearForces(Z)V
.registers 3
.prologue
.line 1031
if-eqz p1, :cond_9
.line 1032
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
or-int/lit8 v0, v0, 0x4
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
.line 1036
:goto_8
return-void
.line 1034
:cond_9
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, -0x5
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
goto :goto_8
.end method
.method public setContactFilter(Lorg/jbox2d/callbacks/ContactFilter;)V
.registers 3
.prologue
.line 309
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iput-object p1, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
.line 310
return-void
.end method
.method public setContactListener(Lorg/jbox2d/callbacks/ContactListener;)V
.registers 3
.prologue
.line 318
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
iput-object p1, v0, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
.line 319
return-void
.end method
.method public setContinuousPhysics(Z)V
.registers 2
.prologue
.line 926
iput-boolean p1, p0, Lorg/jbox2d/dynamics/World;->m_continuousPhysics:Z
.line 927
return-void
.end method
.method public setDebugDraw(Lorg/jbox2d/callbacks/DebugDraw;)V
.registers 2
.prologue
.line 328
iput-object p1, p0, Lorg/jbox2d/dynamics/World;->m_debugDraw:Lorg/jbox2d/callbacks/DebugDraw;
.line 329
return-void
.end method
.method public setDestructionListener(Lorg/jbox2d/callbacks/DestructionListener;)V
.registers 2
.prologue
.line 299
iput-object p1, p0, Lorg/jbox2d/dynamics/World;->m_destructionListener:Lorg/jbox2d/callbacks/DestructionListener;
.line 300
return-void
.end method
.method public setGravity(Lorg/jbox2d/common/Vec2;)V
.registers 3
.prologue
.line 1004
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_gravity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, p1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1005
return-void
.end method
.method public setParticleColorBuffer([Lorg/jbox2d/particle/ParticleColor;I)V
.registers 4
.prologue
.line 1966
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleColorBuffer([Lorg/jbox2d/particle/ParticleColor;I)V
.line 1968
return-void
.end method
.method public setParticleDamping(F)V
.registers 3
.prologue
.line 1885
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->setParticleDamping(F)V
.line 1886
return-void
.end method
.method public setParticleDensity(F)V
.registers 3
.prologue
.line 1845
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->setParticleDensity(F)V
.line 1846
return-void
.end method
.method public setParticleDestructionListener(Lorg/jbox2d/callbacks/ParticleDestructionListener;)V
.registers 2
.prologue
.line 250
iput-object p1, p0, Lorg/jbox2d/dynamics/World;->m_particleDestructionListener:Lorg/jbox2d/callbacks/ParticleDestructionListener;
.line 251
return-void
.end method
.method public setParticleFlagsBuffer([II)V
.registers 4
.prologue
.line 1952
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleFlagsBuffer([II)V
.line 1953
return-void
.end method
.method public setParticleGravityScale(F)V
.registers 3
.prologue
.line 1864
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->setParticleGravityScale(F)V
.line 1866
return-void
.end method
.method public setParticleMaxCount(I)V
.registers 3
.prologue
.line 1836
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->setParticleMaxCount(I)V
.line 1837
return-void
.end method
.method public setParticlePositionBuffer([Lorg/jbox2d/common/Vec2;I)V
.registers 4
.prologue
.line 1956
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticlePositionBuffer([Lorg/jbox2d/common/Vec2;I)V
.line 1958
return-void
.end method
.method public setParticleRadius(F)V
.registers 3
.prologue
.line 1904
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1}, Lorg/jbox2d/particle/ParticleSystem;->setParticleRadius(F)V
.line 1905
return-void
.end method
.method public setParticleUserDataBuffer([Ljava/lang/Object;I)V
.registers 4
.prologue
.line 1971
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleUserDataBuffer([Ljava/lang/Object;I)V
.line 1972
return-void
.end method
.method public setParticleVelocityBuffer([Lorg/jbox2d/common/Vec2;I)V
.registers 4
.prologue
.line 1961
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
invoke-virtual {v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleVelocityBuffer([Lorg/jbox2d/common/Vec2;I)V
.line 1963
return-void
.end method
.method public setSleepingAllowed(Z)V
.registers 2
.prologue
.line 904
iput-boolean p1, p0, Lorg/jbox2d/dynamics/World;->m_allowSleep:Z
.line 905
return-void
.end method
.method public setSubStepping(Z)V
.registers 2
.prologue
.line 206
iput-boolean p1, p0, Lorg/jbox2d/dynamics/World;->m_subStepping:Z
.line 207
return-void
.end method
.method public setWarmStarting(Z)V
.registers 2
.prologue
.line 913
iput-boolean p1, p0, Lorg/jbox2d/dynamics/World;->m_warmStarting:Z
.line 914
return-void
.end method
.method public step(FII)V
.registers 7
.prologue
const/4 v2, 0x0
.line 599
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->stepTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 600
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->tempTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 603
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, 0x1
const/4 v1, 0x1
if-ne v0, v1, :cond_1d
.line 605
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/ContactManager;->findNewContacts()V
.line 606
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, -0x2
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
.line 609
:cond_1d
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
or-int/lit8 v0, v0, 0x2
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
.line 611
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iput p1, v0, Lorg/jbox2d/dynamics/TimeStep;->dt:F
.line 612
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iput p2, v0, Lorg/jbox2d/dynamics/TimeStep;->velocityIterations:I
.line 613
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iput p3, v0, Lorg/jbox2d/dynamics/TimeStep;->positionIterations:I
.line 614
cmpl-float v0, p1, v2
if-lez v0, :cond_f6
.line 615
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
const/high16 v1, 0x3f800000 # 1.0f
div-float/2addr v1, p1
iput v1, v0, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
.line 620
:goto_3a
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v1, p0, Lorg/jbox2d/dynamics/World;->m_inv_dt0:F
mul-float/2addr v1, p1
iput v1, v0, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
.line 622
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iget-boolean v1, p0, Lorg/jbox2d/dynamics/World;->m_warmStarting:Z
iput-boolean v1, v0, Lorg/jbox2d/dynamics/TimeStep;->warmStarting:Z
.line 623
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->stepInit:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempTimer: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;->record(F)V
.line 626
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->tempTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 627
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/ContactManager;->collide()V
.line 628
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->collide:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempTimer: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;->record(F)V
.line 631
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_stepComplete:Z
if-eqz v0, :cond_a7
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v0, v0, Lorg/jbox2d/dynamics/TimeStep;->dt:F
cmpl-float v0, v0, v2
if-lez v0, :cond_a7
.line 632
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->tempTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 633
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_particleSystem:Lorg/jbox2d/particle/ParticleSystem;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
invoke-virtual {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->solve(Lorg/jbox2d/dynamics/TimeStep;)V
.line 634
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solveParticleSystem:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempTimer: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;->record(F)V
.line 635
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->tempTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 636
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
invoke-direct {p0, v0}, Lorg/jbox2d/dynamics/World;->solve(Lorg/jbox2d/dynamics/TimeStep;)V
.line 637
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solve:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempTimer: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;->record(F)V
.line 641
:cond_a7
iget-boolean v0, p0, Lorg/jbox2d/dynamics/World;->m_continuousPhysics:Z
if-eqz v0, :cond_ca
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v0, v0, Lorg/jbox2d/dynamics/TimeStep;->dt:F
cmpl-float v0, v0, v2
if-lez v0, :cond_ca
.line 642
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->tempTimer:Lorg/jbox2d/common/Timer;
invoke-virtual {v0}, Lorg/jbox2d/common/Timer;->reset()V
.line 643
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
invoke-direct {p0, v0}, Lorg/jbox2d/dynamics/World;->solveTOI(Lorg/jbox2d/dynamics/TimeStep;)V
.line 644
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->solveTOI:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->tempTimer: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;->record(F)V
.line 647
:cond_ca
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v0, v0, Lorg/jbox2d/dynamics/TimeStep;->dt:F
cmpl-float v0, v0, v2
if-lez v0, :cond_d8
.line 648
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v0, v0, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_inv_dt0:F
.line 651
:cond_d8
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, 0x4
const/4 v1, 0x4
if-ne v0, v1, :cond_e2
.line 652
invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->clearForces()V
.line 655
:cond_e2
iget v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
and-int/lit8 v0, v0, -0x3
iput v0, p0, Lorg/jbox2d/dynamics/World;->m_flags:I
.line 658
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->m_profile:Lorg/jbox2d/dynamics/Profile;
iget-object v0, v0, Lorg/jbox2d/dynamics/Profile;->step:Lorg/jbox2d/dynamics/Profile$ProfileEntry;
iget-object v1, p0, Lorg/jbox2d/dynamics/World;->stepTimer: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;->record(F)V
.line 659
return-void
.line 617
:cond_f6
iget-object v0, p0, Lorg/jbox2d/dynamics/World;->step:Lorg/jbox2d/dynamics/TimeStep;
iput v2, v0, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
goto/16 :goto_3a
.end method