Body.smali

.class public Lorg/jbox2d/dynamics/Body;
.super Ljava/lang/Object;
.source "Body.java"


# static fields
.field static final synthetic $assertionsDisabled:Z

.field public static final e_activeFlag:I = 0x20

.field public static final e_autoSleepFlag:I = 0x4

.field public static final e_awakeFlag:I = 0x2

.field public static final e_bulletFlag:I = 0x8

.field public static final e_fixedRotationFlag:I = 0x10

.field public static final e_islandFlag:I = 0x1

.field public static final e_toiFlag:I = 0x40


# instance fields
.field private final fixDef:Lorg/jbox2d/dynamics/FixtureDef;

.field public m_I:F

.field public m_angularDamping:F

.field public m_angularVelocity:F

.field public m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

.field public m_fixtureCount:I

.field public m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

.field public m_flags:I

.field public final m_force:Lorg/jbox2d/common/Vec2;

.field public m_gravityScale:F

.field public m_invI:F

.field public m_invMass:F

.field public m_islandIndex:I

.field public m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;

.field public m_linearDamping:F

.field public final m_linearVelocity:Lorg/jbox2d/common/Vec2;

.field public m_mass:F

.field public m_next:Lorg/jbox2d/dynamics/Body;

.field public m_prev:Lorg/jbox2d/dynamics/Body;

.field public m_sleepTime:F

.field public final m_sweep:Lorg/jbox2d/common/Sweep;

.field public m_torque:F

.field public m_type:Lorg/jbox2d/dynamics/BodyType;

.field public m_userData:Ljava/lang/Object;

.field public m_world:Lorg/jbox2d/dynamics/World;

.field public final m_xf:Lorg/jbox2d/common/Transform;

.field public final m_xf0:Lorg/jbox2d/common/Transform;

.field private final pmd:Lorg/jbox2d/collision/shapes/MassData;

.field private final pxf:Lorg/jbox2d/common/Transform;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 43
    const-class v0, Lorg/jbox2d/dynamics/Body;

    invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z

    move-result v0

    if-nez v0, :cond_c

    const/4 v0, 0x1

    :goto_9
    sput-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    return-void

    :cond_c
    const/4 v0, 0x0

    goto :goto_9
.end method

.method public constructor <init>(Lorg/jbox2d/dynamics/BodyDef;Lorg/jbox2d/dynamics/World;)V
    .registers 9

    .prologue
    const/4 v5, 0x0

    const/high16 v4, 0x3f800000    # 1.0f

    const/4 v3, 0x0

    const/4 v2, 0x0

    .line 102
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 61
    new-instance v0, Lorg/jbox2d/common/Transform;

    invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    .line 65
    new-instance v0, Lorg/jbox2d/common/Transform;

    invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf0:Lorg/jbox2d/common/Transform;

    .line 70
    new-instance v0, Lorg/jbox2d/common/Sweep;

    invoke-direct {v0}, Lorg/jbox2d/common/Sweep;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    .line 72
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    .line 73
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    .line 75
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    .line 76
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    .line 217
    new-instance v0, Lorg/jbox2d/dynamics/FixtureDef;

    invoke-direct {v0}, Lorg/jbox2d/dynamics/FixtureDef;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->fixDef:Lorg/jbox2d/dynamics/FixtureDef;

    .line 654
    new-instance v0, Lorg/jbox2d/collision/shapes/MassData;

    invoke-direct {v0}, Lorg/jbox2d/collision/shapes/MassData;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->pmd:Lorg/jbox2d/collision/shapes/MassData;

    .line 1114
    new-instance v0, Lorg/jbox2d/common/Transform;

    invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->pxf:Lorg/jbox2d/common/Transform;

    .line 103
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_56

    iget-object v0, p1, Lorg/jbox2d/dynamics/BodyDef;->position:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->isValid()Z

    move-result v0

    if-nez v0, :cond_56

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 104
    :cond_56
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_68

    iget-object v0, p1, Lorg/jbox2d/dynamics/BodyDef;->linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->isValid()Z

    move-result v0

    if-nez v0, :cond_68

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 105
    :cond_68
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_78

    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->gravityScale:F

    cmpl-float v0, v0, v2

    if-gez v0, :cond_78

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 106
    :cond_78
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_88

    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->angularDamping:F

    cmpl-float v0, v0, v2

    if-gez v0, :cond_88

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 107
    :cond_88
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_98

    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->linearDamping:F

    cmpl-float v0, v0, v2

    if-gez v0, :cond_98

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 109
    :cond_98
    iput v5, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 111
    iget-boolean v0, p1, Lorg/jbox2d/dynamics/BodyDef;->bullet:Z

    if-eqz v0, :cond_a4

    .line 112
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x8

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 114
    :cond_a4
    iget-boolean v0, p1, Lorg/jbox2d/dynamics/BodyDef;->fixedRotation:Z

    if-eqz v0, :cond_ae

    .line 115
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x10

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 117
    :cond_ae
    iget-boolean v0, p1, Lorg/jbox2d/dynamics/BodyDef;->allowSleep:Z

    if-eqz v0, :cond_b8

    .line 118
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x4

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 120
    :cond_b8
    iget-boolean v0, p1, Lorg/jbox2d/dynamics/BodyDef;->awake:Z

    if-eqz v0, :cond_c2

    .line 121
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x2

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 123
    :cond_c2
    iget-boolean v0, p1, Lorg/jbox2d/dynamics/BodyDef;->active:Z

    if-eqz v0, :cond_cc

    .line 124
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x20

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 127
    :cond_cc
    iput-object p2, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    .line 129
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    iget-object v1, p1, Lorg/jbox2d/dynamics/BodyDef;->position:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 130
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v1, p1, Lorg/jbox2d/dynamics/BodyDef;->angle:F

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;

    .line 132
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 133
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 134
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 135
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, p1, Lorg/jbox2d/dynamics/BodyDef;->angle:F

    iput v1, v0, Lorg/jbox2d/common/Sweep;->a0:F

    .line 136
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, p1, Lorg/jbox2d/dynamics/BodyDef;->angle:F

    iput v1, v0, Lorg/jbox2d/common/Sweep;->a:F

    .line 137
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iput v2, v0, Lorg/jbox2d/common/Sweep;->alpha0:F

    .line 139
    iput-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 140
    iput-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 141
    iput-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_prev:Lorg/jbox2d/dynamics/Body;

    .line 142
    iput-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;

    .line 144
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    iget-object v1, p1, Lorg/jbox2d/dynamics/BodyDef;->linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 145
    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->angularVelocity:F

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    .line 147
    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->linearDamping:F

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearDamping:F

    .line 148
    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->angularDamping:F

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularDamping:F

    .line 149
    iget v0, p1, Lorg/jbox2d/dynamics/BodyDef;->gravityScale:F

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_gravityScale:F

    .line 151
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 152
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    .line 154
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F

    .line 156
    iget-object v0, p1, Lorg/jbox2d/dynamics/BodyDef;->type:Lorg/jbox2d/dynamics/BodyType;

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    .line 158
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-ne v0, v1, :cond_150

    .line 159
    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 160
    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    .line 166
    :goto_143
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    .line 167
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    .line 169
    iget-object v0, p1, Lorg/jbox2d/dynamics/BodyDef;->userData:Ljava/lang/Object;

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_userData:Ljava/lang/Object;

    .line 171
    iput-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    .line 172
    iput v5, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I

    .line 173
    return-void

    .line 162
    :cond_150
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 163
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    goto :goto_143
.end method


