Distance.smali

.class public Lorg/jbox2d/collision/Distance;
.super Ljava/lang/Object;
.source "Distance.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/jbox2d/collision/Distance$1;,
        Lorg/jbox2d/collision/Distance$DistanceProxy;,
        Lorg/jbox2d/collision/Distance$Simplex;,
        Lorg/jbox2d/collision/Distance$SimplexCache;,
        Lorg/jbox2d/collision/Distance$SimplexVertex;
    }
.end annotation


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

.field public static GJK_CALLS:I = 0x0

.field public static GJK_ITERS:I = 0x0

.field public static GJK_MAX_ITERS:I = 0x0

.field public static final MAX_ITERS:I = 0x14


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

.field private d:Lorg/jbox2d/common/Vec2;

.field private normal:Lorg/jbox2d/common/Vec2;

.field private saveA:[I

.field private saveB:[I

.field private simplex:Lorg/jbox2d/collision/Distance$Simplex;

.field private temp:Lorg/jbox2d/common/Vec2;


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

    .prologue
    const/4 v1, 0x0

    .line 44
    const-class v0, Lorg/jbox2d/collision/Distance;

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

    move-result v0

    if-nez v0, :cond_15

    const/4 v0, 0x1

    :goto_a
    sput-boolean v0, Lorg/jbox2d/collision/Distance;->$assertionsDisabled:Z

    .line 47
    sput v1, Lorg/jbox2d/collision/Distance;->GJK_CALLS:I

    .line 48
    sput v1, Lorg/jbox2d/collision/Distance;->GJK_ITERS:I

    .line 49
    const/16 v0, 0x14

    sput v0, Lorg/jbox2d/collision/Distance;->GJK_MAX_ITERS:I

    return-void

    :cond_15
    move v0, v1

    .line 44
    goto :goto_a
.end method

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

    .prologue
    const/4 v2, 0x3

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

    .line 602
    new-instance v0, Lorg/jbox2d/collision/Distance$Simplex;

    const/4 v1, 0x0

    invoke-direct {v0, p0, v1}, Lorg/jbox2d/collision/Distance$Simplex;-><init>(Lorg/jbox2d/collision/Distance;Lorg/jbox2d/collision/Distance$1;)V

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    .line 603
    new-array v0, v2, [I

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->saveA:[I

    .line 604
    new-array v0, v2, [I

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->saveB:[I

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->closestPoint:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->d:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

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

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

    iput-object v0, p0, Lorg/jbox2d/collision/Distance;->normal:Lorg/jbox2d/common/Vec2;

    return-void
.end method


# virtual methods
.method public final distance(Lorg/jbox2d/collision/DistanceOutput;Lorg/jbox2d/collision/Distance$SimplexCache;Lorg/jbox2d/collision/DistanceInput;)V
    .registers 18

    .prologue
    .line 621
    sget v1, Lorg/jbox2d/collision/Distance;->GJK_CALLS:I

    add-int/lit8 v1, v1, 0x1

    sput v1, Lorg/jbox2d/collision/Distance;->GJK_CALLS:I

    .line 623
    move-object/from16 v0, p3

    iget-object v3, v0, Lorg/jbox2d/collision/DistanceInput;->proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;

    .line 624
    move-object/from16 v0, p3

    iget-object v5, v0, Lorg/jbox2d/collision/DistanceInput;->proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;

    .line 626
    move-object/from16 v0, p3

    iget-object v4, v0, Lorg/jbox2d/collision/DistanceInput;->transformA:Lorg/jbox2d/common/Transform;

    .line 627
    move-object/from16 v0, p3

    iget-object v6, v0, Lorg/jbox2d/collision/DistanceInput;->transformB:Lorg/jbox2d/common/Transform;

    .line 630
    iget-object v1, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    move-object/from16 v2, p2

    invoke-virtual/range {v1 .. v6}, Lorg/jbox2d/collision/Distance$Simplex;->readCache(Lorg/jbox2d/collision/Distance$SimplexCache;Lorg/jbox2d/collision/Distance$DistanceProxy;Lorg/jbox2d/common/Transform;Lorg/jbox2d/collision/Distance$DistanceProxy;Lorg/jbox2d/common/Transform;)V

    .line 633
    iget-object v1, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget-object v9, v1, Lorg/jbox2d/collision/Distance$Simplex;->vertices:[Lorg/jbox2d/collision/Distance$SimplexVertex;

    .line 640
    iget-object v1, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->closestPoint:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v1, v2}, Lorg/jbox2d/collision/Distance$Simplex;->getClosestPoint(Lorg/jbox2d/common/Vec2;)V

    .line 641
    iget-object v1, p0, Lorg/jbox2d/collision/Distance;->closestPoint:Lorg/jbox2d/common/Vec2;

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

    move-result v2

    .line 645
    const/4 v1, 0x0

    move v7, v2

    .line 646
    :goto_30
    const/16 v2, 0x14

    if-ge v1, v2, :cond_6b

    .line 649
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget v10, v2, Lorg/jbox2d/collision/Distance$Simplex;->m_count:I

    .line 650
    const/4 v2, 0x0

    :goto_39
    if-ge v2, v10, :cond_4e

    .line 651
    iget-object v8, p0, Lorg/jbox2d/collision/Distance;->saveA:[I

    aget-object v11, v9, v2

    iget v11, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexA:I

    aput v11, v8, v2

    .line 652
    iget-object v8, p0, Lorg/jbox2d/collision/Distance;->saveB:[I

    aget-object v11, v9, v2

    iget v11, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexB:I

    aput v11, v8, v2

    .line 650
    add-int/lit8 v2, v2, 0x1

    goto :goto_39

    .line 655
    :cond_4e
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget v2, v2, Lorg/jbox2d/collision/Distance$Simplex;->m_count:I

    packed-switch v2, :pswitch_data_1ac

    .line 665
    sget-boolean v2, Lorg/jbox2d/collision/Distance;->$assertionsDisabled:Z

    if-nez v2, :cond_64

    new-instance v1, Ljava/lang/AssertionError;

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

    throw v1

    .line 659
    :pswitch_5f
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    invoke-virtual {v2}, Lorg/jbox2d/collision/Distance$Simplex;->solve2()V

    .line 669
    :cond_64
    :goto_64
    :pswitch_64
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget v2, v2, Lorg/jbox2d/collision/Distance$Simplex;->m_count:I

    const/4 v8, 0x3

    if-ne v2, v8, :cond_ee

    .line 738
    :cond_6b
    sget v2, Lorg/jbox2d/collision/Distance;->GJK_MAX_ITERS:I

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

    move-result v2

    sput v2, Lorg/jbox2d/collision/Distance;->GJK_MAX_ITERS:I

    .line 741
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget-object v4, p1, Lorg/jbox2d/collision/DistanceOutput;->pointA:Lorg/jbox2d/common/Vec2;

    iget-object v6, p1, Lorg/jbox2d/collision/DistanceOutput;->pointB:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v2, v4, v6}, Lorg/jbox2d/collision/Distance$Simplex;->getWitnessPoints(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 742
    iget-object v2, p1, Lorg/jbox2d/collision/DistanceOutput;->pointA:Lorg/jbox2d/common/Vec2;

    iget-object v4, p1, Lorg/jbox2d/collision/DistanceOutput;->pointB:Lorg/jbox2d/common/Vec2;

    invoke-static {v2, v4}, Lorg/jbox2d/common/MathUtils;->distance(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v2

    iput v2, p1, Lorg/jbox2d/collision/DistanceOutput;->distance:F

    .line 743
    iput v1, p1, Lorg/jbox2d/collision/DistanceOutput;->iterations:I

    .line 746
    iget-object v1, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    move-object/from16 v0, p2

    invoke-virtual {v1, v0}, Lorg/jbox2d/collision/Distance$Simplex;->writeCache(Lorg/jbox2d/collision/Distance$SimplexCache;)V

    .line 749
    move-object/from16 v0, p3

    iget-boolean v1, v0, Lorg/jbox2d/collision/DistanceInput;->useRadii:Z

    if-eqz v1, :cond_e6

    .line 750
    iget v1, v3, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F

    .line 751
    iget v2, v5, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F

    .line 753
    iget v3, p1, Lorg/jbox2d/collision/DistanceOutput;->distance:F

    add-float v4, v1, v2

    cmpl-float v3, v3, v4

    if-lez v3, :cond_192

    iget v3, p1, Lorg/jbox2d/collision/DistanceOutput;->distance:F

    const/high16 v4, 0x34000000

    cmpl-float v3, v3, v4

    if-lez v3, :cond_192

    .line 756
    iget v3, p1, Lorg/jbox2d/collision/DistanceOutput;->distance:F

    add-float v4, v1, v2

    sub-float/2addr v3, v4

    iput v3, p1, Lorg/jbox2d/collision/DistanceOutput;->distance:F

    .line 757
    iget-object v3, p0, Lorg/jbox2d/collision/Distance;->normal:Lorg/jbox2d/common/Vec2;

    iget-object v4, p1, Lorg/jbox2d/collision/DistanceOutput;->pointB:Lorg/jbox2d/common/Vec2;

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

    move-result-object v3

    iget-object v4, p1, Lorg/jbox2d/collision/DistanceOutput;->pointA:Lorg/jbox2d/common/Vec2;

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

    .line 758
    iget-object v3, p0, Lorg/jbox2d/collision/Distance;->normal:Lorg/jbox2d/common/Vec2;

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

    .line 759
    iget-object v3, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

    iget-object v4, p0, Lorg/jbox2d/collision/Distance;->normal:Lorg/jbox2d/common/Vec2;

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

    move-result-object v3

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

    .line 760
    iget-object v1, p1, Lorg/jbox2d/collision/DistanceOutput;->pointA:Lorg/jbox2d/common/Vec2;

    iget-object v3, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

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

    .line 761
    iget-object v1, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

    iget-object v3, p0, Lorg/jbox2d/collision/Distance;->normal:Lorg/jbox2d/common/Vec2;

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

    move-result-object v1

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

    .line 762
    iget-object v1, p1, Lorg/jbox2d/collision/DistanceOutput;->pointB:Lorg/jbox2d/common/Vec2;

    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

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

    .line 772
    :cond_e6
    :goto_e6
    return-void

    .line 662
    :pswitch_e7
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    invoke-virtual {v2}, Lorg/jbox2d/collision/Distance$Simplex;->solve3()V

    goto/16 :goto_64

    .line 674
    :cond_ee
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget-object v8, p0, Lorg/jbox2d/collision/Distance;->closestPoint:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v2, v8}, Lorg/jbox2d/collision/Distance$Simplex;->getClosestPoint(Lorg/jbox2d/common/Vec2;)V

    .line 675
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->closestPoint:Lorg/jbox2d/common/Vec2;

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

    move-result v8

    .line 678
    cmpl-float v2, v8, v7

    if-ltz v2, :cond_ff

    .line 684
    :cond_ff
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget-object v7, p0, Lorg/jbox2d/collision/Distance;->d:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v2, v7}, Lorg/jbox2d/collision/Distance$Simplex;->getSearchDirection(Lorg/jbox2d/common/Vec2;)V

    .line 687
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->d:Lorg/jbox2d/common/Vec2;

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

    move-result v2

    const/high16 v7, 0x28800000

    cmpg-float v2, v2, v7

    if-ltz v2, :cond_6b

    .line 705
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget v2, v2, Lorg/jbox2d/collision/Distance$Simplex;->m_count:I

    aget-object v11, v9, v2

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

    iget-object v7, p0, Lorg/jbox2d/collision/Distance;->d:Lorg/jbox2d/common/Vec2;

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

    move-result-object v7

    iget-object v12, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

    invoke-static {v2, v7, v12}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 708
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v3, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getSupport(Lorg/jbox2d/common/Vec2;)I

    move-result v2

    iput v2, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexA:I

    .line 709
    iget v2, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexA:I

    invoke-virtual {v3, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;

    move-result-object v2

    iget-object v7, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->wA:Lorg/jbox2d/common/Vec2;

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

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

    iget-object v7, p0, Lorg/jbox2d/collision/Distance;->d:Lorg/jbox2d/common/Vec2;

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

    move-result-object v7

    iget-object v12, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

    invoke-static {v2, v7, v12}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V

    .line 712
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->temp:Lorg/jbox2d/common/Vec2;

    invoke-virtual {v5, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getSupport(Lorg/jbox2d/common/Vec2;)I

    move-result v2

    iput v2, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexB:I

    .line 713
    iget v2, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexB:I

    invoke-virtual {v5, v2}, Lorg/jbox2d/collision/Distance$DistanceProxy;->getVertex(I)Lorg/jbox2d/common/Vec2;

    move-result-object v2

    iget-object v7, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->wB:Lorg/jbox2d/common/Vec2;

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

    .line 714
    iget-object v2, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->w:Lorg/jbox2d/common/Vec2;

    iget-object v7, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->wB:Lorg/jbox2d/common/Vec2;

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

    move-result-object v2

    iget-object v7, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->wA:Lorg/jbox2d/common/Vec2;

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

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

    .line 718
    sget v2, Lorg/jbox2d/collision/Distance;->GJK_ITERS:I

    add-int/lit8 v2, v2, 0x1

    sput v2, Lorg/jbox2d/collision/Distance;->GJK_ITERS:I

    .line 721
    const/4 v2, 0x0

    .line 722
    const/4 v7, 0x0

    :goto_16f
    if-ge v7, v10, :cond_182

    .line 723
    iget v12, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexA:I

    iget-object v13, p0, Lorg/jbox2d/collision/Distance;->saveA:[I

    aget v13, v13, v7

    if-ne v12, v13, :cond_18f

    iget v12, v11, Lorg/jbox2d/collision/Distance$SimplexVertex;->indexB:I

    iget-object v13, p0, Lorg/jbox2d/collision/Distance;->saveB:[I

    aget v13, v13, v7

    if-ne v12, v13, :cond_18f

    .line 724
    const/4 v2, 0x1

    .line 730
    :cond_182
    if-nez v2, :cond_6b

    .line 735
    iget-object v2, p0, Lorg/jbox2d/collision/Distance;->simplex:Lorg/jbox2d/collision/Distance$Simplex;

    iget v7, v2, Lorg/jbox2d/collision/Distance$Simplex;->m_count:I

    add-int/lit8 v7, v7, 0x1

    iput v7, v2, Lorg/jbox2d/collision/Distance$Simplex;->m_count:I

    move v7, v8

    .line 736
    goto/16 :goto_30

    .line 722
    :cond_18f
    add-int/lit8 v7, v7, 0x1

    goto :goto_16f

    .line 767
    :cond_192
    iget-object v1, p1, Lorg/jbox2d/collision/DistanceOutput;->pointA:Lorg/jbox2d/common/Vec2;

    iget-object v2, p1, Lorg/jbox2d/collision/DistanceOutput;->pointB:Lorg/jbox2d/common/Vec2;

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

    move-result-object v1

    const/high16 v2, 0x3f000000    # 0.5f

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

    .line 768
    iget-object v1, p1, Lorg/jbox2d/collision/DistanceOutput;->pointB:Lorg/jbox2d/common/Vec2;

    iget-object v2, p1, Lorg/jbox2d/collision/DistanceOutput;->pointA:Lorg/jbox2d/common/Vec2;

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

    .line 769
    const/4 v1, 0x0

    iput v1, p1, Lorg/jbox2d/collision/DistanceOutput;->distance:F

    goto/16 :goto_e6

    .line 655
    nop

    :pswitch_data_1ac
    .packed-switch 0x1
        :pswitch_64
        :pswitch_5f
        :pswitch_e7
    .end packed-switch
.end method