PolygonShape.smali

.class public Lorg/jbox2d/collision/shapes/PolygonShape;
.super Lorg/jbox2d/collision/shapes/Shape;
.source "PolygonShape.java"


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

.field private static final m_debug:Z


# instance fields
.field public final m_centroid:Lorg/jbox2d/common/Vec2;

.field public m_count:I

.field public final m_normals:[Lorg/jbox2d/common/Vec2;

.field public final m_vertices:[Lorg/jbox2d/common/Vec2;

.field private final pool1:Lorg/jbox2d/common/Vec2;

.field private final pool2:Lorg/jbox2d/common/Vec2;

.field private final pool3:Lorg/jbox2d/common/Vec2;

.field private final pool4:Lorg/jbox2d/common/Vec2;

.field private poolt1:Lorg/jbox2d/common/Transform;


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

    .prologue
    .line 41
    const-class v0, Lorg/jbox2d/collision/shapes/PolygonShape;

    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/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    return-void

    :cond_c
    const/4 v0, 0x0

    goto :goto_9
.end method

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

    .prologue
    const/4 v1, 0x0

    .line 75
    sget-object v0, Lorg/jbox2d/collision/shapes/ShapeType;->POLYGON:Lorg/jbox2d/collision/shapes/ShapeType;

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

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool1:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool2:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool3:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool4:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->poolt1:Lorg/jbox2d/common/Transform;

    .line 77
    iput v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    .line 78
    sget v0, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    new-array v0, v0, [Lorg/jbox2d/common/Vec2;

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    move v0, v1

    .line 79
    :goto_39
    iget-object v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    array-length v2, v2

    if-ge v0, v2, :cond_4a

    .line 80
    iget-object v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    new-instance v3, Lorg/jbox2d/common/Vec2;

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

    aput-object v3, v2, v0

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

    goto :goto_39

    .line 82
    :cond_4a
    sget v0, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    new-array v0, v0, [Lorg/jbox2d/common/Vec2;

    iput-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    .line 83
    :goto_50
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    array-length v0, v0

    if-ge v1, v0, :cond_61

    .line 84
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    new-instance v2, Lorg/jbox2d/common/Vec2;

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

    aput-object v2, v0, v1

    .line 83
    add-int/lit8 v1, v1, 0x1

    goto :goto_50

    .line 86
    :cond_61
    sget v0, Lorg/jbox2d/common/Settings;->polygonRadius:F

    invoke-virtual {p0, v0}, Lorg/jbox2d/collision/shapes/PolygonShape;->setRadius(F)V

    .line 87
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

    .line 88
    return-void
.end method


# virtual methods
.method public centroid(Lorg/jbox2d/common/Transform;)Lorg/jbox2d/common/Vec2;
    .registers 3

    .prologue
    .line 674
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

    move-result-object v0

    return-object v0
.end method

.method public centroidToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
    .registers 4

    .prologue
    .line 679
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

    .line 680
    return-object p2
.end method

.method public bridge synthetic clone()Ljava/lang/Object;
    .registers 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/CloneNotSupportedException;
        }
    .end annotation

    .prologue
    .line 41
    invoke-virtual {p0}, Lorg/jbox2d/collision/shapes/PolygonShape;->clone()Lorg/jbox2d/collision/shapes/Shape;

    move-result-object v0

    return-object v0
.end method

.method public final clone()Lorg/jbox2d/collision/shapes/Shape;
    .registers 5

    .prologue
    .line 91
    new-instance v1, Lorg/jbox2d/collision/shapes/PolygonShape;

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

    .line 92
    iget-object v0, v1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

    .line 93
    const/4 v0, 0x0

    :goto_d
    iget-object v2, v1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    array-length v2, v2

    if-ge v0, v2, :cond_2b

    .line 94
    iget-object v2, v1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v2, v2, v0

    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

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

    .line 95
    iget-object v2, v1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v2, v2, v0

    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

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

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

    goto :goto_d

    .line 97
    :cond_2b
    invoke-virtual {p0}, Lorg/jbox2d/collision/shapes/PolygonShape;->getRadius()F

    move-result v0

    invoke-virtual {v1, v0}, Lorg/jbox2d/collision/shapes/PolygonShape;->setRadius(F)V

    .line 98
    iget v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    iput v0, v1, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    .line 99
    return-object v1
.end method

.method public final computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V
    .registers 14

    .prologue
    .line 327
    iget-object v4, p1, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;

    .line 328
    iget-object v5, p1, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;

    .line 329
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    const/4 v1, 0x0

    aget-object v0, v0, v1

    .line 330
    iget-object v1, p2, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v6, v1, Lorg/jbox2d/common/Rot;->c:F

    .line 331
    iget-object v1, p2, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v7, v1, Lorg/jbox2d/common/Rot;->s:F

    .line 332
    iget-object v1, p2, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

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

    .line 333
    iget-object v1, p2, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

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

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

    mul-float/2addr v1, v6

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

    mul-float/2addr v2, v7

    sub-float/2addr v1, v2

    add-float/2addr v1, v8

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

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

    mul-float/2addr v1, v7

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

    mul-float/2addr v0, v6

    add-float/2addr v0, v1

    add-float/2addr v0, v9

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

    .line 336
    iget v0, v4, Lorg/jbox2d/common/Vec2;->x:F

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

    .line 337
    iget v0, v4, Lorg/jbox2d/common/Vec2;->y:F

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

    .line 339
    const/4 v0, 0x1

    :goto_36
    iget v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v0, v1, :cond_7e

    .line 340
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v1, v1, v0

    .line 342
    iget v2, v1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v2, v6

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

    mul-float/2addr v3, v7

    sub-float/2addr v2, v3

    add-float/2addr v2, v8

    .line 343
    iget v3, v1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v3, v7

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

    mul-float/2addr v1, v6

    add-float/2addr v1, v3

    add-float v3, v1, v9

    .line 344
    iget v1, v4, Lorg/jbox2d/common/Vec2;->x:F

    cmpg-float v1, v1, v2

    if-gez v1, :cond_7a

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

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

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

    cmpg-float v1, v1, v3

    if-gez v1, :cond_7c

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

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

    .line 346
    iget v1, v5, Lorg/jbox2d/common/Vec2;->x:F

    cmpl-float v1, v1, v2

    if-lez v1, :cond_6b

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

    :cond_6b
    iput v2, v5, Lorg/jbox2d/common/Vec2;->x:F

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

    cmpl-float v1, v1, v3

    if-lez v1, :cond_75

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

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

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

    goto :goto_36

    :cond_7a
    move v1, v2

    .line 344
    goto :goto_57

    :cond_7c
    move v1, v3

    .line 345
    goto :goto_61

    .line 350
    :cond_7e
    iget v0, v4, Lorg/jbox2d/common/Vec2;->x:F

    iget v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_radius:F

    sub-float/2addr v0, v1

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

    .line 351
    iget v0, v4, Lorg/jbox2d/common/Vec2;->y:F

    iget v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_radius:F

    sub-float/2addr v0, v1

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

    .line 352
    iget v0, v5, Lorg/jbox2d/common/Vec2;->x:F

    iget v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_radius:F

    add-float/2addr v0, v1

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

    .line 353
    iget v0, v5, Lorg/jbox2d/common/Vec2;->y:F

    iget v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_radius:F

    add-float/2addr v0, v1

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

    .line 354
    return-void
.end method

.method public final computeCentroidToOut([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Vec2;)V
    .registers 14

    .prologue
    const/4 v2, 0x0

    const/4 v0, 0x0

    .line 510
    sget-boolean v1, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v1, :cond_f

    const/4 v1, 0x3

    if-ge p2, v1, :cond_f

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 512
    :cond_f
    invoke-virtual {p3, v0, v0}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;

    .line 517
    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool1:Lorg/jbox2d/common/Vec2;

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

    .line 520
    iget-object v5, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool2:Lorg/jbox2d/common/Vec2;

    .line 521
    iget-object v6, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool3:Lorg/jbox2d/common/Vec2;

    move v1, v2

    move v3, v0

    .line 525
    :goto_1d
    if-ge v1, p2, :cond_5c

    .line 528
    aget-object v7, p1, v1

    .line 529
    add-int/lit8 v0, v1, 0x1

    if-ge v0, p2, :cond_59

    add-int/lit8 v0, v1, 0x1

    aget-object v0, p1, v0

    .line 531
    :goto_29
    invoke-virtual {v5, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v8

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

    .line 532
    invoke-virtual {v6, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v8

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

    .line 534
    invoke-static {v5, v6}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v8

    .line 536
    const/high16 v9, 0x3f000000    # 0.5f

    mul-float/2addr v8, v9

    .line 537
    add-float/2addr v3, v8

    .line 540
    invoke-virtual {v5, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v9

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

    move-result-object v7

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

    move-result-object v0

    const v7, 0x3eaaaaab

    mul-float/2addr v7, v8

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

    .line 541
    invoke-virtual {p3, v5}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 525
    add-int/lit8 v0, v1, 0x1

    move v1, v0

    goto :goto_1d

    .line 529
    :cond_59
    aget-object v0, p1, v2

    goto :goto_29

    .line 545
    :cond_5c
    sget-boolean v0, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v0, :cond_6c

    const/high16 v0, 0x34000000

    cmpl-float v0, v3, v0

    if-gtz v0, :cond_6c

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 546
    :cond_6c
    const/high16 v0, 0x3f800000    # 1.0f

    div-float/2addr v0, v3

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

    .line 547
    return-void
.end method

.method public computeDistanceToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Vec2;)F
    .registers 19

    .prologue
    .line 378
    iget-object v1, p1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v10, v1, Lorg/jbox2d/common/Rot;->c:F

    .line 379
    iget-object v1, p1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget v11, v1, Lorg/jbox2d/common/Rot;->s:F

    .line 380
    move-object/from16 v0, p2

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

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

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

    sub-float/2addr v1, v2

    .line 381
    move-object/from16 v0, p2

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

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

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

    sub-float/2addr v2, v3

    .line 382
    mul-float v3, v10, v1

    mul-float v4, v11, v2

    add-float v5, v3, v4

    .line 383
    neg-float v3, v11

    mul-float/2addr v1, v3

    mul-float/2addr v2, v10

    add-float v3, v1, v2

    .line 385
    const v2, -0x800001

    .line 389
    const/4 v1, 0x0

    move v4, v5

    move v6, v2

    move v2, v3

    :goto_2c
    iget v7, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v1, v7, :cond_53

    .line 390
    iget-object v7, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v7, v7, v1

    .line 391
    iget-object v8, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v8, v8, v1

    .line 392
    iget v9, v7, Lorg/jbox2d/common/Vec2;->x:F

    sub-float v9, v5, v9

    .line 393
    iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F

    sub-float v7, v3, v7

    .line 394
    iget v12, v8, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v9, v12

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

    mul-float/2addr v7, v12

    add-float/2addr v7, v9

    .line 395
    cmpl-float v9, v7, v6

    if-lez v9, :cond_50

    .line 397
    iget v4, v8, Lorg/jbox2d/common/Vec2;->x:F

    .line 398
    iget v2, v8, Lorg/jbox2d/common/Vec2;->y:F

    move v6, v7

    .line 389
    :cond_50
    add-int/lit8 v1, v1, 0x1

    goto :goto_2c

    .line 403
    :cond_53
    const/4 v1, 0x0

    cmpl-float v1, v6, v1

    if-lez v1, :cond_98

    .line 406
    mul-float/2addr v6, v6

    .line 407
    const/4 v1, 0x0

    move v13, v6

    move v6, v4

    move v4, v2

    move v2, v13

    :goto_5e
    iget v7, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v1, v7, :cond_7d

    .line 408
    iget-object v7, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v7, v7, v1

    .line 409
    iget v8, v7, Lorg/jbox2d/common/Vec2;->x:F

    sub-float v9, v5, v8

    .line 410
    iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F

    sub-float v8, v3, v7

    .line 411
    mul-float v7, v9, v9

    mul-float v12, v8, v8

    add-float/2addr v7, v12

    .line 412
    cmpl-float v12, v2, v7

    if-lez v12, :cond_7a

    move v2, v7

    move v4, v8

    move v6, v9

    .line 407
    :cond_7a
    add-int/lit8 v1, v1, 0x1

    goto :goto_5e

    .line 418
    :cond_7d
    invoke-static {v2}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F

    move-result v1

    .line 419
    mul-float v2, v10, v6

    mul-float v3, v11, v4

    sub-float/2addr v2, v3

    move-object/from16 v0, p4

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

    .line 420
    mul-float v2, v11, v6

    mul-float v3, v10, v4

    add-float/2addr v2, v3

    move-object/from16 v0, p4

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

    .line 421
    invoke-virtual/range {p4 .. p4}, Lorg/jbox2d/common/Vec2;->normalize()F

    move v6, v1

    .line 428
    :goto_97
    return v6

    .line 424
    :cond_98
    mul-float v1, v10, v4

    mul-float v3, v11, v2

    sub-float/2addr v1, v3

    move-object/from16 v0, p4

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

    .line 425
    mul-float v1, v11, v4

    mul-float/2addr v2, v10

    add-float/2addr v1, v2

    move-object/from16 v0, p4

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

    goto :goto_97
.end method

.method public computeMass(Lorg/jbox2d/collision/shapes/MassData;F)V
    .registers 16

    .prologue
    .line 574
    sget-boolean v0, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v0, :cond_f

    iget v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    const/4 v1, 0x3

    if-ge v0, v1, :cond_f

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 576
    :cond_f
    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool1:Lorg/jbox2d/common/Vec2;

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

    .line 578
    const/4 v2, 0x0

    .line 579
    const/4 v1, 0x0

    .line 583
    iget-object v5, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool2:Lorg/jbox2d/common/Vec2;

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

    .line 586
    const/4 v0, 0x0

    :goto_1c
    iget v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v0, v3, :cond_2a

    .line 587
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

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

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

    goto :goto_1c

    .line 589
    :cond_2a
    const/high16 v0, 0x3f800000    # 1.0f

    iget v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    int-to-float v3, v3

    div-float/2addr v0, v3

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

    .line 593
    iget-object v6, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool3:Lorg/jbox2d/common/Vec2;

    .line 594
    iget-object v7, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool4:Lorg/jbox2d/common/Vec2;

    .line 596
    const/4 v0, 0x0

    :goto_38
    iget v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v0, v3, :cond_a9

    .line 598
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

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

    move-result-object v3

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

    .line 599
    invoke-virtual {v7, v5}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    move-result-object v3

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

    move-result-object v8

    add-int/lit8 v3, v0, 0x1

    iget v9, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v3, v9, :cond_a3

    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    add-int/lit8 v9, v0, 0x1

    aget-object v3, v3, v9

    :goto_5b
    invoke-virtual {v8, v3}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;

    .line 601
    invoke-static {v6, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v3

    .line 603
    const/high16 v8, 0x3f000000    # 0.5f

    mul-float/2addr v8, v3

    .line 604
    add-float/2addr v2, v8

    .line 607
    iget v9, v4, Lorg/jbox2d/common/Vec2;->x:F

    const v10, 0x3eaaaaab

    mul-float/2addr v10, v8

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

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

    add-float/2addr v11, v12

    mul-float/2addr v10, v11

    add-float/2addr v9, v10

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

    .line 608
    iget v9, v4, Lorg/jbox2d/common/Vec2;->y:F

    const v10, 0x3eaaaaab

    mul-float/2addr v8, v10

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

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

    add-float/2addr v10, v11

    mul-float/2addr v8, v10

    add-float/2addr v8, v9

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

    .line 610
    iget v8, v6, Lorg/jbox2d/common/Vec2;->x:F

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

    .line 611
    iget v10, v7, Lorg/jbox2d/common/Vec2;->x:F

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

    .line 613
    mul-float v12, v8, v8

    mul-float/2addr v8, v10

    add-float/2addr v8, v12

    mul-float/2addr v10, v10

    add-float/2addr v8, v10

    .line 614
    mul-float v10, v9, v9

    mul-float/2addr v9, v11

    add-float/2addr v9, v10

    mul-float v10, v11, v11

    add-float/2addr v9, v10

    .line 616
    const v10, 0x3daaaaab

    mul-float/2addr v3, v10

    add-float/2addr v8, v9

    mul-float/2addr v3, v8

    add-float/2addr v1, v3

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

    goto :goto_38

    .line 599
    :cond_a3
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    const/4 v9, 0x0

    aget-object v3, v3, v9

    goto :goto_5b

    .line 620
    :cond_a9
    mul-float v0, p2, v2

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

    .line 623
    sget-boolean v0, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v0, :cond_bd

    const/high16 v0, 0x34000000

    cmpl-float v0, v2, v0

    if-gtz v0, :cond_bd

    new-instance v0, Ljava/lang/AssertionError;

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

    throw v0

    .line 624
    :cond_bd
    const/high16 v0, 0x3f800000    # 1.0f

    div-float/2addr v0, v2

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

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

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

    move-result-object v0

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

    .line 628
    mul-float v0, v1, p2

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

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

    iget v1, p1, Lorg/jbox2d/collision/shapes/MassData;->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

    add-float/2addr v0, v1

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

    .line 632
    return-void
.end method

.method public getChildCount()I
    .registers 2

    .prologue
    .line 289
    const/4 v0, 0x1

    return v0
.end method

.method public getNormals()[Lorg/jbox2d/common/Vec2;
    .registers 2

    .prologue
    .line 669
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    return-object v0
.end method

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

    .prologue
    .line 372
    sget-boolean v0, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v0, :cond_10

    if-ltz p1, :cond_a

    iget v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count: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 373
    :cond_10
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v0, v0, p1

    return-object v0
.end method

.method public final getVertexCount()I
    .registers 2

    .prologue
    .line 362
    iget v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    return v0
.end method

.method public getVertices()[Lorg/jbox2d/common/Vec2;
    .registers 2

    .prologue
    .line 664
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    return-object v0
.end method

.method public final raycast(Lorg/jbox2d/collision/RayCastOutput;Lorg/jbox2d/collision/RayCastInput;Lorg/jbox2d/common/Transform;I)Z
    .registers 20

    .prologue
    .line 434
    move-object/from16 v0, p3

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

    iget v5, v1, Lorg/jbox2d/common/Rot;->c:F

    .line 435
    move-object/from16 v0, p3

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

    iget v6, v1, Lorg/jbox2d/common/Rot;->s:F

    .line 436
    move-object/from16 v0, p3

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

    .line 440
    move-object/from16 v0, p2

    iget-object v2, v0, Lorg/jbox2d/collision/RayCastInput;->p1:Lorg/jbox2d/common/Vec2;

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

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

    sub-float/2addr v2, v3

    .line 441
    move-object/from16 v0, p2

    iget-object v3, v0, Lorg/jbox2d/collision/RayCastInput;->p1:Lorg/jbox2d/common/Vec2;

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

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

    sub-float/2addr v3, v4

    .line 442
    mul-float v4, v5, v2

    mul-float v7, v6, v3

    add-float/2addr v7, v4

    .line 443
    neg-float v4, v6

    mul-float/2addr v2, v4

    mul-float/2addr v3, v5

    add-float v8, v2, v3

    .line 445
    move-object/from16 v0, p2

    iget-object v2, v0, Lorg/jbox2d/collision/RayCastInput;->p2:Lorg/jbox2d/common/Vec2;

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

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

    sub-float/2addr v2, v3

    .line 446
    move-object/from16 v0, p2

    iget-object v3, v0, Lorg/jbox2d/collision/RayCastInput;->p2:Lorg/jbox2d/common/Vec2;

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

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

    sub-float v1, v3, v1

    .line 447
    mul-float v3, v5, v2

    mul-float v4, v6, v1

    add-float/2addr v3, v4

    .line 448
    neg-float v4, v6

    mul-float/2addr v2, v4

    mul-float/2addr v1, v5

    add-float/2addr v1, v2

    .line 450
    sub-float v9, v3, v7

    .line 451
    sub-float v10, v1, v8

    .line 453
    const/4 v4, 0x0

    move-object/from16 v0, p2

    iget v3, v0, Lorg/jbox2d/collision/RayCastInput;->maxFraction:F

    .line 455
    const/4 v2, -0x1

    .line 457
    const/4 v1, 0x0

    :goto_53
    iget v11, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v1, v11, :cond_a4

    .line 458
    iget-object v11, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v11, v11, v1

    .line 459
    iget-object v12, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v12, v12, v1

    .line 463
    iget v13, v12, Lorg/jbox2d/common/Vec2;->x:F

    sub-float/2addr v13, v7

    .line 464
    iget v12, v12, Lorg/jbox2d/common/Vec2;->y:F

    sub-float/2addr v12, v8

    .line 465
    iget v14, v11, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v13, v14

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

    mul-float/2addr v12, v14

    add-float/2addr v12, v13

    .line 466
    iget v13, v11, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v13, v9

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

    mul-float/2addr v11, v10

    add-float/2addr v11, v13

    .line 468
    const/4 v13, 0x0

    cmpl-float v13, v11, v13

    if-nez v13, :cond_7f

    .line 469
    const/4 v11, 0x0

    cmpg-float v11, v12, v11

    if-gez v11, :cond_8d

    .line 470
    const/4 v1, 0x0

    .line 506
    :goto_7e
    return v1

    .line 478
    :cond_7f
    const/4 v13, 0x0

    cmpg-float v13, v11, v13

    if-gez v13, :cond_93

    mul-float v13, v4, v11

    cmpg-float v13, v12, v13

    if-gez v13, :cond_93

    .line 481
    div-float v4, v12, v11

    move v2, v1

    .line 490
    :cond_8d
    :goto_8d
    cmpg-float v11, v3, v4

    if-gez v11, :cond_a1

    .line 491
    const/4 v1, 0x0

    goto :goto_7e

    .line 483
    :cond_93
    const/4 v13, 0x0

    cmpl-float v13, v11, v13

    if-lez v13, :cond_8d

    mul-float v13, v3, v11

    cmpg-float v13, v12, v13

    if-gez v13, :cond_8d

    .line 486
    div-float v3, v12, v11

    goto :goto_8d

    .line 457
    :cond_a1
    add-int/lit8 v1, v1, 0x1

    goto :goto_53

    .line 495
    :cond_a4
    sget-boolean v1, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v1, :cond_bb

    const/4 v1, 0x0

    cmpg-float v1, v1, v4

    if-gtz v1, :cond_b5

    move-object/from16 v0, p2

    iget v1, v0, Lorg/jbox2d/collision/RayCastInput;->maxFraction:F

    cmpg-float v1, v4, v1

    if-lez v1, :cond_bb

    :cond_b5
    new-instance v1, Ljava/lang/AssertionError;

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

    throw v1

    .line 497
    :cond_bb
    if-ltz v2, :cond_dd

    .line 498
    move-object/from16 v0, p1

    iput v4, v0, Lorg/jbox2d/collision/RayCastOutput;->fraction:F

    .line 500
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v1, v1, v2

    .line 501
    move-object/from16 v0, p1

    iget-object v2, v0, Lorg/jbox2d/collision/RayCastOutput;->normal:Lorg/jbox2d/common/Vec2;

    .line 502
    iget v3, v1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v3, v5

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

    mul-float/2addr v4, v6

    sub-float/2addr v3, v4

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

    .line 503
    iget v3, v1, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v3, v6

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

    mul-float/2addr v1, v5

    add-float/2addr v1, v3

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

    .line 504
    const/4 v1, 0x1

    goto :goto_7e

    .line 506
    :cond_dd
    const/4 v1, 0x0

    goto :goto_7e
.end method

.method public final set([Lorg/jbox2d/common/Vec2;I)V
    .registers 4

    .prologue
    const/4 v0, 0x0

    .line 110
    invoke-virtual {p0, p1, p2, v0, v0}, Lorg/jbox2d/collision/shapes/PolygonShape;->set([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/pooling/arrays/Vec2Array;Lorg/jbox2d/pooling/arrays/IntArray;)V

    .line 111
    return-void
.end method

.method public final set([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/pooling/arrays/Vec2Array;Lorg/jbox2d/pooling/arrays/IntArray;)V
    .registers 18

    .prologue
    .line 122
    sget-boolean v1, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v1, :cond_11

    const/4 v1, 0x3

    if-gt v1, p2, :cond_b

    sget v1, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    if-le p2, v1, :cond_11

    :cond_b
    new-instance v1, Ljava/lang/AssertionError;

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

    throw v1

    .line 123
    :cond_11
    const/4 v1, 0x3

    if-ge p2, v1, :cond_1c

    .line 124
    const/high16 v1, 0x3f800000    # 1.0f

    const/high16 v2, 0x3f800000    # 1.0f

    invoke-virtual {p0, v1, v2}, Lorg/jbox2d/collision/shapes/PolygonShape;->setAsBox(FF)V

    .line 236
    :goto_1b
    return-void

    .line 128
    :cond_1c
    sget v1, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    invoke-static {p2, v1}, Lorg/jbox2d/common/MathUtils;->min(II)I

    move-result v6

    .line 131
    if-eqz p3, :cond_52

    sget v1, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    move-object/from16 v0, p3

    invoke-virtual {v0, v1}, Lorg/jbox2d/pooling/arrays/Vec2Array;->get(I)[Lorg/jbox2d/common/Vec2;

    move-result-object v1

    .line 135
    :goto_2c
    const/4 v3, 0x0

    .line 136
    const/4 v2, 0x0

    move v5, v2

    :goto_2f
    if-ge v5, v6, :cond_5a

    .line 137
    aget-object v7, p1, v5

    .line 138
    const/4 v2, 0x1

    .line 139
    const/4 v4, 0x0

    :goto_35
    if-ge v4, v3, :cond_47

    .line 140
    aget-object v8, v1, v4

    invoke-static {v7, v8}, Lorg/jbox2d/common/MathUtils;->distanceSquared(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v8

    const/high16 v9, 0x3f000000    # 0.5f

    sget v10, Lorg/jbox2d/common/Settings;->linearSlop:F

    mul-float/2addr v9, v10

    cmpg-float v8, v8, v9

    if-gez v8, :cond_57

    .line 141
    const/4 v2, 0x0

    .line 146
    :cond_47
    if-eqz v2, :cond_171

    .line 147
    add-int/lit8 v2, v3, 0x1

    aput-object v7, v1, v3

    .line 136
    :goto_4d
    add-int/lit8 v3, v5, 0x1

    move v5, v3

    move v3, v2

    goto :goto_2f

    .line 131
    :cond_52
    sget v1, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    new-array v1, v1, [Lorg/jbox2d/common/Vec2;

    goto :goto_2c

    .line 139
    :cond_57
    add-int/lit8 v4, v4, 0x1

    goto :goto_35

    .line 152
    :cond_5a
    const/4 v2, 0x3

    if-ge v3, v2, :cond_6f

    .line 154
    sget-boolean v1, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v1, :cond_67

    new-instance v1, Ljava/lang/AssertionError;

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

    throw v1

    .line 155
    :cond_67
    const/high16 v1, 0x3f800000    # 1.0f

    const/high16 v2, 0x3f800000    # 1.0f

    invoke-virtual {p0, v1, v2}, Lorg/jbox2d/collision/shapes/PolygonShape;->setAsBox(FF)V

    goto :goto_1b

    .line 163
    :cond_6f
    const/4 v5, 0x0

    .line 164
    const/4 v2, 0x0

    aget-object v2, v1, v2

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

    .line 165
    const/4 v6, 0x1

    :goto_76
    if-ge v6, v3, :cond_96

    .line 166
    aget-object v4, v1, v6

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

    .line 167
    cmpl-float v7, v4, v2

    if-gtz v7, :cond_90

    cmpl-float v7, v4, v2

    if-nez v7, :cond_16e

    aget-object v7, v1, v6

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

    aget-object v8, v1, v5

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

    cmpg-float v7, v7, v8

    if-gez v7, :cond_16e

    :cond_90
    move v2, v4

    move v4, v6

    .line 165
    :goto_92
    add-int/lit8 v6, v6, 0x1

    move v5, v4

    goto :goto_76

    .line 173
    :cond_96
    if-eqz p4, :cond_af

    sget v2, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    move-object/from16 v0, p4

    invoke-virtual {v0, v2}, Lorg/jbox2d/pooling/arrays/IntArray;->get(I)[I

    move-result-object v2

    .line 177
    :goto_a0
    const/4 v4, 0x0

    move v7, v4

    move v4, v5

    .line 181
    :goto_a3
    aput v4, v2, v7

    .line 183
    const/4 v6, 0x0

    .line 184
    const/4 v8, 0x1

    :goto_a7
    if-ge v8, v3, :cond_f1

    .line 185
    if-ne v6, v4, :cond_b4

    move v6, v8

    .line 184
    :cond_ac
    :goto_ac
    add-int/lit8 v8, v8, 0x1

    goto :goto_a7

    .line 173
    :cond_af
    sget v2, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I

    new-array v2, v2, [I

    goto :goto_a0

    .line 190
    :cond_b4
    iget-object v9, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool1:Lorg/jbox2d/common/Vec2;

    aget-object v10, v1, v6

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

    move-result-object v9

    aget v10, v2, v7

    aget-object v10, v1, v10

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

    move-result-object v9

    .line 191
    iget-object v10, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool2:Lorg/jbox2d/common/Vec2;

    aget-object v11, v1, v8

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

    move-result-object v10

    aget v11, v2, v7

    aget-object v11, v1, v11

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

    move-result-object v10

    .line 192
    invoke-static {v9, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v11

    .line 193
    const/4 v12, 0x0

    cmpg-float v12, v11, v12

    if-gez v12, :cond_de

    move v6, v8

    .line 198
    :cond_de
    const/4 v12, 0x0

    cmpl-float v11, v11, v12

    if-nez v11, :cond_ac

    invoke-virtual {v10}, Lorg/jbox2d/common/Vec2;->lengthSquared()F

    move-result v10

    invoke-virtual {v9}, Lorg/jbox2d/common/Vec2;->lengthSquared()F

    move-result v9

    cmpl-float v9, v10, v9

    if-lez v9, :cond_ac

    move v6, v8

    .line 199
    goto :goto_ac

    .line 203
    :cond_f1
    add-int/lit8 v4, v7, 0x1

    .line 206
    if-ne v6, v5, :cond_119

    .line 211
    iput v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    .line 214
    const/4 v3, 0x0

    :goto_f8
    iget v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v3, v4, :cond_11c

    .line 215
    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v4, v4, v3

    if-nez v4, :cond_10b

    .line 216
    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    new-instance v5, Lorg/jbox2d/common/Vec2;

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

    aput-object v5, v4, v3

    .line 218
    :cond_10b
    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v4, v4, v3

    aget v5, v2, v3

    aget-object v5, v1, v5

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

    .line 214
    add-int/lit8 v3, v3, 0x1

    goto :goto_f8

    :cond_119
    move v7, v4

    move v4, v6

    .line 209
    goto :goto_a3

    .line 221
    :cond_11c
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool1:Lorg/jbox2d/common/Vec2;

    .line 224
    const/4 v1, 0x0

    :goto_11f
    iget v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v1, v2, :cond_163

    .line 226
    add-int/lit8 v2, v1, 0x1

    iget v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v2, v4, :cond_14e

    add-int/lit8 v2, v1, 0x1

    .line 227
    :goto_12b
    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v2, v4, v2

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

    move-result-object v2

    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v4, v4, v1

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

    .line 229
    sget-boolean v2, Lorg/jbox2d/collision/shapes/PolygonShape;->$assertionsDisabled:Z

    if-nez v2, :cond_150

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

    move-result v2

    const/high16 v4, 0x28800000

    cmpl-float v2, v2, v4

    if-gtz v2, :cond_150

    new-instance v1, Ljava/lang/AssertionError;

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

    throw v1

    .line 226
    :cond_14e
    const/4 v2, 0x0

    goto :goto_12b

    .line 230
    :cond_150
    const/high16 v2, 0x3f800000    # 1.0f

    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v4, v4, v1

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

    .line 231
    iget-object v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v2, v2, v1

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

    .line 224
    add-int/lit8 v1, v1, 0x1

    goto :goto_11f

    .line 235
    :cond_163
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    iget v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

    invoke-virtual {p0, v1, v2, v3}, Lorg/jbox2d/collision/shapes/PolygonShape;->computeCentroidToOut([Lorg/jbox2d/common/Vec2;ILorg/jbox2d/common/Vec2;)V

    goto/16 :goto_1b

    :cond_16e
    move v4, v5

    goto/16 :goto_92

    :cond_171
    move v2, v3

    goto/16 :goto_4d
.end method

.method public final setAsBox(FF)V
    .registers 11

    .prologue
    const/4 v7, 0x1

    const/4 v6, 0x0

    const/high16 v5, 0x3f800000    # 1.0f

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

    const/4 v3, 0x0

    .line 245
    const/4 v0, 0x4

    iput v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    .line 246
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v0, v0, v6

    neg-float v1, p1

    neg-float v2, p2

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

    .line 247
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v0, v0, v7

    neg-float v1, p2

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

    .line 248
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    const/4 v1, 0x2

    aget-object v0, v0, v1

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

    .line 249
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    const/4 v1, 0x3

    aget-object v0, v0, v1

    neg-float v1, p1

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

    .line 250
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v0, v0, v6

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

    .line 251
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v0, v0, v7

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

    .line 252
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    const/4 v1, 0x2

    aget-object v0, v0, v1

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

    .line 253
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    const/4 v1, 0x3

    aget-object v0, v0, v1

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

    .line 254
    iget-object v0, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

    .line 255
    return-void
.end method

.method public final setAsBox(FFLorg/jbox2d/common/Vec2;F)V
    .registers 13

    .prologue
    const/4 v7, 0x1

    const/high16 v6, 0x3f800000    # 1.0f

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

    const/4 v0, 0x0

    const/4 v4, 0x0

    .line 266
    const/4 v1, 0x4

    iput v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    .line 267
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v1, v1, v0

    neg-float v2, p1

    neg-float v3, p2

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

    .line 268
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v1, v1, v7

    neg-float v2, p2

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

    .line 269
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    const/4 v2, 0x2

    aget-object v1, v1, v2

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

    .line 270
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    const/4 v2, 0x3

    aget-object v1, v1, v2

    neg-float v2, p1

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

    .line 271
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v1, v1, v0

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

    .line 272
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v1, v1, v7

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

    .line 273
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    const/4 v2, 0x2

    aget-object v1, v1, v2

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

    .line 274
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    const/4 v2, 0x3

    aget-object v1, v1, v2

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

    .line 275
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_centroid:Lorg/jbox2d/common/Vec2;

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

    .line 277
    iget-object v1, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->poolt1:Lorg/jbox2d/common/Transform;

    .line 278
    iget-object v2, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;

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

    .line 279
    iget-object v2, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

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

    .line 282
    :goto_5b
    iget v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v0, v2, :cond_7a

    .line 283
    iget-object v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v2, v2, v0

    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

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

    .line 284
    iget-object v2, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

    iget-object v4, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v4, v4, v0

    invoke-static {v2, v3, v4}, Lorg/jbox2d/common/Rot;->mulToOut(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

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

    goto :goto_5b

    .line 286
    :cond_7a
    return-void
.end method

.method public final testPoint(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;)Z
    .registers 11

    .prologue
    const/4 v1, 0x0

    .line 295
    iget-object v0, p1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;

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

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

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

    sub-float/2addr v2, v3

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

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

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

    sub-float/2addr v3, v4

    .line 299
    iget v4, v0, Lorg/jbox2d/common/Rot;->c:F

    mul-float/2addr v4, v2

    iget v5, v0, Lorg/jbox2d/common/Rot;->s:F

    mul-float/2addr v5, v3

    add-float/2addr v4, v5

    .line 300
    iget v5, v0, Lorg/jbox2d/common/Rot;->s:F

    neg-float v5, v5

    mul-float/2addr v2, v5

    iget v0, v0, Lorg/jbox2d/common/Rot;->c:F

    mul-float/2addr v0, v3

    add-float/2addr v2, v0

    move v0, v1

    .line 311
    :goto_21
    iget v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v0, v3, :cond_45

    .line 312
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v3, v3, v0

    .line 313
    iget-object v5, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_normals:[Lorg/jbox2d/common/Vec2;

    aget-object v5, v5, v0

    .line 314
    iget v6, v3, Lorg/jbox2d/common/Vec2;->x:F

    sub-float v6, v4, v6

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

    sub-float v3, v2, v3

    .line 316
    iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F

    mul-float/2addr v6, v7

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

    mul-float/2addr v3, v5

    add-float/2addr v3, v6

    .line 317
    const/4 v5, 0x0

    cmpl-float v3, v3, v5

    if-lez v3, :cond_42

    .line 322
    :goto_41
    return v1

    .line 311
    :cond_42
    add-int/lit8 v0, v0, 0x1

    goto :goto_21

    .line 322
    :cond_45
    const/4 v1, 0x1

    goto :goto_41
.end method

.method public validate()Z
    .registers 9

    .prologue
    const/4 v1, 0x0

    .line 640
    move v0, v1

    :goto_2
    iget v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v0, v2, :cond_49

    .line 642
    iget v2, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

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

    if-ge v0, v2, :cond_2c

    add-int/lit8 v2, v0, 0x1

    .line 643
    :goto_e
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v4, v3, v0

    .line 644
    iget-object v3, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool1:Lorg/jbox2d/common/Vec2;

    iget-object v5, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v5, v5, v2

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

    move-result-object v3

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

    move-result-object v5

    move v3, v1

    .line 646
    :goto_21
    iget v6, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_count:I

    if-ge v3, v6, :cond_46

    .line 647
    if-eq v3, v0, :cond_29

    if-ne v3, v2, :cond_2e

    .line 646
    :cond_29
    add-int/lit8 v3, v3, 0x1

    goto :goto_21

    :cond_2c
    move v2, v1

    .line 642
    goto :goto_e

    .line 651
    :cond_2e
    iget-object v6, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->pool2:Lorg/jbox2d/common/Vec2;

    iget-object v7, p0, Lorg/jbox2d/collision/shapes/PolygonShape;->m_vertices:[Lorg/jbox2d/common/Vec2;

    aget-object v7, v7, v3

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

    move-result-object v6

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

    move-result-object v6

    .line 652
    invoke-static {v5, v6}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v6

    .line 653
    const/4 v7, 0x0

    cmpg-float v6, v6, v7

    if-gez v6, :cond_29

    .line 659
    :goto_45
    return v1

    .line 640
    :cond_46
    add-int/lit8 v0, v0, 0x1

    goto :goto_2

    .line 659
    :cond_49
    const/4 v1, 0x1

    goto :goto_45
.end method