Fixture.smali

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


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


# instance fields
.field private final displacement:Lorg/jbox2d/common/Vec2;

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

.field public m_density:F

.field public final m_filter:Lorg/jbox2d/dynamics/Filter;

.field public m_friction:F

.field public m_isSensor:Z

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

.field public m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

.field public m_proxyCount:I

.field public m_restitution:F

.field public m_shape:Lorg/jbox2d/collision/shapes/Shape;

.field public m_userData:Ljava/lang/Object;

.field private final pool1:Lorg/jbox2d/collision/AABB;

.field private final pool2:Lorg/jbox2d/collision/AABB;


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

    .prologue
    .line 48
    const-class v0, Lorg/jbox2d/dynamics/Fixture;

    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/Fixture;->$assertionsDisabled:Z

    return-void

    :cond_c
    const/4 v0, 0x0

    goto :goto_9
.end method

.method public constructor <init>()V
    .registers 3

    .prologue
    const/4 v1, 0x0

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

    .line 406
    new-instance v0, Lorg/jbox2d/collision/AABB;

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

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->pool1:Lorg/jbox2d/collision/AABB;

    .line 407
    new-instance v0, Lorg/jbox2d/collision/AABB;

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

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->pool2:Lorg/jbox2d/collision/AABB;

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

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

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->displacement:Lorg/jbox2d/common/Vec2;

    .line 70
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_userData:Ljava/lang/Object;

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

    .line 72
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    .line 73
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    .line 74
    const/4 v0, 0x0

    iput v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    .line 75
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    .line 76
    new-instance v0, Lorg/jbox2d/dynamics/Filter;

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

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_filter:Lorg/jbox2d/dynamics/Filter;

    .line 77
    return-void
.end method


# virtual methods
.method public computeDistance(Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Vec2;)F
    .registers 6

    .prologue
    .line 311
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

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

    invoke-virtual {v1}, Lorg/jbox2d/dynamics/Body;->getTransform()Lorg/jbox2d/common/Transform;

    move-result-object v1

    invoke-virtual {v0, v1, p1, p2, p3}, Lorg/jbox2d/collision/shapes/Shape;->computeDistanceToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Vec2;)F

    move-result v0

    return v0
.end method

