TimeOfImpact.smali
.class public Lorg/jbox2d/collision/TimeOfImpact;
.super Ljava/lang/Object;
.source "TimeOfImpact.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;,
Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;,
Lorg/jbox2d/collision/TimeOfImpact$TOIInput;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
.field public static final MAX_ITERATIONS:I = 0x14
.field public static final MAX_ROOT_ITERATIONS:I = 0x32
.field public static toiCalls:I
.field public static toiIters:I
.field public static toiMaxIters:I
.field public static toiMaxRootIters:I
.field public static toiRootIters:I
# instance fields
.field private final cache:Lorg/jbox2d/collision/Distance$SimplexCache;
.field private final distanceInput:Lorg/jbox2d/collision/DistanceInput;
.field private final distanceOutput:Lorg/jbox2d/collision/DistanceOutput;
.field private final fcn:Lorg/jbox2d/collision/SeparationFunction;
.field private final indexes:[I
.field private final pool:Lorg/jbox2d/pooling/IWorldPool;
.field private final sweepA:Lorg/jbox2d/common/Sweep;
.field private final sweepB:Lorg/jbox2d/common/Sweep;
.field private final xfA:Lorg/jbox2d/common/Transform;
.field private final xfB:Lorg/jbox2d/common/Transform;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/4 v1, 0x0
.line 42
const-class v0, Lorg/jbox2d/collision/TimeOfImpact;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_17
const/4 v0, 0x1
:goto_a
sput-boolean v0, Lorg/jbox2d/collision/TimeOfImpact;->$assertionsDisabled:Z
.line 46
sput v1, Lorg/jbox2d/collision/TimeOfImpact;->toiCalls:I
.line 47
sput v1, Lorg/jbox2d/collision/TimeOfImpact;->toiIters:I
.line 48
sput v1, Lorg/jbox2d/collision/TimeOfImpact;->toiMaxIters:I
.line 49
sput v1, Lorg/jbox2d/collision/TimeOfImpact;->toiRootIters:I
.line 50
sput v1, Lorg/jbox2d/collision/TimeOfImpact;->toiMaxRootIters:I
return-void
:cond_17
move v0, v1
.line 42
goto :goto_a
.end method
.method public constructor <init>(Lorg/jbox2d/pooling/IWorldPool;)V
.registers 3
.prologue
.line 97
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 84
new-instance v0, Lorg/jbox2d/collision/Distance$SimplexCache;
invoke-direct {v0}, Lorg/jbox2d/collision/Distance$SimplexCache;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->cache:Lorg/jbox2d/collision/Distance$SimplexCache;
.line 85
new-instance v0, Lorg/jbox2d/collision/DistanceInput;
invoke-direct {v0}, Lorg/jbox2d/collision/DistanceInput;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
.line 86
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->xfA:Lorg/jbox2d/common/Transform;
.line 87
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->xfB:Lorg/jbox2d/common/Transform;
.line 88
new-instance v0, Lorg/jbox2d/collision/DistanceOutput;
invoke-direct {v0}, Lorg/jbox2d/collision/DistanceOutput;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->distanceOutput:Lorg/jbox2d/collision/DistanceOutput;
.line 89
new-instance v0, Lorg/jbox2d/collision/SeparationFunction;
invoke-direct {v0}, Lorg/jbox2d/collision/SeparationFunction;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->fcn:Lorg/jbox2d/collision/SeparationFunction;
.line 90
const/4 v0, 0x2
new-array v0, v0, [I
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->indexes:[I
.line 91
new-instance v0, Lorg/jbox2d/common/Sweep;
invoke-direct {v0}, Lorg/jbox2d/common/Sweep;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->sweepA:Lorg/jbox2d/common/Sweep;
.line 92
new-instance v0, Lorg/jbox2d/common/Sweep;
invoke-direct {v0}, Lorg/jbox2d/common/Sweep;-><init>()V
iput-object v0, p0, Lorg/jbox2d/collision/TimeOfImpact;->sweepB:Lorg/jbox2d/common/Sweep;
.line 98
iput-object p1, p0, Lorg/jbox2d/collision/TimeOfImpact;->pool:Lorg/jbox2d/pooling/IWorldPool;
.line 99
return-void
.end method
# virtual methods
.method public final timeOfImpact(Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;Lorg/jbox2d/collision/TimeOfImpact$TOIInput;)V
.registers 26
.prologue
.line 114
sget v2, Lorg/jbox2d/collision/TimeOfImpact;->toiCalls:I
add-int/lit8 v2, v2, 0x1
sput v2, Lorg/jbox2d/collision/TimeOfImpact;->toiCalls:I
.line 116
sget-object v2, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->UNKNOWN:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 117
move-object/from16 v0, p2
iget v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->tMax:F
move-object/from16 v0, p1
iput v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
.line 119
move-object/from16 v0, p2
iget-object v4, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
.line 120
move-object/from16 v0, p2
iget-object v6, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
.line 122
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepA:Lorg/jbox2d/common/Sweep;
move-object/from16 v0, p2
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->sweepA:Lorg/jbox2d/common/Sweep;
invoke-virtual {v2, v3}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 123
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepB:Lorg/jbox2d/common/Sweep;
move-object/from16 v0, p2
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->sweepB:Lorg/jbox2d/common/Sweep;
invoke-virtual {v2, v3}, Lorg/jbox2d/common/Sweep;->set(Lorg/jbox2d/common/Sweep;)Lorg/jbox2d/common/Sweep;
.line 127
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepA:Lorg/jbox2d/common/Sweep;
invoke-virtual {v2}, Lorg/jbox2d/common/Sweep;->normalize()V
.line 128
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepB:Lorg/jbox2d/common/Sweep;
invoke-virtual {v2}, Lorg/jbox2d/common/Sweep;->normalize()V
.line 130
move-object/from16 v0, p2
iget v10, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->tMax:F
.line 132
iget v2, v4, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
iget v3, v6, Lorg/jbox2d/collision/Distance$DistanceProxy;->m_radius:F
add-float/2addr v2, v3
.line 134
sget v3, Lorg/jbox2d/common/Settings;->linearSlop:F
const/high16 v5, 0x40400000 # 3.0f
sget v7, Lorg/jbox2d/common/Settings;->linearSlop:F
mul-float/2addr v5, v7
sub-float/2addr v2, v5
invoke-static {v3, v2}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v17
.line 135
const/high16 v2, 0x3e800000 # 0.25f
sget v3, Lorg/jbox2d/common/Settings;->linearSlop:F
mul-float v18, v2, v3
.line 137
sget-boolean v2, Lorg/jbox2d/collision/TimeOfImpact;->$assertionsDisabled:Z
if-nez v2, :cond_69
cmpl-float v2, v17, v18
if-gtz v2, :cond_69
new-instance v2, Ljava/lang/AssertionError;
invoke-direct {v2}, Ljava/lang/AssertionError;-><init>()V
throw v2
.line 139
:cond_69
const/4 v8, 0x0
.line 140
const/4 v2, 0x0
.line 142
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->cache:Lorg/jbox2d/collision/Distance$SimplexCache;
const/4 v5, 0x0
iput v5, v3, Lorg/jbox2d/collision/Distance$SimplexCache;->count:I
.line 143
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
move-object/from16 v0, p2
iget-object v5, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
iput-object v5, v3, Lorg/jbox2d/collision/DistanceInput;->proxyA:Lorg/jbox2d/collision/Distance$DistanceProxy;
.line 144
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
move-object/from16 v0, p2
iget-object v5, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIInput;->proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
iput-object v5, v3, Lorg/jbox2d/collision/DistanceInput;->proxyB:Lorg/jbox2d/collision/Distance$DistanceProxy;
.line 145
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
const/4 v5, 0x0
iput-boolean v5, v3, Lorg/jbox2d/collision/DistanceInput;->useRadii:Z
move v9, v2
.line 150
:goto_8e
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepA:Lorg/jbox2d/common/Sweep;
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->xfA:Lorg/jbox2d/common/Transform;
invoke-virtual {v2, v3, v8}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 151
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepB:Lorg/jbox2d/common/Sweep;
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->xfB:Lorg/jbox2d/common/Transform;
invoke-virtual {v2, v3, v8}, Lorg/jbox2d/common/Sweep;->getTransform(Lorg/jbox2d/common/Transform;F)V
.line 156
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->xfA:Lorg/jbox2d/common/Transform;
iput-object v3, v2, Lorg/jbox2d/collision/DistanceInput;->transformA:Lorg/jbox2d/common/Transform;
.line 157
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->xfB:Lorg/jbox2d/common/Transform;
iput-object v3, v2, Lorg/jbox2d/collision/DistanceInput;->transformB:Lorg/jbox2d/common/Transform;
.line 158
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->getDistance()Lorg/jbox2d/collision/Distance;
move-result-object v2
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceOutput:Lorg/jbox2d/collision/DistanceOutput;
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/collision/TimeOfImpact;->cache:Lorg/jbox2d/collision/Distance$SimplexCache;
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceInput:Lorg/jbox2d/collision/DistanceInput;
invoke-virtual {v2, v3, v5, v7}, Lorg/jbox2d/collision/Distance;->distance(Lorg/jbox2d/collision/DistanceOutput;Lorg/jbox2d/collision/Distance$SimplexCache;Lorg/jbox2d/collision/DistanceInput;)V
.line 166
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceOutput:Lorg/jbox2d/collision/DistanceOutput;
iget v2, v2, Lorg/jbox2d/collision/DistanceOutput;->distance:F
const/4 v3, 0x0
cmpg-float v2, v2, v3
if-gtz v2, :cond_ee
.line 168
sget-object v2, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->OVERLAPPED:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 169
const/4 v2, 0x0
move-object/from16 v0, p1
iput v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
.line 298
:goto_e5
sget v2, Lorg/jbox2d/collision/TimeOfImpact;->toiMaxIters:I
invoke-static {v2, v9}, Lorg/jbox2d/common/MathUtils;->max(II)I
move-result v2
sput v2, Lorg/jbox2d/collision/TimeOfImpact;->toiMaxIters:I
.line 299
return-void
.line 173
:cond_ee
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->distanceOutput:Lorg/jbox2d/collision/DistanceOutput;
iget v2, v2, Lorg/jbox2d/collision/DistanceOutput;->distance:F
add-float v3, v17, v18
cmpg-float v2, v2, v3
if-gez v2, :cond_105
.line 175
sget-object v2, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->TOUCHING:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 176
move-object/from16 v0, p1
iput v8, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
goto :goto_e5
.line 181
:cond_105
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact;->fcn:Lorg/jbox2d/collision/SeparationFunction;
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact;->cache:Lorg/jbox2d/collision/Distance$SimplexCache;
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepA:Lorg/jbox2d/common/Sweep;
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/collision/TimeOfImpact;->sweepB:Lorg/jbox2d/common/Sweep;
invoke-virtual/range {v2 .. v8}, Lorg/jbox2d/collision/SeparationFunction;->initialize(Lorg/jbox2d/collision/Distance$SimplexCache;Lorg/jbox2d/collision/Distance$DistanceProxy;Lorg/jbox2d/common/Sweep;Lorg/jbox2d/collision/Distance$DistanceProxy;Lorg/jbox2d/common/Sweep;F)F
.line 186
const/4 v7, 0x0
.line 188
const/4 v2, 0x0
move v3, v10
.line 192
:cond_11b
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/collision/TimeOfImpact;->fcn:Lorg/jbox2d/collision/SeparationFunction;
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/collision/TimeOfImpact;->indexes:[I
invoke-virtual {v5, v11, v3}, Lorg/jbox2d/collision/SeparationFunction;->findMinSeparation([IF)F
move-result v15
.line 195
add-float v5, v17, v18
cmpl-float v5, v15, v5
if-lez v5, :cond_145
.line 197
sget-object v2, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->SEPARATED:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 198
move-object/from16 v0, p1
iput v10, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
.line 199
const/4 v2, 0x1
move v3, v2
.line 280
:goto_139
add-int/lit8 v2, v9, 0x1
.line 281
sget v5, Lorg/jbox2d/collision/TimeOfImpact;->toiIters:I
add-int/lit8 v5, v5, 0x1
sput v5, Lorg/jbox2d/collision/TimeOfImpact;->toiIters:I
.line 283
if-eqz v3, :cond_20f
move v9, v2
.line 285
goto :goto_e5
.line 204
:cond_145
sub-float v5, v17, v18
cmpl-float v5, v15, v5
if-lez v5, :cond_14e
move v8, v3
move v3, v7
.line 207
goto :goto_139
.line 211
:cond_14e
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/collision/TimeOfImpact;->fcn:Lorg/jbox2d/collision/SeparationFunction;
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/collision/TimeOfImpact;->indexes:[I
const/4 v12, 0x0
aget v11, v11, v12
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/collision/TimeOfImpact;->indexes:[I
const/4 v13, 0x1
aget v12, v12, v13
invoke-virtual {v5, v11, v12, v8}, Lorg/jbox2d/collision/SeparationFunction;->evaluate(IIF)F
move-result v14
.line 216
sub-float v5, v17, v18
cmpg-float v5, v14, v5
if-gez v5, :cond_177
.line 217
sget-object v2, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->FAILED:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 218
move-object/from16 v0, p1
iput v8, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
.line 219
const/4 v2, 0x1
move v3, v2
.line 220
goto :goto_139
.line 224
:cond_177
add-float v5, v17, v18
cmpg-float v5, v14, v5
if-gtz v5, :cond_18a
.line 226
sget-object v2, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->TOUCHING:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v2, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 227
move-object/from16 v0, p1
iput v8, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
.line 228
const/4 v2, 0x1
move v3, v2
.line 229
goto :goto_139
.line 233
:cond_18a
const/4 v5, 0x0
move v11, v3
move v12, v8
move v13, v5
.line 238
:goto_18e
and-int/lit8 v5, v13, 0x1
const/16 v16, 0x1
move/from16 v0, v16
if-ne v5, v0, :cond_1ed
.line 240
sub-float v5, v17, v14
sub-float v16, v11, v12
mul-float v5, v5, v16
sub-float v16, v15, v14
div-float v5, v5, v16
add-float/2addr v5, v12
.line 246
:goto_1a1
add-int/lit8 v16, v13, 0x1
.line 247
sget v13, Lorg/jbox2d/collision/TimeOfImpact;->toiRootIters:I
add-int/lit8 v13, v13, 0x1
sput v13, Lorg/jbox2d/collision/TimeOfImpact;->toiRootIters:I
.line 249
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/collision/TimeOfImpact;->fcn:Lorg/jbox2d/collision/SeparationFunction;
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/collision/TimeOfImpact;->indexes:[I
move-object/from16 v19, v0
const/16 v20, 0x0
aget v19, v19, v20
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/collision/TimeOfImpact;->indexes:[I
move-object/from16 v20, v0
const/16 v21, 0x1
aget v20, v20, v21
move/from16 v0, v19
move/from16 v1, v20
invoke-virtual {v13, v0, v1, v5}, Lorg/jbox2d/collision/SeparationFunction;->evaluate(IIF)F
move-result v13
.line 251
sub-float v19, v13, v17
invoke-static/range {v19 .. v19}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v19
cmpg-float v19, v19, v18
if-gez v19, :cond_1f4
move v3, v5
.line 271
:cond_1d4
sget v5, Lorg/jbox2d/collision/TimeOfImpact;->toiMaxRootIters:I
move/from16 v0, v16
invoke-static {v5, v0}, Lorg/jbox2d/common/MathUtils;->max(II)I
move-result v5
sput v5, Lorg/jbox2d/collision/TimeOfImpact;->toiMaxRootIters:I
.line 273
add-int/lit8 v2, v2, 0x1
.line 275
sget v5, Lorg/jbox2d/common/Settings;->maxPolygonVertices:I
if-eq v2, v5, :cond_223
const/16 v5, 0x32
move/from16 v0, v16
if-ne v0, v5, :cond_11b
move v3, v7
.line 276
goto/16 :goto_139
.line 243
:cond_1ed
const/high16 v5, 0x3f000000 # 0.5f
add-float v16, v12, v11
mul-float v5, v5, v16
goto :goto_1a1
.line 258
:cond_1f4
cmpl-float v19, v13, v17
if-lez v19, :cond_20c
move v12, v13
move v13, v15
move/from16 v22, v11
move v11, v5
move/from16 v5, v22
.line 266
:goto_1ff
const/16 v14, 0x32
move/from16 v0, v16
if-eq v0, v14, :cond_1d4
move v14, v12
move v15, v13
move/from16 v13, v16
move v12, v11
move v11, v5
.line 269
goto :goto_18e
:cond_20c
move v11, v12
move v12, v14
.line 263
goto :goto_1ff
.line 288
:cond_20f
const/16 v3, 0x14
if-ne v2, v3, :cond_220
.line 291
sget-object v3, Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;->FAILED:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
move-object/from16 v0, p1
iput-object v3, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->state:Lorg/jbox2d/collision/TimeOfImpact$TOIOutputState;
.line 292
move-object/from16 v0, p1
iput v8, v0, Lorg/jbox2d/collision/TimeOfImpact$TOIOutput;->t:F
move v9, v2
.line 293
goto/16 :goto_e5
:cond_220
move v9, v2
.line 295
goto/16 :goto_8e
:cond_223
move v3, v7
goto/16 :goto_139
.end method