# virtual methods
.method protected final advance(F)V
    .registers 5

    .prologue
    .line 1177
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    invoke-virtual {v0, p1}, Lorg/jbox2d/common/Sweep;->advance(F)V

    .line 1178
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 1179
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a0:F

    iput v1, v0, Lorg/jbox2d/common/Sweep;->a:F

    .line 1180
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;

    .line 1182
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v2, v2, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 1183
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    const/high16 v1, -0x40800000    # -1.0f

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;

    move-result-object v0

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 1184
    return-void
.end method

.method public applyAngularImpulse(F)V
    .registers 4

    .prologue
    .line 550
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_7

    .line 558
    :goto_6
    return-void

    .line 554
    :cond_7
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->isAwake()Z

    move-result v0

    if-nez v0, :cond_11

    .line 555
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 557
    :cond_11
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    mul-float/2addr v1, p1

    add-float/2addr v0, v1

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    goto :goto_6
.end method

.method public final applyForce(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 7

    .prologue
    .line 459
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_7

    .line 476
    :goto_6
    return-void

    .line 463
    :cond_7
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->isAwake()Z

    move-result v0

    if-nez v0, :cond_11

    .line 464
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 472
    :cond_11
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    iget v2, p1, Lorg/jbox2d/common/Vec2;->x:F

    add-float/2addr v1, v2

    iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    .line 473
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    iget v2, p1, Lorg/jbox2d/common/Vec2;->y:F

    add-float/2addr v1, v2

    iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    .line 475
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    iget v1, p2, Lorg/jbox2d/common/Vec2;->x:F

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F

    sub-float/2addr v1, v2

    iget v2, p1, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v1, v2

    iget v2, p2, Lorg/jbox2d/common/Vec2;->y:F

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F

    sub-float/2addr v2, v3

    iget v3, p1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v2, v3

    sub-float/2addr v1, v2

    add-float/2addr v0, v1

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    goto :goto_6
.end method

.method public final applyForceToCenter(Lorg/jbox2d/common/Vec2;)V
    .registers 5

    .prologue
    .line 484
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_7

    .line 494
    :goto_6
    return-void

    .line 488
    :cond_7
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->isAwake()Z

    move-result v0

    if-nez v0, :cond_11

    .line 489
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 492
    :cond_11
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    iget v2, p1, Lorg/jbox2d/common/Vec2;->x:F

    add-float/2addr v1, v2

    iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    .line 493
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    iget v2, p1, Lorg/jbox2d/common/Vec2;->y:F

    add-float/2addr v1, v2

    iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    goto :goto_6
.end method

.method public final applyLinearImpulse(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Z)V
    .registers 9

    .prologue
    .line 525
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_7

    .line 542
    :cond_6
    :goto_6
    return-void

    .line 529
    :cond_7
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->isAwake()Z

    move-result v0

    if-nez v0, :cond_13

    .line 530
    if-eqz p3, :cond_6

    .line 531
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 537
    :cond_13
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    iget v2, p1, Lorg/jbox2d/common/Vec2;->x:F

    iget v3, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    mul-float/2addr v2, v3

    add-float/2addr v1, v2

    iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    .line 538
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    iget v2, p1, Lorg/jbox2d/common/Vec2;->y:F

    iget v3, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    mul-float/2addr v2, v3

    add-float/2addr v1, v2

    iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    .line 540
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    iget v2, p2, Lorg/jbox2d/common/Vec2;->x:F

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->x:F

    sub-float/2addr v2, v3

    iget v3, p1, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v2, v3

    iget v3, p2, Lorg/jbox2d/common/Vec2;->y:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F

    sub-float/2addr v3, v4

    iget v4, p1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v3, v4

    sub-float/2addr v2, v3

    mul-float/2addr v1, v2

    add-float/2addr v0, v1

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    goto :goto_6
.end method

.method public final applyTorque(F)V
    .registers 4

    .prologue
    .line 503
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_7

    .line 512
    :goto_6
    return-void

    .line 507
    :cond_7
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->isAwake()Z

    move-result v0

    if-nez v0, :cond_11

    .line 508
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 511
    :cond_11
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    add-float/2addr v0, p1

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    goto :goto_6
.end method

.method public final createFixture(Lorg/jbox2d/collision/shapes/Shape;F)Lorg/jbox2d/dynamics/Fixture;
    .registers 4

    .prologue
    .line 229
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->fixDef:Lorg/jbox2d/dynamics/FixtureDef;

    iput-object p1, v0, Lorg/jbox2d/dynamics/FixtureDef;->shape:Lorg/jbox2d/collision/shapes/Shape;

    .line 230
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->fixDef:Lorg/jbox2d/dynamics/FixtureDef;

    iput p2, v0, Lorg/jbox2d/dynamics/FixtureDef;->density:F

    .line 232
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->fixDef:Lorg/jbox2d/dynamics/FixtureDef;

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->createFixture(Lorg/jbox2d/dynamics/FixtureDef;)Lorg/jbox2d/dynamics/Fixture;

    move-result-object v0

    return-object v0
.end method

.method public final createFixture(Lorg/jbox2d/dynamics/FixtureDef;)Lorg/jbox2d/dynamics/Fixture;
    .registers 5

    .prologue
    .line 185
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_12

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    if-eqz v0, :cond_12

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 187
    :cond_12
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    const/4 v1, 0x1

    if-ne v0, v1, :cond_1d

    .line 188
    const/4 v0, 0x0

    .line 214
    :goto_1c
    return-object v0

    .line 191
    :cond_1d
    new-instance v0, Lorg/jbox2d/dynamics/Fixture;

    invoke-direct {v0}, Lorg/jbox2d/dynamics/Fixture;-><init>()V

    .line 192
    invoke-virtual {v0, p0, p1}, Lorg/jbox2d/dynamics/Fixture;->create(Lorg/jbox2d/dynamics/Body;Lorg/jbox2d/dynamics/FixtureDef;)V

    .line 194
    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v1, v1, 0x20

    const/16 v2, 0x20

    if-ne v1, v2, :cond_38

    .line 195
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v1, v1, 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;

    .line 196
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    invoke-virtual {v0, v1, v2}, Lorg/jbox2d/dynamics/Fixture;->createProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;Lorg/jbox2d/common/Transform;)V

    .line 199
    :cond_38
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    iput-object v1, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    .line 200
    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    .line 201
    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I

    add-int/lit8 v1, v1, 0x1

    iput v1, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I

    .line 203
    iput-object p0, v0, Lorg/jbox2d/dynamics/Fixture;->m_body:Lorg/jbox2d/dynamics/Body;

    .line 206
    iget v1, v0, Lorg/jbox2d/dynamics/Fixture;->m_density:F

    const/4 v2, 0x0

    cmpl-float v1, v1, v2

    if-lez v1, :cond_50

    .line 207
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->resetMassData()V

    .line 212
    :cond_50
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget v2, v1, Lorg/jbox2d/dynamics/World;->m_flags:I

    or-int/lit8 v2, v2, 0x1

    iput v2, v1, Lorg/jbox2d/dynamics/World;->m_flags:I

    goto :goto_1c
