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