.method public create(Lorg/jbox2d/dynamics/Body;Lorg/jbox2d/dynamics/FixtureDef;)V
    .registers 11

    .prologue
    const/4 v7, -0x1

    const/4 v6, 0x0

    const/4 v1, 0x0

    .line 318
    iget-object v0, p2, Lorg/jbox2d/dynamics/FixtureDef;->userData:Ljava/lang/Object;

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

    .line 319
    iget v0, p2, Lorg/jbox2d/dynamics/FixtureDef;->friction:F

    iput v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_friction:F

    .line 320
    iget v0, p2, Lorg/jbox2d/dynamics/FixtureDef;->restitution:F

    iput v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_restitution:F

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

    .line 323
    iput-object v6, p0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    .line 326
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_filter:Lorg/jbox2d/dynamics/Filter;

    iget-object v2, p2, Lorg/jbox2d/dynamics/FixtureDef;->filter:Lorg/jbox2d/dynamics/Filter;

    invoke-virtual {v0, v2}, Lorg/jbox2d/dynamics/Filter;->set(Lorg/jbox2d/dynamics/Filter;)V

    .line 328
    iget-boolean v0, p2, Lorg/jbox2d/dynamics/FixtureDef;->isSensor:Z

    iput-boolean v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z

    .line 330
    iget-object v0, p2, Lorg/jbox2d/dynamics/FixtureDef;->shape:Lorg/jbox2d/collision/shapes/Shape;

    invoke-virtual {v0}, Lorg/jbox2d/collision/shapes/Shape;->clone()Lorg/jbox2d/collision/shapes/Shape;

    move-result-object v0

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    .line 333
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    invoke-virtual {v0}, Lorg/jbox2d/collision/shapes/Shape;->getChildCount()I

    move-result v2

    .line 334
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    if-nez v0, :cond_4f

    .line 335
    new-array v0, v2, [Lorg/jbox2d/dynamics/FixtureProxy;

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    move v0, v1

    .line 336
    :goto_35
    if-ge v0, v2, :cond_4f

    .line 337
    iget-object v3, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    new-instance v4, Lorg/jbox2d/dynamics/FixtureProxy;

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

    aput-object v4, v3, v0

    .line 338
    iget-object v3, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v3, v3, v0

    iput-object v6, v3, Lorg/jbox2d/dynamics/FixtureProxy;->fixture:Lorg/jbox2d/dynamics/Fixture;

    .line 339
    iget-object v3, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v3, v3, v0

    iput v7, v3, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    .line 336
    add-int/lit8 v0, v0, 0x1

    goto :goto_35

    .line 343
    :cond_4f
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    array-length v0, v0

    if-ge v0, v2, :cond_85

    .line 344
    iget-object v3, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    .line 345
    array-length v0, v3

    mul-int/lit8 v0, v0, 0x2

    invoke-static {v0, v2}, Lorg/jbox2d/common/MathUtils;->max(II)I

    move-result v2

    .line 346
    new-array v0, v2, [Lorg/jbox2d/dynamics/FixtureProxy;

    iput-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    .line 347
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    array-length v4, v3

    invoke-static {v3, v1, v0, v1, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    move v0, v1

    .line 348
    :goto_68
    if-ge v0, v2, :cond_85

    .line 349
    array-length v4, v3

    if-lt v0, v4, :cond_76

    .line 350
    iget-object v4, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    new-instance v5, Lorg/jbox2d/dynamics/FixtureProxy;

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

    aput-object v5, v4, v0

    .line 352
    :cond_76
    iget-object v4, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v4, v4, v0

    iput-object v6, v4, Lorg/jbox2d/dynamics/FixtureProxy;->fixture:Lorg/jbox2d/dynamics/Fixture;

    .line 353
    iget-object v4, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v4, v4, v0

    iput v7, v4, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    .line 348
    add-int/lit8 v0, v0, 0x1

    goto :goto_68

    .line 356
    :cond_85
    iput v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    .line 358
    iget v0, p2, Lorg/jbox2d/dynamics/FixtureDef;->density:F

    iput v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_density:F

    .line 359
    return-void
.end method

.method public createProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;Lorg/jbox2d/common/Transform;)V
    .registers 7

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

    if-nez v0, :cond_e

    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-eqz v0, :cond_e

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 379
    :cond_e
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    invoke-virtual {v0}, Lorg/jbox2d/collision/shapes/Shape;->getChildCount()I

    move-result v0

    iput v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    .line 381
    const/4 v0, 0x0

    :goto_17
    iget v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-ge v0, v1, :cond_35

    .line 382
    iget-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v1, v1, v0

    .line 383
    iget-object v2, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    iget-object v3, v1, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    invoke-virtual {v2, v3, p2, v0}, Lorg/jbox2d/collision/shapes/Shape;->computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V

    .line 384
    iget-object v2, v1, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    invoke-interface {p1, v2, v1}, Lorg/jbox2d/collision/broadphase/BroadPhase;->createProxy(Lorg/jbox2d/collision/AABB;Ljava/lang/Object;)I

    move-result v2

    iput v2, v1, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    .line 385
    iput-object p0, v1, Lorg/jbox2d/dynamics/FixtureProxy;->fixture:Lorg/jbox2d/dynamics/Fixture;

    .line 386
    iput v0, v1, Lorg/jbox2d/dynamics/FixtureProxy;->childIndex:I

    .line 381
    add-int/lit8 v0, v0, 0x1

    goto :goto_17

    .line 388
    :cond_35
    return-void
.end method

.method public destroy()V
    .registers 3

    .prologue
    const/4 v1, 0x0

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

    if-nez v0, :cond_f

    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-eqz v0, :cond_f

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 366
    :cond_f
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    .line 367
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    .line 368
    iput-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_next:Lorg/jbox2d/dynamics/Fixture;

    .line 372
    return-void
.end method

.method public destroyProxies(Lorg/jbox2d/collision/broadphase/BroadPhase;)V
    .registers 6

    .prologue
    const/4 v1, 0x0

    .line 397
    move v0, v1

    :goto_2
    iget v2, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-ge v0, v2, :cond_15

    .line 398
    iget-object v2, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v2, v2, v0

    .line 399
    iget v3, v2, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    invoke-interface {p1, v3}, Lorg/jbox2d/collision/broadphase/BroadPhase;->destroyProxy(I)V

    .line 400
    const/4 v3, -0x1

    iput v3, v2, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    .line 397
    add-int/lit8 v0, v0, 0x1

    goto :goto_2

    .line 403
    :cond_15
    iput v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    .line 404
    return-void
.end method

.method public getAABB(I)Lorg/jbox2d/collision/AABB;
    .registers 3

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

    if-nez v0, :cond_10

    if-ltz p1, :cond_a

    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-lt p1, v0, :cond_10

    :cond_a
    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 301
    :cond_10
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v0, v0, p1

    iget-object v0, v0, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    return-object v0
.end method

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

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

    return-object v0
.end method

.method public getDensity()F
    .registers 2

    .prologue
    .line 202
    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_density:F

    return v0
.end method

.method public getFilterData()Lorg/jbox2d/dynamics/Filter;
    .registers 2

    .prologue
    .line 139
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_filter:Lorg/jbox2d/dynamics/Filter;

    return-object v0
.end method

.method public getFriction()F
    .registers 2

    .prologue
    .line 262
    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_friction:F

    return v0
.end method

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

    .prologue
    .line 253
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    iget v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_density:F

    invoke-virtual {v0, p1, v1}, Lorg/jbox2d/collision/shapes/Shape;->computeMass(Lorg/jbox2d/collision/shapes/MassData;F)V

    .line 254
    return-void
.end method

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

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

    return-object v0
.end method

.method public getRestitution()F
    .registers 2

    .prologue
    .line 280
    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_restitution:F

    return v0
.end method

.method public getShape()Lorg/jbox2d/collision/shapes/Shape;
    .registers 2

    .prologue
    .line 95
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    return-object v0
.end method

.method public getType()Lorg/jbox2d/collision/shapes/ShapeType;
    .registers 2

    .prologue
    .line 85
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    invoke-virtual {v0}, Lorg/jbox2d/collision/shapes/Shape;->getType()Lorg/jbox2d/collision/shapes/ShapeType;

    move-result-object v0

    return-object v0
.end method

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

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

    return-object v0
.end method

.method public isSensor()Z
    .registers 2

    .prologue
    .line 105
    iget-boolean v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z

    return v0
.end method

.method public raycast(Lorg/jbox2d/collision/RayCastOutput;Lorg/jbox2d/collision/RayCastInput;I)Z
    .registers 6

    .prologue
    .line 243
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

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

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

    invoke-virtual {v0, p1, p2, v1, p3}, Lorg/jbox2d/collision/shapes/Shape;->raycast(Lorg/jbox2d/collision/RayCastOutput;Lorg/jbox2d/collision/RayCastInput;Lorg/jbox2d/common/Transform;I)Z

    move-result v0

    return v0
.end method

.method public refilter()V
    .registers 5

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

    if-nez v0, :cond_5

    .line 174
    :cond_4
    return-void

    .line 152
    :cond_5
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_body:Lorg/jbox2d/dynamics/Body;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->getContactList()Lorg/jbox2d/dynamics/contacts/ContactEdge;

    move-result-object v0

    .line 153
    :goto_b
    if-eqz v0, :cond_21

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

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

    move-result-object v2

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

    move-result-object v3

    .line 157
    if-eq v2, p0, :cond_1b

    if-ne v3, p0, :cond_1e

    .line 158
    :cond_1b
    invoke-virtual {v1}, Lorg/jbox2d/dynamics/contacts/Contact;->flagForFiltering()V

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

    goto :goto_b

    .line 163
    :cond_21
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_body:Lorg/jbox2d/dynamics/Body;

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

    move-result-object v0

    .line 165
    if-eqz v0, :cond_4

    .line 170
    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 171
    const/4 v0, 0x0

    :goto_2e
    iget v2, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-ge v0, v2, :cond_4

    .line 172
    iget-object v2, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v2, v2, v0

    iget v2, v2, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    invoke-interface {v1, v2}, Lorg/jbox2d/collision/broadphase/BroadPhase;->touchProxy(I)V

    .line 171
    add-int/lit8 v0, v0, 0x1

    goto :goto_2e
.end method

.method public setDensity(F)V
    .registers 3

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

    if-nez v0, :cond_f

    const/4 v0, 0x0

    cmpl-float v0, p1, v0

    if-gez v0, :cond_f

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 198
    :cond_f
    iput p1, p0, Lorg/jbox2d/dynamics/Fixture;->m_density:F

    .line 199
    return-void
.end method

.method public setFilterData(Lorg/jbox2d/dynamics/Filter;)V
    .registers 3

    .prologue
    .line 128
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_filter:Lorg/jbox2d/dynamics/Filter;

    invoke-virtual {v0, p1}, Lorg/jbox2d/dynamics/Filter;->set(Lorg/jbox2d/dynamics/Filter;)V

    .line 130
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/Fixture;->refilter()V

    .line 131
    return-void
.end method

.method public setFriction(F)V
    .registers 2

    .prologue
    .line 271
    iput p1, p0, Lorg/jbox2d/dynamics/Fixture;->m_friction:F

    .line 272
    return-void
.end method

.method public setRestitution(F)V
    .registers 2

    .prologue
    .line 290
    iput p1, p0, Lorg/jbox2d/dynamics/Fixture;->m_restitution:F

    .line 291
    return-void
.end method

.method public setSensor(Z)V
    .registers 4

    .prologue
    .line 114
    iget-boolean v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z

    if-eq p1, v0, :cond_c

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

    const/4 v1, 0x1

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

    .line 116
    iput-boolean p1, p0, Lorg/jbox2d/dynamics/Fixture;->m_isSensor:Z

    .line 118
    :cond_c
    return-void
.end method

.method public setUserData(Ljava/lang/Object;)V
    .registers 2

    .prologue
    .line 221
    iput-object p1, p0, Lorg/jbox2d/dynamics/Fixture;->m_userData:Ljava/lang/Object;

    .line 222
    return-void
.end method

.method protected synchronize(Lorg/jbox2d/collision/broadphase/BroadPhase;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Transform;)V
    .registers 11

    .prologue
    .line 419
    iget v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-nez v0, :cond_5

    .line 445
    :cond_4
    return-void

    .line 423
    :cond_5
    const/4 v0, 0x0

    :goto_6
    iget v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxyCount:I

    if-ge v0, v1, :cond_4

    .line 424
    iget-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;

    aget-object v2, v1, v0

    .line 427
    iget-object v3, p0, Lorg/jbox2d/dynamics/Fixture;->pool1:Lorg/jbox2d/collision/AABB;

    .line 428
    iget-object v4, p0, Lorg/jbox2d/dynamics/Fixture;->pool2:Lorg/jbox2d/collision/AABB;

    .line 429
    iget-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    iget v5, v2, Lorg/jbox2d/dynamics/FixtureProxy;->childIndex:I

    invoke-virtual {v1, v3, p2, v5}, Lorg/jbox2d/collision/shapes/Shape;->computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V

    .line 430
    iget-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

    iget v5, v2, Lorg/jbox2d/dynamics/FixtureProxy;->childIndex:I

    invoke-virtual {v1, v4, p3, v5}, Lorg/jbox2d/collision/shapes/Shape;->computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V

    .line 432
    iget-object v1, v2, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    iget-object v5, v1, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

    iget-object v6, v4, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

    cmpg-float v1, v1, v6

    if-gez v1, :cond_9f

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

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

    .line 434
    iget-object v1, v2, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    iget-object v5, v1, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

    iget-object v6, v4, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

    cmpg-float v1, v1, v6

    if-gez v1, :cond_a4

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

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

    .line 436
    iget-object v1, v2, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    iget-object v5, v1, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

    iget-object v6, v4, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

    cmpl-float v1, v1, v6

    if-lez v1, :cond_a9

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

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

    .line 438
    iget-object v1, v2, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    iget-object v5, v1, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

    iget-object v6, v4, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

    cmpl-float v1, v1, v6

    if-lez v1, :cond_ae

    iget-object v1, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

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

    .line 440
    iget-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->displacement:Lorg/jbox2d/common/Vec2;

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

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

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

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

    sub-float/2addr v3, v4

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

    .line 441
    iget-object v1, p0, Lorg/jbox2d/dynamics/Fixture;->displacement:Lorg/jbox2d/common/Vec2;

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

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

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

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

    sub-float/2addr v3, v4

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

    .line 443
    iget v1, v2, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I

    iget-object v2, v2, Lorg/jbox2d/dynamics/FixtureProxy;->aabb:Lorg/jbox2d/collision/AABB;

    iget-object v3, p0, Lorg/jbox2d/dynamics/Fixture;->displacement:Lorg/jbox2d/common/Vec2;

    invoke-interface {p1, v1, v2, v3}, Lorg/jbox2d/collision/broadphase/BroadPhase;->moveProxy(ILorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Vec2;)V

    .line 423
    add-int/lit8 v0, v0, 0x1

    goto/16 :goto_6

    .line 432
    :cond_9f
    iget-object v1, v4, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

    goto :goto_34

    .line 434
    :cond_a4
    iget-object v1, v4, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

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

    goto :goto_4a

    .line 436
    :cond_a9
    iget-object v1, v4, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

    goto :goto_60

    .line 438
    :cond_ae
    iget-object v1, v4, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

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

    goto :goto_76
.end method

.method public testPoint(Lorg/jbox2d/common/Vec2;)Z
    .registers 4

    .prologue
    .line 231
    iget-object v0, p0, Lorg/jbox2d/dynamics/Fixture;->m_shape:Lorg/jbox2d/collision/shapes/Shape;

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

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

    invoke-virtual {v0, v1, p1}, Lorg/jbox2d/collision/shapes/Shape;->testPoint(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;)Z

    move-result v0

    return v0
.end method