.end method

.method public final destroyFixture(Lorg/jbox2d/dynamics/Fixture;)V
    .registers 8

    .prologue
    const/4 v0, 0x1

    const/4 v3, 0x0

    .line 245
    sget-boolean v1, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v1, :cond_14

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v1}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v1

    if-eqz v1, :cond_14

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 246
    :cond_14
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v1}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v1

    if-ne v1, v0, :cond_1d

    .line 307
    :goto_1c
    return-void

    .line 250
    :cond_1d
    sget-boolean v1, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v1, :cond_2b

    iget-object v1, p1, Lorg/jbox2d/dynamics/Fixture;->m_body:Lorg/jbox2d/dynamics/Body;

    if-eq v1, p0, :cond_2b

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 253
    :cond_2b
    sget-boolean v1, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v1, :cond_39

    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I

    if-gtz v1, :cond_39

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 254
    :cond_39
    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    .line 256
    const/4 v1, 0x0

    move-object v2, v3

    .line 257
    :goto_3d
    if-eqz v4, :cond_9f

    .line 258
    if-ne v4, p1, :cond_4f

    .line 259
    iget-object v1, p1, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    .line 268
    :goto_43
    sget-boolean v1, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v1, :cond_55

    if-nez v0, :cond_55

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 264
    :cond_4f
    iget-object v2, v4, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    move-object v5, v4

    move-object v4, v2

    move-object v2, v5

    goto :goto_3d

    .line 271
    :cond_55
    if-nez v2, :cond_77

    .line 272
    iget-object v0, p1, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    .line 278
    :goto_5b
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 279
    :cond_5d
    :goto_5d
    if-eqz v0, :cond_7c

    .line 280
    iget-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;

    .line 281
    iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 283
    invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;

    move-result-object v2

    .line 284
    invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;

    move-result-object v4

    .line 286
    if-eq p1, v2, :cond_6f

    if-ne p1, v4, :cond_5d

    .line 289
    :cond_6f
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v2, v2, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;

    invoke-virtual {v2, v1}, Lorg/jbox2d/dynamics/ContactManager;->destroy(Lorg/jbox2d/dynamics/contacts/Contact;)V

    goto :goto_5d

    .line 274
    :cond_77
    iget-object v0, p1, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    iput-object v0, v2, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    goto :goto_5b

    .line 293
    :cond_7c
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x20

    const/16 v1, 0x20

    if-ne v0, v1, :cond_8d

    .line 294
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v0, v0, 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;

    .line 295
    invoke-virtual {p1, v0}, Lorg/jbox2d/dynamics/Fixture;->destroyProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;)V

    .line 298
    :cond_8d
    invoke-virtual {p1}, Lorg/jbox2d/dynamics/Fixture;->destroy()V

    .line 299
    iput-object v3, p1, Lorg/jbox2d/dynamics/Fixture;->m_body:Lorg/jbox2d/dynamics/Body;

    .line 300
    iput-object v3, p1, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    .line 303
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I

    add-int/lit8 v0, v0, -0x1

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureCount:I

    .line 306
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->resetMassData()V

    goto/16 :goto_1c

    :cond_9f
    move v0, v1

    goto :goto_43
.end method

.method public final getAngle()F
    .registers 2

    .prologue
    .line 363
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v0, v0, Lorg/jbox2d/common/Sweep;->a:F

    return v0
.end method

.method public final getAngularDamping()F
    .registers 2

    .prologue
    .line 856
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularDamping:F

    return v0
.end method

.method public final getAngularVelocity()F
    .registers 2

    .prologue
    .line 430
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    return v0
.end method

.method public final getContactList()Lorg/jbox2d/dynamics/contacts/ContactEdge;
    .registers 2

    .prologue
    .line 1086
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    return-object v0
.end method

.method public final getFixtureList()Lorg/jbox2d/dynamics/Fixture;
    .registers 2

    .prologue
    .line 1071
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    return-object v0
.end method

.method public getGravityScale()F
    .registers 2

    .prologue
    .line 439
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_gravityScale:F

    return v0
.end method

.method public final getInertia()F
    .registers 6

    .prologue
    .line 575
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v2, v3

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v3, v4

    add-float/2addr v2, v3

    mul-float/2addr v1, v2

    add-float/2addr v0, v1

    return v0
.end method

.method public final getJointList()Lorg/jbox2d/dynamics/joints/JointEdge;
    .registers 2

    .prologue
    .line 1076
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;

    return-object v0
.end method

.method public final getLinearDamping()F
    .registers 2

    .prologue
    .line 846
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearDamping:F

    return v0
.end method

.method public final getLinearVelocity()Lorg/jbox2d/common/Vec2;
    .registers 2

    .prologue
    .line 404
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    return-object v0
.end method

.method public final getLinearVelocityFromLocalPoint(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 834
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    .line 835
    invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/Body;->getLinearVelocityFromLocalPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 836
    return-object v0
.end method

.method public final getLinearVelocityFromLocalPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 3

    .prologue
    .line 840
    invoke-virtual {p0, p1, p2}, Lorg/jbox2d/dynamics/Body;->getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 841
    invoke-virtual {p0, p2, p2}, Lorg/jbox2d/dynamics/Body;->getLinearVelocityFromWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 842
    return-void
.end method

.method public final getLinearVelocityFromWorldPoint(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 815
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    .line 816
    invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/Body;->getLinearVelocityFromWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 817
    return-object v0
.end method

.method public final getLinearVelocityFromWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 6

    .prologue
    .line 821
    iget v0, p1, Lorg/jbox2d/common/Vec2;->x:F

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v1, v1, Lorg/jbox2d/common/Vec2;->x:F

    sub-float/2addr v0, v1

    .line 822
    iget v1, p1, Lorg/jbox2d/common/Vec2;->y:F

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->y:F

    sub-float/2addr v1, v2

    .line 823
    iget v2, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    neg-float v2, v2

    mul-float/2addr v1, v2

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F

    add-float/2addr v1, v2

    iput v1, p2, Lorg/jbox2d/common/Vec2;->x:F

    .line 824
    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    mul-float/2addr v0, v1

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    iget v1, v1, Lorg/jbox2d/common/Vec2;->y:F

    add-float/2addr v0, v1

    iput v0, p2, Lorg/jbox2d/common/Vec2;->y:F

    .line 825
    return-void
.end method

.method public final getLocalCenter()Lorg/jbox2d/common/Vec2;
    .registers 2

    .prologue
    .line 377
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    return-object v0
.end method

.method public final getLocalPoint(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 779
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    .line 780
    invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/Body;->getLocalPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 781
    return-object v0
.end method

.method public final getLocalPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 785
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    invoke-static {v0, p1, p2}, Lorg/jbox2d/common/Transform;->mulTransToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 786
    return-void
.end method

.method public final getLocalVector(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 795
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    .line 796
    invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/Body;->getLocalVectorToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 797
    return-object v0
.end method

.method public final getLocalVectorToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 801
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    invoke-static {v0, p1, p2}, Lorg/jbox2d/common/Rot;->mulTrans(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 802
    return-void
.end method

.method public final getLocalVectorToOutUnsafe(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 805
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    invoke-static {v0, p1, p2}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 806
    return-void
.end method

.method public final getMass()F
    .registers 2

    .prologue
    .line 566
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    return v0
.end method

.method public final getMassData(Lorg/jbox2d/collision/shapes/MassData;)V
    .registers 7

    .prologue
    .line 591
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    iput v0, p1, Lorg/jbox2d/collision/shapes/MassData;->mass:F

    .line 592
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v2, v3

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v3, v4

    add-float/2addr v2, v3

    mul-float/2addr v1, v2

    add-float/2addr v0, v1

    iput v0, p1, Lorg/jbox2d/collision/shapes/MassData;->I:F

    .line 597
    iget-object v0, p1, Lorg/jbox2d/collision/shapes/MassData;->center:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v1, v1, Lorg/jbox2d/common/Vec2;->x:F

    iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F

    .line 598
    iget-object v0, p1, Lorg/jbox2d/collision/shapes/MassData;->center:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v1, v1, Lorg/jbox2d/common/Vec2;->y:F

    iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F

    .line 599
    return-void
.end method

.method public final getNext()Lorg/jbox2d/dynamics/Body;
    .registers 2

    .prologue
    .line 1091
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_next:Lorg/jbox2d/dynamics/Body;

    return-object v0
.end method

.method public final getPosition()Lorg/jbox2d/common/Vec2;
    .registers 2

    .prologue
    .line 354
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    return-object v0
.end method

.method public final getTransform()Lorg/jbox2d/common/Transform;
    .registers 2

    .prologue
    .line 345
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    return-object v0
.end method

.method public getType()Lorg/jbox2d/dynamics/BodyType;
    .registers 2

    .prologue
    .line 865
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    return-object v0
.end method

.method public final getUserData()Ljava/lang/Object;
    .registers 2

    .prologue
    .line 1096
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_userData:Ljava/lang/Object;

    return-object v0
.end method

.method public final getWorld()Lorg/jbox2d/dynamics/World;
    .registers 2

    .prologue
    .line 1110
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    return-object v0
.end method

.method public final getWorldCenter()Lorg/jbox2d/common/Vec2;
    .registers 2

    .prologue
    .line 370
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    return-object v0
.end method

.method public final getWorldPoint(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 743
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    .line 744
    invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/Body;->getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 745
    return-object v0
.end method

.method public final getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 749
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    invoke-static {v0, p1, p2}, Lorg/jbox2d/common/Transform;->mulToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 750
    return-void
.end method

.method public final getWorldVector(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 759
    new-instance v0, Lorg/jbox2d/common/Vec2;

    invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V

    .line 760
    invoke-virtual {p0, p1, v0}, Lorg/jbox2d/dynamics/Body;->getWorldVectorToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 761
    return-object v0
.end method

.method public final getWorldVectorToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 765
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    invoke-static {v0, p1, p2}, Lorg/jbox2d/common/Rot;->mulToOut(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 766
    return-void
.end method

.method public final getWorldVectorToOutUnsafe(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 769
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    invoke-static {v0, p1, p2}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 770
    return-void
.end method

.method public isActive()Z
    .registers 3

    .prologue
    .line 1042
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x20

    const/16 v1, 0x20

    if-ne v0, v1, :cond_a

    const/4 v0, 0x1

    :goto_9
    return v0

    :cond_a
    const/4 v0, 0x0

    goto :goto_9
.end method

.method public isAwake()Z
    .registers 3

    .prologue
    .line 984
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->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 final isBullet()Z
    .registers 3

    .prologue
    .line 921
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x8

    const/16 v1, 0x8

    if-ne v0, v1, :cond_a

    const/4 v0, 0x1

    :goto_9
    return v0

    :cond_a
    const/4 v0, 0x0

    goto :goto_9
.end method

.method public isFixedRotation()Z
    .registers 3

    .prologue
    .line 1066
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x10

    const/16 v1, 0x10

    if-ne v0, v1, :cond_a

    const/4 v0, 0x1

    :goto_9
    return v0

    :cond_a
    const/4 v0, 0x0

    goto :goto_9
.end method

.method public isSleepingAllowed()Z
    .registers 3

    .prologue
    .line 953
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->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 final resetMassData()V
    .registers 9

    .prologue
    const/high16 v7, 0x3f800000    # 1.0f

    const/4 v6, 0x0

    .line 663
    iput v6, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 664
    iput v6, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    .line 665
    iput v6, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    .line 666
    iput v6, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    .line 667
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 670
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_1e

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->KINEMATIC:Lorg/jbox2d/dynamics/BodyType;

    if-ne v0, v1, :cond_3d

    .line 672
    :cond_1e
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 673
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 674
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F

    iput v1, v0, Lorg/jbox2d/common/Sweep;->a0:F

    .line 734
    :goto_3c
    return-void

    .line 678
    :cond_3d
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_4d

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, v1, :cond_4d

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 681
    :cond_4d
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v0

    invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;

    move-result-object v1

    .line 682
    invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 683
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v0

    invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;

    move-result-object v2

    .line 684
    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->pmd:Lorg/jbox2d/collision/shapes/MassData;

    .line 685
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    :goto_68
    if-eqz v0, :cond_93

    .line 686
    iget v4, v0, Lorg/jbox2d/dynamics/Fixture;->m_density:F

    cmpl-float v4, v4, v6

    if-nez v4, :cond_73

    .line 685
    :goto_70
    iget-object v0, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    goto :goto_68

    .line 689
    :cond_73
    invoke-virtual {v0, v3}, Lorg/jbox2d/dynamics/Fixture;->getMassData(Lorg/jbox2d/collision/shapes/MassData;)V

    .line 690
    iget v4, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    iget v5, v3, Lorg/jbox2d/collision/shapes/MassData;->mass:F

    add-float/2addr v4, v5

    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 692
    iget-object v4, v3, Lorg/jbox2d/collision/shapes/MassData;->center:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v2, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v4

    iget v5, v3, Lorg/jbox2d/collision/shapes/MassData;->mass:F

    invoke-virtual {v4, v5}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;

    .line 693
    invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 694
    iget v4, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    iget v5, v3, Lorg/jbox2d/collision/shapes/MassData;->I:F

    add-float/2addr v4, v5

    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    goto :goto_70

    .line 698
    :cond_93
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    cmpl-float v0, v0, v6

    if-lez v0, :cond_cc

    .line 699
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    div-float v0, v7, v0

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    .line 700
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;

    .line 707
    :goto_a4
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    cmpl-float v0, v0, v6

    if-lez v0, :cond_128

    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x10

    if-nez v0, :cond_128

    .line 709
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    iget v3, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    invoke-static {v1, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v4

    mul-float/2addr v3, v4

    sub-float/2addr v0, v3

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    .line 710
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_d1

    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    cmpl-float v0, v0, v6

    if-gtz v0, :cond_d1

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 703
    :cond_cc
    iput v7, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 704
    iput v7, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    goto :goto_a4

    .line 711
    :cond_d1
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    div-float v0, v7, v0

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    .line 717
    :goto_d7
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v0

    invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;

    move-result-object v0

    .line 719
    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 720
    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v3, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 722
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    invoke-static {v1, v3, v4}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 723
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v1, v3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 727
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v2, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v1

    invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 730
    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    invoke-static {v1, v2, v0}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 731
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 733
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v0

    const/4 v1, 0x3

    invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V

    goto/16 :goto_3c

    .line 713
    :cond_128
    iput v6, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    .line 714
    iput v6, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    goto :goto_d7
.end method

.method public setActive(Z)V
    .registers 5

    .prologue
    .line 1000
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_12

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    if-eqz v0, :cond_12

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 1002
    :cond_12
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->isActive()Z

    move-result v0

    if-ne p1, v0, :cond_19

    .line 1034
    :cond_18
    :goto_18
    return-void

    .line 1006
    :cond_19
    if-eqz p1, :cond_33

    .line 1007
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x20

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 1010
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v0, v0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;

    iget-object v1, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;

    .line 1011
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    :goto_29
    if-eqz v0, :cond_18

    .line 1012
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    invoke-virtual {v0, v1, v2}, Lorg/jbox2d/dynamics/Fixture;->createProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;Lorg/jbox2d/common/Transform;)V

    .line 1011
    iget-object v0, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    goto :goto_29

    .line 1017
    :cond_33
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, -0x21

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 1020
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v0, v0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;

    iget-object v1, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;

    .line 1021
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    :goto_41
    if-eqz v0, :cond_49

    .line 1022
    invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Fixture;->destroyProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;)V

    .line 1021
    iget-object v0, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    goto :goto_41

    .line 1026
    :cond_49
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 1027
    :goto_4b
    if-eqz v0, :cond_5a

    .line 1029
    iget-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 1030
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v2, v2, 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 1031
    goto :goto_4b

    .line 1032
    :cond_5a
    const/4 v0, 0x0

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    goto :goto_18
.end method

.method public final setAngularDamping(F)V
    .registers 2

    .prologue
    .line 861
    iput p1, p0, Lorg/jbox2d/dynamics/Body;->m_angularDamping:F

    .line 862
    return-void
.end method

.method public final setAngularVelocity(F)V
    .registers 4

    .prologue
    .line 413
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;

    if-ne v0, v1, :cond_7

    .line 422
    :goto_6
    return-void

    .line 417
    :cond_7
    mul-float v0, p1, p1

    const/4 v1, 0x0

    cmpl-float v0, v0, v1

    if-lez v0, :cond_12

    .line 418
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 421
    :cond_12
    iput p1, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    goto :goto_6
.end method

.method public setAwake(Z)V
    .registers 4

    .prologue
    const/4 v1, 0x0

    .line 963
    if-eqz p1, :cond_12

    .line 964
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x2

    if-nez v0, :cond_11

    .line 965
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x2

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 966
    iput v1, p0, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F

    .line 976
    :cond_11
    :goto_11
    return-void

    .line 969
    :cond_12
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, -0x3

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 970
    iput v1, p0, Lorg/jbox2d/dynamics/Body;->m_sleepTime:F

    .line 971
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 972
    iput v1, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    .line 973
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 974
    iput v1, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    goto :goto_11
.end method

.method public final setBullet(Z)V
    .registers 3

    .prologue
    .line 926
    if-eqz p1, :cond_9

    .line 927
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x8

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 931
    :goto_8
    return-void

    .line 929
    :cond_9
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, -0x9

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    goto :goto_8
.end method

.method public setFixedRotation(Z)V
    .registers 3

    .prologue
    .line 1051
    if-eqz p1, :cond_c

    .line 1052
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x10

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 1057
    :goto_8
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->resetMassData()V

    .line 1058
    return-void

    .line 1054
    :cond_c
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, -0x11

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    goto :goto_8
.end method

.method public setGravityScale(F)V
    .registers 2

    .prologue
    .line 448
    iput p1, p0, Lorg/jbox2d/dynamics/Body;->m_gravityScale:F

    .line 449
    return-void
.end method

.method public final setLinearDamping(F)V
    .registers 2

    .prologue
    .line 851
    iput p1, p0, Lorg/jbox2d/dynamics/Body;->m_linearDamping:F

    .line 852
    return-void
.end method

.method public final setLinearVelocity(Lorg/jbox2d/common/Vec2;)V
    .registers 4

    .prologue
    .line 386
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;

    if-ne v0, v1, :cond_7

    .line 395
    :goto_6
    return-void

    .line 390
    :cond_7
    invoke-static {p1, p1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v0

    const/4 v1, 0x0

    cmpl-float v0, v0, v1

    if-lez v0, :cond_14

    .line 391
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 394
    :cond_14
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, p1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    goto :goto_6
.end method

.method public final setMassData(Lorg/jbox2d/collision/shapes/MassData;)V
    .registers 8

    .prologue
    const/high16 v5, 0x3f800000    # 1.0f

    const/4 v4, 0x0

    .line 610
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_15

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    if-eqz v0, :cond_15

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 611
    :cond_15
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    const/4 v1, 0x1

    if-ne v0, v1, :cond_1f

    .line 652
    :cond_1e
    :goto_1e
    return-void

    .line 615
    :cond_1f
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-ne v0, v1, :cond_1e

    .line 619
    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    .line 620
    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    .line 621
    iput v4, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    .line 623
    iget v0, p1, Lorg/jbox2d/collision/shapes/MassData;->mass:F

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 624
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    cmpg-float v0, v0, v4

    if-gtz v0, :cond_37

    .line 625
    iput v5, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    .line 628
    :cond_37
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    div-float v0, v5, v0

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_invMass:F

    .line 630
    iget v0, p1, Lorg/jbox2d/collision/shapes/MassData;->I:F

    cmpl-float v0, v0, v4

    if-lez v0, :cond_6f

    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, 0x10

    if-nez v0, :cond_6f

    .line 631
    iget v0, p1, Lorg/jbox2d/collision/shapes/MassData;->I:F

    iget v1, p0, Lorg/jbox2d/dynamics/Body;->m_mass:F

    iget-object v2, p1, Lorg/jbox2d/collision/shapes/MassData;->center:Lorg/jbox2d/common/Vec2;

    iget-object v3, p1, Lorg/jbox2d/collision/shapes/MassData;->center:Lorg/jbox2d/common/Vec2;

    invoke-static {v2, v3}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v2

    mul-float/2addr v1, v2

    sub-float/2addr v0, v1

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    .line 632
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_69

    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    cmpl-float v0, v0, v4

    if-gtz v0, :cond_69

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 633
    :cond_69
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_I:F

    div-float v0, v5, v0

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_invI:F

    .line 636
    :cond_6f
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v0

    invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;

    move-result-object v0

    .line 638
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 639
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget-object v2, p1, Lorg/jbox2d/collision/shapes/MassData;->center:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 641
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    invoke-static {v1, v2, v3}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 642
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 646
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v1}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;

    move-result-object v1

    .line 647
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v2

    invoke-virtual {v2, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 648
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    invoke-static {v0, v1, v1}, Lorg/jbox2d/common/Vec2;->crossToOut(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 649
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 651
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v0

    const/4 v1, 0x2

    invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V

    goto/16 :goto_1e
.end method

.method public setSleepingAllowed(Z)V
    .registers 3

    .prologue
    .line 939
    if-eqz p1, :cond_9

    .line 940
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    or-int/lit8 v0, v0, 0x4

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 945
    :goto_8
    return-void

    .line 942
    :cond_9
    iget v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    and-int/lit8 v0, v0, -0x5

    iput v0, p0, Lorg/jbox2d/dynamics/Body;->m_flags:I

    .line 943
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    goto :goto_8
.end method

.method public final setTransform(Lorg/jbox2d/common/Vec2;F)V
    .registers 7

    .prologue
    .line 318
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_12

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    if-eqz v0, :cond_12

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 319
    :cond_12
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    const/4 v1, 0x1

    if-ne v0, v1, :cond_1c

    .line 337
    :cond_1b
    return-void

    .line 323
    :cond_1c
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    invoke-virtual {v0, p2}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;

    .line 324
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, p1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 327
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 328
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iput p2, v0, Lorg/jbox2d/common/Sweep;->a:F

    .line 330
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 331
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F

    iput v1, v0, Lorg/jbox2d/common/Sweep;->a0:F

    .line 333
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v0, v0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;

    iget-object v1, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;

    .line 334
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    :goto_56
    if-eqz v0, :cond_1b

    .line 335
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    invoke-virtual {v0, v1, v2, v3}, Lorg/jbox2d/dynamics/Fixture;->synchronize(Lorg/jbox2d/collision/broadphase/BroadPhase;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Transform;)V

    .line 334
    iget-object v0, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    goto :goto_56
.end method

.method public setType(Lorg/jbox2d/dynamics/BodyType;)V
    .registers 7

    .prologue
    const/4 v3, 0x1

    const/4 v2, 0x0

    .line 874
    sget-boolean v0, Lorg/jbox2d/dynamics/Body;->$assertionsDisabled:Z

    if-nez v0, :cond_14

    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    if-eqz v0, :cond_14

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 875
    :cond_14
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->isLocked()Z

    move-result v0

    if-ne v0, v3, :cond_1d

    .line 917
    :cond_1c
    return-void

    .line 879
    :cond_1d
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    if-eq v0, p1, :cond_1c

    .line 883
    iput-object p1, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    .line 885
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->resetMassData()V

    .line 887
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v1, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;

    if-ne v0, v1, :cond_49

    .line 888
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 889
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F

    .line 890
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F

    iput v1, v0, Lorg/jbox2d/common/Sweep;->a0:F

    .line 891
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v0, v0, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 892
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Body;->synchronizeFixtures()V

    .line 895
    :cond_49
    invoke-virtual {p0, v3}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V

    .line 897
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_force:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V

    .line 898
    iput v2, p0, Lorg/jbox2d/dynamics/Body;->m_torque:F

    .line 901
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 902
    :goto_55
    if-eqz v0, :cond_64

    .line 904
    iget-object v1, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 905
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v2, v2, 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 906
    goto :goto_55

    .line 907
    :cond_64
    const/4 v0, 0x0

    iput-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;

    .line 910
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v0, v0, Lorg/jbox2d/dynamics/World;->m_contactManager:Lorg/jbox2d/dynamics/ContactManager;

    iget-object v2, v0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;

    .line 911
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    move-object v1, v0

    :goto_70
    if-eqz v1, :cond_1c

    .line 912
    iget v3, v1, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    .line 913
    const/4 v0, 0x0

    :goto_75
    if-ge v0, v3, :cond_83

    .line 914
    iget-object v4, v1, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v4, v4, v0

    iget v4, v4, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    invoke-interface {v2, v4}, Lorg/jbox2d/collision/broadphase/BroadPhase;->touchProxy(I)V

    .line 913
    add-int/lit8 v0, v0, 0x1

    goto :goto_75

    .line 911
    :cond_83
    iget-object v0, v1, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    move-object v1, v0

    goto :goto_70
.end method

.method public final setUserData(Ljava/lang/Object;)V
    .registers 2

    .prologue
    .line 1103
    iput-object p1, p0, Lorg/jbox2d/dynamics/Body;->m_userData:Ljava/lang/Object;

    .line 1104
    return-void
.end method

.method public shouldCollide(Lorg/jbox2d/dynamics/Body;)Z
    .registers 5

    .prologue
    const/4 v0, 0x0

    .line 1159
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v2, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v1, v2, :cond_e

    iget-object v1, p1, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;

    sget-object v2, Lorg/jbox2d/dynamics/BodyType;->DYNAMIC:Lorg/jbox2d/dynamics/BodyType;

    if-eq v1, v2, :cond_e

    .line 1172
    :cond_d
    :goto_d
    return v0

    .line 1164
    :cond_e
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_jointList:Lorg/jbox2d/dynamics/joints/JointEdge;

    :goto_10
    if-eqz v1, :cond_21

    .line 1165
    iget-object v2, v1, Lorg/jbox2d/dynamics/joints/JointEdge;->other:Lorg/jbox2d/dynamics/Body;

    if-ne v2, p1, :cond_1e

    .line 1166
    iget-object v2, v1, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;

    invoke-virtual {v2}, Lorg/jbox2d/dynamics/joints/Joint;->getCollideConnected()Z

    move-result v2

    if-eqz v2, :cond_d

    .line 1164
    :cond_1e
    iget-object v1, v1, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;

    goto :goto_10

    .line 1172
    :cond_21
    const/4 v0, 0x1

    goto :goto_d
.end method

.method protected final synchronizeFixtures()V
    .registers 6

    .prologue
    .line 1117
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->pxf:Lorg/jbox2d/common/Transform;

    .line 1124
    iget-object v0, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v2, v2, Lorg/jbox2d/common/Sweep;->a0:F

    invoke-static {v2}, Lorg/jbox2d/common/MathUtils;->sin(F)F

    move-result v2

    iput v2, v0, Lorg/jbox2d/common/Rot;->s:F

    .line 1125
    iget-object v0, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v2, v2, Lorg/jbox2d/common/Sweep;->a0:F

    invoke-static {v2}, Lorg/jbox2d/common/MathUtils;->cos(F)F

    move-result v2

    iput v2, v0, Lorg/jbox2d/common/Rot;->c:F

    .line 1126
    iget-object v0, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F

    iget-object v3, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v3, v3, Lorg/jbox2d/common/Rot;->c:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v3, v4

    sub-float/2addr v2, v3

    iget-object v3, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v3, v3, Lorg/jbox2d/common/Rot;->s:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v3, v4

    add-float/2addr v2, v3

    iput v2, v0, Lorg/jbox2d/common/Vec2;->x:F

    .line 1127
    iget-object v0, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v2, v2, Lorg/jbox2d/common/Sweep;->c0:Lorg/jbox2d/common/Vec2;

    iget v2, v2, Lorg/jbox2d/common/Vec2;->y:F

    iget-object v3, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v3, v3, Lorg/jbox2d/common/Rot;->s:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v3, v4

    sub-float/2addr v2, v3

    iget-object v3, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v3, v3, Lorg/jbox2d/common/Rot;->c:F

    iget-object v4, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v4, v4, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v3, v4

    sub-float/2addr v2, v3

    iput v2, v0, Lorg/jbox2d/common/Vec2;->y:F

    .line 1130
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_fixtureList:Lorg/jbox2d/dynamics/Fixture;

    :goto_60
    if-eqz v0, :cond_70

    .line 1131
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_world:Lorg/jbox2d/dynamics/World;

    iget-object v2, v2, 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;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    invoke-virtual {v0, v2, v1, v3}, Lorg/jbox2d/dynamics/Fixture;->synchronize(Lorg/jbox2d/collision/broadphase/BroadPhase;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Transform;)V

    .line 1130
    iget-object v0, v0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    goto :goto_60

    .line 1133
    :cond_70
    return-void
.end method

.method public final synchronizeTransform()V
    .registers 7

    .prologue
    .line 1142
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F

    invoke-static {v1}, Lorg/jbox2d/common/MathUtils;->sin(F)F

    move-result v1

    iput v1, v0, Lorg/jbox2d/common/Rot;->s:F

    .line 1143
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F

    invoke-static {v1}, Lorg/jbox2d/common/MathUtils;->cos(F)F

    move-result v1

    iput v1, v0, Lorg/jbox2d/common/Rot;->c:F

    .line 1144
    iget-object v0, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    .line 1145
    iget-object v1, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v1, v1, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;

    .line 1146
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v2, v2, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->x:F

    iget v4, v0, Lorg/jbox2d/common/Rot;->c:F

    iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v4, v5

    sub-float/2addr v3, v4

    iget v4, v0, Lorg/jbox2d/common/Rot;->s:F

    iget v5, v1, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v4, v5

    add-float/2addr v3, v4

    iput v3, v2, Lorg/jbox2d/common/Vec2;->x:F

    .line 1147
    iget-object v2, p0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;

    iget-object v2, v2, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;

    iget-object v3, v3, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;

    iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F

    iget v4, v0, Lorg/jbox2d/common/Rot;->s:F

    iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v4, v5

    sub-float/2addr v3, v4

    iget v0, v0, Lorg/jbox2d/common/Rot;->c:F

    iget v1, v1, Lorg/jbox2d/common/Vec2;->y:F

    mul-float/2addr v0, v1

    sub-float v0, v3, v0

    iput v0, v2, Lorg/jbox2d/common/Vec2;->y:F

    .line 1148
    return-void
.end method