ParticleSystem.smali
.class public Lorg/jbox2d/particle/ParticleSystem;
.super Ljava/lang/Object;
.source "ParticleSystem.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/jbox2d/particle/ParticleSystem$1;,
Lorg/jbox2d/particle/ParticleSystem$Test;,
Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;,
Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;,
Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;,
Lorg/jbox2d/particle/ParticleSystem$JoinParticleGroupsCallback;,
Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;,
Lorg/jbox2d/particle/ParticleSystem$Triad;,
Lorg/jbox2d/particle/ParticleSystem$Pair;,
Lorg/jbox2d/particle/ParticleSystem$Proxy;,
Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;,
Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;,
Lorg/jbox2d/particle/ParticleSystem$NewIndices;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
.field private static final k_noPressureFlags:I = 0x40
.field private static final k_pairFlags:I = 0x8
.field private static final k_triadFlags:I = 0x10
.field static final tagBits:I = 0x1f
.field static final xMask:I = 0xfff
.field static final xOffset:J = 0x40000L
.field static final xScale:J = 0x80L
.field static final xShift:I = 0x7
.field static final xTruncBits:I = 0xc
.field static final yMask:I = 0xfff
.field static final yOffset:J = 0x800L
.field static final yShift:I = 0x13
.field static final yTruncBits:I = 0xc
# instance fields
.field private createParticleGroupCallback:Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
.field private final dpcallback:Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;
.field m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
.field m_accumulationBuffer:[F
.field m_allGroupFlags:I
.field m_allParticleFlags:I
.field public m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
.field m_bodyContactCapacity:I
.field public m_bodyContactCount:I
.field public m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer",
"<",
"Lorg/jbox2d/particle/ParticleColor;",
">;"
}
.end annotation
.end field
.field m_colorMixingStrength:F
.field public m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
.field m_contactCapacity:I
.field public m_contactCount:I
.field m_count:I
.field m_dampingStrength:F
.field m_density:F
.field m_depthBuffer:[F
.field m_ejectionStrength:F
.field m_elasticStrength:F
.field m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
.field m_gravityScale:F
.field m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
.field m_groupCount:I
.field m_groupList:Lorg/jbox2d/particle/ParticleGroup;
.field m_internalAllocatedCapacity:I
.field m_inverseDensity:F
.field m_inverseDiameter:F
.field m_maxCount:I
.field m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
.field m_pairCapacity:I
.field m_pairCount:I
.field m_particleDiameter:F
.field m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer",
"<",
"Lorg/jbox2d/common/Vec2;",
">;"
}
.end annotation
.end field
.field m_powderStrength:F
.field m_pressureStrength:F
.field m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
.field m_proxyCapacity:I
.field m_proxyCount:I
.field m_springStrength:F
.field m_squaredDiameter:F
.field m_surfaceTensionStrengthA:F
.field m_surfaceTensionStrengthB:F
.field m_timestamp:I
.field m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
.field m_triadCapacity:I
.field m_triadCount:I
.field m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer",
"<",
"Lorg/jbox2d/common/Vec2;",
">;"
}
.end annotation
.end field
.field m_viscousStrength:F
.field m_world:Lorg/jbox2d/dynamics/World;
.field private final newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
.field private sccallback:Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;
.field private final temp:Lorg/jbox2d/collision/AABB;
.field private final temp2:Lorg/jbox2d/collision/AABB;
.field private final tempParticleDef:Lorg/jbox2d/particle/ParticleDef;
.field private final tempRot:Lorg/jbox2d/common/Rot;
.field private final tempTransform:Lorg/jbox2d/common/Transform;
.field private final tempTransform2:Lorg/jbox2d/common/Transform;
.field private final tempVec:Lorg/jbox2d/common/Vec2;
.field private final tempVec2:Lorg/jbox2d/common/Vec2;
.field private final tempXf:Lorg/jbox2d/common/Transform;
.field private final tempXf2:Lorg/jbox2d/common/Transform;
.field private final ubccallback:Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 26
const-class v0, Lorg/jbox2d/particle/ParticleSystem;
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/particle/ParticleSystem;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>(Lorg/jbox2d/dynamics/World;)V
.registers 8
.prologue
const/high16 v5, 0x3f000000 # 0.5f
const/high16 v4, 0x3e800000 # 0.25f
const/high16 v3, 0x3f800000 # 1.0f
const/4 v2, 0x0
.line 117
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 253
new-instance v0, Lorg/jbox2d/collision/AABB;
invoke-direct {v0}, Lorg/jbox2d/collision/AABB;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->temp:Lorg/jbox2d/collision/AABB;
.line 254
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->dpcallback:Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;
.line 269
new-instance v0, Lorg/jbox2d/collision/AABB;
invoke-direct {v0}, Lorg/jbox2d/collision/AABB;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->temp2:Lorg/jbox2d/collision/AABB;
.line 270
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 271
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempTransform:Lorg/jbox2d/common/Transform;
.line 272
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempTransform2:Lorg/jbox2d/common/Transform;
.line 273
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->createParticleGroupCallback:Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
.line 275
new-instance v0, Lorg/jbox2d/particle/ParticleDef;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleDef;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempParticleDef:Lorg/jbox2d/particle/ParticleDef;
.line 631
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->ubccallback:Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;
.line 654
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->sccallback:Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;
.line 898
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec2:Lorg/jbox2d/common/Vec2;
.line 899
new-instance v0, Lorg/jbox2d/common/Rot;
invoke-direct {v0}, Lorg/jbox2d/common/Rot;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempRot:Lorg/jbox2d/common/Rot;
.line 900
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
.line 901
new-instance v0, Lorg/jbox2d/common/Transform;
invoke-direct {v0}, Lorg/jbox2d/common/Transform;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf2:Lorg/jbox2d/common/Transform;
.line 1397
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$NewIndices;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;-><init>(Lorg/jbox2d/particle/ParticleSystem$1;)V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
.line 118
iput-object p1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
.line 119
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_timestamp:I
.line 120
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
.line 121
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allGroupFlags:I
.line 122
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
.line 123
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDensity:F
.line 124
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_gravityScale:F
.line 125
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
.line 126
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
.line 127
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_squaredDiameter:F
.line 129
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
.line 130
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
.line 131
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_maxCount:I
.line 133
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
.line 134
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCapacity:I
.line 136
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
.line 137
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCapacity:I
.line 139
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
.line 140
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCapacity:I
.line 142
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
.line 143
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
.line 145
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I
.line 146
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCapacity:I
.line 148
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
.line 150
const v0, 0x3d4ccccd # 0.05f
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pressureStrength:F
.line 151
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_dampingStrength:F
.line 152
iput v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_elasticStrength:F
.line 153
iput v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_springStrength:F
.line 154
iput v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_viscousStrength:F
.line 155
const v0, 0x3dcccccd # 0.1f
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_surfaceTensionStrengthA:F
.line 156
const v0, 0x3e4ccccd # 0.2f
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_surfaceTensionStrengthB:F
.line 157
iput v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_powderStrength:F
.line 158
iput v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_ejectionStrength:F
.line 159
iput v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorMixingStrength:F
.line 161
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;-><init>()V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
.line 162
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Lorg/jbox2d/common/Vec2;
invoke-direct {v0, v1}, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;-><init>(Ljava/lang/Class;)V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.line 163
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Lorg/jbox2d/common/Vec2;
invoke-direct {v0, v1}, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;-><init>(Ljava/lang/Class;)V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.line 164
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Lorg/jbox2d/particle/ParticleColor;
invoke-direct {v0, v1}, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;-><init>(Ljava/lang/Class;)V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.line 165
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Ljava/lang/Object;
invoke-direct {v0, v1}, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;-><init>(Ljava/lang/Class;)V
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
.line 166
return-void
.end method
.method static synthetic access$100([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
.registers 6
.prologue
.line 26
invoke-static {p0, p1, p2, p3}, Lorg/jbox2d/particle/ParticleSystem;->lowerBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
move-result v0
return v0
.end method
.method static synthetic access$200([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
.registers 6
.prologue
.line 26
invoke-static {p0, p1, p2, p3}, Lorg/jbox2d/particle/ParticleSystem;->upperBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
move-result v0
return v0
.end method
.method static computeRelativeTag(JII)J
.registers 8
.prologue
.line 50
shl-int/lit8 v0, p3, 0x13
int-to-long v0, v0
add-long/2addr v0, p0
shl-int/lit8 v2, p2, 0x7
int-to-long v2, v2
add-long/2addr v0, v2
return-wide v0
.end method
.method static computeTag(FF)J
.registers 8
.prologue
.line 46
const/high16 v0, 0x45000000 # 2048.0f
add-float/2addr v0, p1
float-to-long v0, v0
const/16 v2, 0x13
shl-long/2addr v0, v2
const/high16 v2, 0x43000000 # 128.0f
mul-float/2addr v2, p0
float-to-long v2, v2
const-wide/32 v4, 0x40000
add-long/2addr v2, v4
add-long/2addr v0, v2
return-wide v0
.end method
.method static limitCapacity(II)I
.registers 2
.prologue
.line 54
if-eqz p1, :cond_5
if-le p0, p1, :cond_5
:goto_4
return p1
:cond_5
move p1, p0
goto :goto_4
.end method
.method private static final lowerBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
.registers 10
.prologue
.line 1611
const/4 v0, 0x0
.line 1613
:goto_1
if-lez p1, :cond_17
.line 1614
div-int/lit8 v1, p1, 0x2
.line 1615
add-int v2, v0, v1
.line 1616
aget-object v3, p0, v2
iget-wide v4, v3, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
cmp-long v3, v4, p2
if-gez v3, :cond_15
.line 1617
add-int/lit8 v0, v2, 0x1
.line 1618
add-int/lit8 v1, v1, 0x1
sub-int/2addr p1, v1
goto :goto_1
:cond_15
move p1, v1
.line 1620
goto :goto_1
.line 1623
:cond_17
return v0
.end method
.method static reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;IIZ)[I
.registers 6
.prologue
.line 1763
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_c
if-gt p2, p1, :cond_c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1764
:cond_c
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->userSuppliedCapacity:I
invoke-static {v0, v1, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer([IIIIZ)[I
move-result-object v0
return-object v0
.end method
.method static reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;IIZ)[Ljava/lang/Object;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer",
"<TT;>;IIZ)[TT;"
}
.end annotation
.prologue
.line 1756
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_c
if-gt p2, p1, :cond_c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1757
:cond_c
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->dataClass:Ljava/lang/Class;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
move v3, p1
move v4, p2
move v5, p3
invoke-static/range {v0 .. v5}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;IIIZ)[Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method private static final upperBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
.registers 10
.prologue
.line 1627
const/4 v0, 0x0
.line 1629
:goto_1
if-lez p1, :cond_17
.line 1630
div-int/lit8 v1, p1, 0x2
.line 1631
add-int v2, v0, v1
.line 1632
aget-object v3, p0, v2
iget-wide v4, v3, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
cmp-long v3, v4, p2
if-gtz v3, :cond_15
.line 1633
add-int/lit8 v0, v2, 0x1
.line 1634
add-int/lit8 v1, v1, 0x1
sub-int/2addr p1, v1
goto :goto_1
:cond_15
move p1, v1
.line 1636
goto :goto_1
.line 1639
:cond_17
return v0
.end method
# virtual methods
.method RotateBuffer(III)V
.registers 9
.prologue
const/4 v1, 0x0
.line 1402
if-eq p1, p2, :cond_5
if-ne p2, p3, :cond_6
.line 1462
:cond_5
return-void
.line 1405
:cond_6
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iput p1, v0, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->start:I
.line 1406
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iput p2, v0, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->mid:I
.line 1407
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iput p3, v0, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->end:I
.line 1409
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([IIII)V
.line 1410
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([Ljava/lang/Object;III)V
.line 1411
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([Ljava/lang/Object;III)V
.line 1412
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([Ljava/lang/Object;III)V
.line 1413
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
if-eqz v0, :cond_35
.line 1414
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([FIII)V
.line 1416
:cond_35
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-eqz v0, :cond_42
.line 1417
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([Ljava/lang/Object;III)V
.line 1419
:cond_42
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-eqz v0, :cond_4f
.line 1420
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-static {v0, p1, p2, p3}, Lorg/jbox2d/common/BufferUtils;->rotate([Ljava/lang/Object;III)V
:cond_4f
move v0, v1
.line 1424
:goto_50
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v0, v2, :cond_65
.line 1425
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v2, v2, v0
.line 1426
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v4, v2, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
invoke-virtual {v3, v4}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v3
iput v3, v2, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
.line 1424
add-int/lit8 v0, v0, 0x1
goto :goto_50
:cond_65
move v0, v1
.line 1430
:goto_66
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v0, v2, :cond_85
.line 1431
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v2, v2, v0
.line 1432
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v4, v2, Lorg/jbox2d/particle/ParticleContact;->indexA:I
invoke-virtual {v3, v4}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v3
iput v3, v2, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1433
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v4, v2, Lorg/jbox2d/particle/ParticleContact;->indexB:I
invoke-virtual {v3, v4}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v3
iput v3, v2, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1430
add-int/lit8 v0, v0, 0x1
goto :goto_66
:cond_85
move v0, v1
.line 1437
:goto_86
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v0, v2, :cond_9b
.line 1438
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v2, v2, v0
.line 1439
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v4, v2, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
invoke-virtual {v3, v4}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v3
iput v3, v2, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 1437
add-int/lit8 v0, v0, 0x1
goto :goto_86
:cond_9b
move v0, v1
.line 1443
:goto_9c
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
if-ge v0, v2, :cond_bb
.line 1444
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aget-object v2, v2, v0
.line 1445
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v4, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
invoke-virtual {v3, v4}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v3
iput v3, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
.line 1446
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v4, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
invoke-virtual {v3, v4}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v3
iput v3, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
.line 1443
add-int/lit8 v0, v0, 0x1
goto :goto_9c
.line 1450
:cond_bb
:goto_bb
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I
if-ge v1, v0, :cond_e4
.line 1451
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aget-object v0, v0, v1
.line 1452
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v3, v0, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexA:I
invoke-virtual {v2, v3}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v2
iput v2, v0, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexA:I
.line 1453
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v3, v0, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexB:I
invoke-virtual {v2, v3}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v2
iput v2, v0, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexB:I
.line 1454
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v3, v0, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexC:I
invoke-virtual {v2, v3}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v2
iput v2, v0, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexC:I
.line 1450
add-int/lit8 v1, v1, 0x1
goto :goto_bb
.line 1458
:cond_e4
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
:goto_e6
if-eqz v0, :cond_5
.line 1459
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v2, v0, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
invoke-virtual {v1, v2}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v1
iput v1, v0, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
.line 1460
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->newIndices:Lorg/jbox2d/particle/ParticleSystem$NewIndices;
iget v2, v0, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
add-int/lit8 v2, v2, -0x1
invoke-virtual {v1, v2}, Lorg/jbox2d/particle/ParticleSystem$NewIndices;->getIndex(I)I
move-result v1
add-int/lit8 v1, v1, 0x1
iput v1, v0, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
.line 1458
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleGroup;->getNext()Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
goto :goto_e6
.end method
.method public addContact(II)V
.registers 11
.prologue
const/high16 v7, 0x3f800000 # 1.0f
.line 550
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_e
if-ne p1, p2, :cond_e
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 551
:cond_e
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v1, v0, p1
.line 552
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, p2
.line 553
iget v2, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v3, v1, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v2, v3
.line 554
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v1, v1, Lorg/jbox2d/common/Vec2;->y:F
sub-float v3, v0, v1
.line 555
mul-float v0, v2, v2
mul-float v1, v3, v3
add-float v4, v0, v1
.line 557
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_squaredDiameter:F
cmpg-float v0, v4, v0
if-gez v0, :cond_90
.line 558
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCapacity:I
if-lt v0, v1, :cond_54
.line 559
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCapacity:I
.line 560
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-eqz v0, :cond_91
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
mul-int/lit8 v0, v0, 0x2
move v1, v0
.line 562
:goto_46
const-class v0, Lorg/jbox2d/particle/ParticleContact;
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
invoke-static {v0, v6, v5, v1}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;II)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/particle/ParticleContact;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
.line 565
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCapacity:I
.line 567
:cond_54
const/4 v0, 0x0
cmpl-float v0, v4, v0
if-eqz v0, :cond_95
div-float v0, v7, v4
invoke-static {v0}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v0
.line 568
:goto_5f
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
aget-object v1, v1, v5
.line 569
iput p1, v1, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 570
iput p2, v1, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 571
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v5, v5, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v5, v5, p1
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v6, v6, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v6, v6, p2
or-int/2addr v5, v6
iput v5, v1, Lorg/jbox2d/particle/ParticleContact;->flags:I
.line 572
mul-float/2addr v4, v0
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v4, v5
sub-float v4, v7, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 573
iget-object v4, v1, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
mul-float/2addr v2, v0
iput v2, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 574
iget-object v1, v1, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
mul-float/2addr v0, v3
iput v0, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 575
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
.line 577
:cond_90
return-void
.line 560
:cond_91
const/16 v0, 0x100
move v1, v0
goto :goto_46
.line 567
:cond_95
const v0, 0x7f7fffff # Float.MAX_VALUE
goto :goto_5f
.end method
.method public computeDepthForGroup(Lorg/jbox2d/particle/ParticleGroup;)V
.registers 16
.prologue
const/4 v5, 0x1
const v4, 0x7f7fffff # Float.MAX_VALUE
const/4 v3, 0x0
const/4 v1, 0x0
.line 492
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
:goto_8
iget v2, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v2, :cond_13
.line 493
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aput v3, v2, v0
.line 492
add-int/lit8 v0, v0, 0x1
goto :goto_8
:cond_13
move v0, v1
.line 495
:goto_14
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v0, v2, :cond_43
.line 496
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v2, v2, v0
.line 497
iget v6, v2, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 498
iget v7, v2, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 499
iget v8, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-lt v6, v8, :cond_40
iget v8, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v6, v8, :cond_40
iget v8, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-lt v7, v8, :cond_40
iget v8, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v7, v8, :cond_40
.line 501
iget v2, v2, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 502
iget-object v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v9, v8, v6
add-float/2addr v9, v2
aput v9, v8, v6
.line 503
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v8, v6, v7
add-float/2addr v2, v8
aput v2, v6, v7
.line 495
:cond_40
add-int/lit8 v0, v0, 0x1
goto :goto_14
.line 506
:cond_43
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
invoke-virtual {p0, v0}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer([F)[F
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
.line 507
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
:goto_4d
iget v2, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v2, :cond_66
.line 508
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v2, v2, v0
.line 509
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
const v7, 0x3f4ccccd # 0.8f
cmpg-float v2, v2, v7
if-gez v2, :cond_64
move v2, v3
:goto_5f
aput v2, v6, v0
.line 507
add-int/lit8 v0, v0, 0x1
goto :goto_4d
:cond_64
move v2, v4
.line 509
goto :goto_5f
.line 511
:cond_66
invoke-virtual {p1}, Lorg/jbox2d/particle/ParticleGroup;->getParticleCount()I
move-result v7
move v6, v1
.line 512
:goto_6b
if-ge v6, v7, :cond_b3
move v0, v1
move v2, v1
.line 514
:goto_6f
iget v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v0, v8, :cond_b1
.line 515
iget-object v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v8, v8, v0
.line 516
iget v9, v8, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 517
iget v10, v8, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 518
iget v11, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-lt v9, v11, :cond_ae
iget v11, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v9, v11, :cond_ae
iget v11, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-lt v10, v11, :cond_ae
iget v11, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v10, v11, :cond_ae
.line 520
const/high16 v11, 0x3f800000 # 1.0f
iget v8, v8, Lorg/jbox2d/particle/ParticleContact;->weight:F
sub-float v8, v11, v8
.line 521
iget-object v11, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v11, v11, v9
.line 522
iget-object v12, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v12, v12, v10
.line 523
add-float v13, v12, v8
.line 524
add-float/2addr v8, v11
.line 525
cmpl-float v11, v11, v13
if-lez v11, :cond_a5
.line 526
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aput v13, v2, v9
move v2, v5
.line 529
:cond_a5
cmpl-float v9, v12, v8
if-lez v9, :cond_ae
.line 530
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aput v8, v2, v10
move v2, v5
.line 514
:cond_ae
add-int/lit8 v0, v0, 0x1
goto :goto_6f
.line 535
:cond_b1
if-nez v2, :cond_cd
.line 539
:cond_b3
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
:goto_b5
iget v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v1, :cond_d6
.line 540
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v1, v1, v0
.line 541
cmpg-float v1, v1, v4
if-gez v1, :cond_d1
.line 542
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v2, v1, v0
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
mul-float/2addr v2, v5
aput v2, v1, v0
.line 539
:goto_ca
add-int/lit8 v0, v0, 0x1
goto :goto_b5
.line 512
:cond_cd
add-int/lit8 v0, v6, 0x1
move v6, v0
goto :goto_6b
.line 544
:cond_d1
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aput v3, v1, v0
goto :goto_ca
.line 547
:cond_d6
return-void
.end method
.method public computeParticleCollisionEnergy()F
.registers 9
.prologue
const/4 v3, 0x0
.line 1735
.line 1736
const/4 v0, 0x0
move v1, v0
move v2, v3
:goto_4
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v1, v0, :cond_3d
.line 1737
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v1
.line 1738
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1739
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1740
iget-object v6, v0, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 1741
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v4
.line 1742
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v5
.line 1743
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v4, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v5, v7
.line 1744
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v0, v4
.line 1745
iget v4, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v5
iget v5, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v5
add-float/2addr v0, v4
.line 1746
cmpg-float v4, v0, v3
if-gez v4, :cond_39
.line 1747
mul-float/2addr v0, v0
add-float/2addr v2, v0
.line 1736
:cond_39
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_4
.line 1750
:cond_3d
const/high16 v0, 0x3f000000 # 0.5f
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleMass()F
move-result v1
mul-float/2addr v0, v1
mul-float/2addr v0, v2
return v0
.end method
.method public createParticle(Lorg/jbox2d/particle/ParticleDef;)I
.registers 15
.prologue
const/16 v12, 0x100
const/4 v5, 0x1
const/4 v2, 0x0
.line 179
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
if-lt v0, v1, :cond_b5
.line 180
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-eqz v0, :cond_bd
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
mul-int/lit8 v0, v0, 0x2
.line 181
:goto_12
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_maxCount:I
invoke-static {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->limitCapacity(II)I
move-result v0
.line 182
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->userSuppliedCapacity:I
invoke-static {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->limitCapacity(II)I
move-result v0
.line 183
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
invoke-static {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->limitCapacity(II)I
move-result v0
.line 184
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
invoke-static {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->limitCapacity(II)I
move-result v0
.line 185
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
invoke-static {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->limitCapacity(II)I
move-result v0
.line 186
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
invoke-static {v0, v1}, Lorg/jbox2d/particle/ParticleSystem;->limitCapacity(II)I
move-result v4
.line 187
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
if-ge v0, v4, :cond_b5
.line 188
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v1, v3, v4, v2}, Lorg/jbox2d/particle/ParticleSystem;->reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;IIZ)[I
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
.line 190
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v1, v3, v4, v2}, Lorg/jbox2d/particle/ParticleSystem;->reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;IIZ)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 192
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v1, v3, v4, v2}, Lorg/jbox2d/particle/ParticleSystem;->reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;IIZ)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 194
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v0, v2, v1, v4, v2}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer([FIIIZ)[F
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
.line 197
const-class v0, Lorg/jbox2d/common/Vec2;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static/range {v0 .. v5}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;IIIZ)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/common/Vec2;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
.line 200
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v0, v2, v1, v4, v5}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer([FIIIZ)[F
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
.line 203
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v1, v3, v4, v5}, Lorg/jbox2d/particle/ParticleSystem;->reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;IIZ)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 205
const-class v6, Lorg/jbox2d/particle/ParticleGroup;
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
iget v9, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
move v8, v2
move v10, v4
move v11, v2
invoke-static/range {v6 .. v11}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;IIIZ)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/particle/ParticleGroup;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
.line 208
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {v1, v2, v4, v5}, Lorg/jbox2d/particle/ParticleSystem;->reallocateBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;IIZ)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 210
iput v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
.line 213
:cond_b5
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
if-lt v0, v1, :cond_c0
.line 214
const/4 v0, -0x1
.line 242
:goto_bc
return v0
:cond_bd
move v0, v12
.line 180
goto/16 :goto_12
.line 216
:cond_c0
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
add-int/lit8 v0, v1, 0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
.line 217
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
iget v2, p1, Lorg/jbox2d/particle/ParticleDef;->flags:I
aput v2, v0, v1
.line 218
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
iget-object v2, p1, Lorg/jbox2d/particle/ParticleDef;->position:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 220
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
iget-object v2, p1, Lorg/jbox2d/particle/ParticleDef;->velocity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 221
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
const/4 v2, 0x0
aput-object v2, v0, v1
.line 222
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
if-eqz v0, :cond_f6
.line 223
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
const/4 v2, 0x0
aput v2, v0, v1
.line 225
:cond_f6
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-nez v0, :cond_100
iget-object v0, p1, Lorg/jbox2d/particle/ParticleDef;->color:Lorg/jbox2d/particle/ParticleColor;
if-eqz v0, :cond_11d
.line 226
:cond_100
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->dataClass:Ljava/lang/Class;
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v3, v3, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-virtual {p0, v2, v3}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v2
iput-object v2, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 227
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/particle/ParticleColor;
aget-object v0, v0, v1
iget-object v2, p1, Lorg/jbox2d/particle/ParticleDef;->color:Lorg/jbox2d/particle/ParticleColor;
invoke-virtual {v0, v2}, Lorg/jbox2d/particle/ParticleColor;->set(Lorg/jbox2d/particle/ParticleColor;)V
.line 229
:cond_11d
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-nez v0, :cond_127
iget-object v0, p1, Lorg/jbox2d/particle/ParticleDef;->userData:Ljava/lang/Object;
if-eqz v0, :cond_13f
.line 230
:cond_127
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->dataClass:Ljava/lang/Class;
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v3, v3, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-virtual {p0, v2, v3}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v2
iput-object v2, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 232
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
iget-object v2, p1, Lorg/jbox2d/particle/ParticleDef;->userData:Ljava/lang/Object;
aput-object v2, v0, v1
.line 234
:cond_13f
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCapacity:I
if-lt v0, v2, :cond_15d
.line 235
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCapacity:I
.line 236
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-eqz v2, :cond_14f
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
mul-int/lit8 v12, v2, 0x2
.line 237
:cond_14f
const-class v2, Lorg/jbox2d/particle/ParticleSystem$Proxy;
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
invoke-static {v2, v3, v0, v12}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;II)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/particle/ParticleSystem$Proxy;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
.line 239
iput v12, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCapacity:I
.line 241
:cond_15d
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
add-int/lit8 v3, v2, 0x1
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
aget-object v0, v0, v2
iput v1, v0, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
move v0, v1
.line 242
goto/16 :goto_bc
.end method
.method public createParticleGroup(Lorg/jbox2d/particle/ParticleGroupDef;)Lorg/jbox2d/particle/ParticleGroup;
.registers 16
.prologue
.line 278
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleStride()F
move-result v6
.line 279
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->tempTransform:Lorg/jbox2d/common/Transform;
.line 280
invoke-virtual {v2}, Lorg/jbox2d/common/Transform;->setIdentity()V
.line 281
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->tempTransform2:Lorg/jbox2d/common/Transform;
.line 282
invoke-virtual {v4}, Lorg/jbox2d/common/Transform;->setIdentity()V
.line 283
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
.line 284
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->shape:Lorg/jbox2d/collision/shapes/Shape;
if-eqz v0, :cond_a3
.line 285
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->tempParticleDef:Lorg/jbox2d/particle/ParticleDef;
.line 286
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->flags:I
iput v0, v5, Lorg/jbox2d/particle/ParticleDef;->flags:I
.line 287
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->color:Lorg/jbox2d/particle/ParticleColor;
iput-object v0, v5, Lorg/jbox2d/particle/ParticleDef;->color:Lorg/jbox2d/particle/ParticleColor;
.line 288
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->userData:Ljava/lang/Object;
iput-object v0, v5, Lorg/jbox2d/particle/ParticleDef;->userData:Ljava/lang/Object;
.line 289
iget-object v7, p1, Lorg/jbox2d/particle/ParticleGroupDef;->shape:Lorg/jbox2d/collision/shapes/Shape;
.line 290
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->position:Lorg/jbox2d/common/Vec2;
iget v1, p1, Lorg/jbox2d/particle/ParticleGroupDef;->angle:F
invoke-virtual {v4, v0, v1}, Lorg/jbox2d/common/Transform;->set(Lorg/jbox2d/common/Vec2;F)V
.line 291
iget-object v8, p0, Lorg/jbox2d/particle/ParticleSystem;->temp:Lorg/jbox2d/collision/AABB;
.line 292
invoke-virtual {v7}, Lorg/jbox2d/collision/shapes/Shape;->getChildCount()I
move-result v1
.line 293
const/4 v0, 0x0
:goto_32
if-ge v0, v1, :cond_45
.line 294
if-nez v0, :cond_3c
.line 295
invoke-virtual {v7, v8, v2, v0}, Lorg/jbox2d/collision/shapes/Shape;->computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V
.line 293
:goto_39
add-int/lit8 v0, v0, 0x1
goto :goto_32
.line 297
:cond_3c
iget-object v9, p0, Lorg/jbox2d/particle/ParticleSystem;->temp2:Lorg/jbox2d/collision/AABB;
.line 298
invoke-virtual {v7, v9, v2, v0}, Lorg/jbox2d/collision/shapes/Shape;->computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V
.line 299
invoke-virtual {v8, v9}, Lorg/jbox2d/collision/AABB;->combine(Lorg/jbox2d/collision/AABB;)V
goto :goto_39
.line 302
:cond_45
iget-object v0, v8, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v9, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 303
iget-object v0, v8, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v10, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 304
iget-object v0, v8, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
div-float/2addr v0, v6
invoke-static {v0}, Lorg/jbox2d/common/MathUtils;->floor(F)I
move-result v0
int-to-float v0, v0
mul-float/2addr v0, v6
move v1, v0
:goto_59
cmpg-float v0, v1, v9
if-gez v0, :cond_a3
.line 306
iget-object v0, v8, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v0, v0, Lorg/jbox2d/common/Vec2;->x:F
div-float/2addr v0, v6
invoke-static {v0}, Lorg/jbox2d/common/MathUtils;->floor(F)I
move-result v0
int-to-float v0, v0
mul-float/2addr v0, v6
:goto_68
cmpg-float v11, v0, v10
if-gez v11, :cond_9f
.line 308
iget-object v11, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 309
iput v0, v11, Lorg/jbox2d/common/Vec2;->x:F
.line 310
iput v1, v11, Lorg/jbox2d/common/Vec2;->y:F
.line 311
invoke-virtual {v7, v2, v11}, Lorg/jbox2d/collision/shapes/Shape;->testPoint(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;)Z
move-result v12
if-eqz v12, :cond_9d
.line 312
invoke-static {v4, v11, v11}, Lorg/jbox2d/common/Transform;->mulToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 313
iget-object v12, v5, Lorg/jbox2d/particle/ParticleDef;->position:Lorg/jbox2d/common/Vec2;
iget v13, v11, Lorg/jbox2d/common/Vec2;->x:F
iput v13, v12, Lorg/jbox2d/common/Vec2;->x:F
.line 314
iget-object v12, v5, Lorg/jbox2d/particle/ParticleDef;->position:Lorg/jbox2d/common/Vec2;
iget v13, v11, Lorg/jbox2d/common/Vec2;->y:F
iput v13, v12, Lorg/jbox2d/common/Vec2;->y:F
.line 315
iget-object v12, p1, Lorg/jbox2d/particle/ParticleGroupDef;->position:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 316
iget v12, p1, Lorg/jbox2d/particle/ParticleGroupDef;->angularVelocity:F
iget-object v13, v5, Lorg/jbox2d/particle/ParticleDef;->velocity:Lorg/jbox2d/common/Vec2;
invoke-static {v12, v11, v13}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 317
iget-object v11, v5, Lorg/jbox2d/particle/ParticleDef;->velocity:Lorg/jbox2d/common/Vec2;
iget-object v12, p1, Lorg/jbox2d/particle/ParticleGroupDef;->linearVelocity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 318
invoke-virtual {p0, v5}, Lorg/jbox2d/particle/ParticleSystem;->createParticle(Lorg/jbox2d/particle/ParticleDef;)I
.line 306
:cond_9d
add-float/2addr v0, v6
goto :goto_68
.line 304
:cond_9f
add-float v0, v1, v6
move v1, v0
goto :goto_59
.line 323
:cond_a3
iget v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
.line 325
new-instance v8, Lorg/jbox2d/particle/ParticleGroup;
invoke-direct {v8}, Lorg/jbox2d/particle/ParticleGroup;-><init>()V
.line 326
iput-object p0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_system:Lorg/jbox2d/particle/ParticleSystem;
.line 327
iput v3, v8, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
.line 328
iput v7, v8, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
.line 329
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->groupFlags:I
iput v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
.line 330
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->strength:F
iput v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_strength:F
.line 331
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->userData:Ljava/lang/Object;
iput-object v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_userData:Ljava/lang/Object;
.line 332
iget-object v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_transform:Lorg/jbox2d/common/Transform;
invoke-virtual {v0, v4}, Lorg/jbox2d/common/Transform;->set(Lorg/jbox2d/common/Transform;)Lorg/jbox2d/common/Transform;
.line 333
iget-boolean v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->destroyAutomatically:Z
iput-boolean v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_destroyAutomatically:Z
.line 334
const/4 v0, 0x0
iput-object v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_prev:Lorg/jbox2d/particle/ParticleGroup;
.line 335
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
iput-object v0, v8, Lorg/jbox2d/particle/ParticleGroup;->m_next:Lorg/jbox2d/particle/ParticleGroup;
.line 336
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
if-eqz v0, :cond_d4
.line 337
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
iput-object v8, v0, Lorg/jbox2d/particle/ParticleGroup;->m_prev:Lorg/jbox2d/particle/ParticleGroup;
.line 339
:cond_d4
iput-object v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
.line 340
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
move v0, v3
.line 341
:goto_dd
if-ge v0, v7, :cond_e6
.line 342
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
aput-object v8, v1, v0
.line 341
add-int/lit8 v0, v0, 0x1
goto :goto_dd
.line 345
:cond_e6
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lorg/jbox2d/particle/ParticleSystem;->updateContacts(Z)V
.line 346
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->flags:I
and-int/lit8 v0, v0, 0x8
if-eqz v0, :cond_15b
.line 347
const/4 v0, 0x0
move v1, v0
:goto_f2
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v1, v0, :cond_15b
.line 348
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v9, v0, v1
.line 349
iget v0, v9, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 350
iget v2, v9, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 351
if-le v0, v2, :cond_19c
move v4, v0
move v5, v2
.line 356
:goto_102
if-gt v3, v5, :cond_153
if-ge v4, v7, :cond_153
.line 357
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
if-lt v0, v2, :cond_125
.line 358
iget v10, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
.line 359
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
if-eqz v0, :cond_157
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
mul-int/lit8 v0, v0, 0x2
move v2, v0
.line 361
:goto_117
const-class v0, Lorg/jbox2d/particle/ParticleSystem$Pair;
iget-object v11, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
invoke-static {v0, v11, v10, v2}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;II)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/particle/ParticleSystem$Pair;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
.line 363
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
.line 365
:cond_125
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
aget-object v2, v0, v2
.line 366
iput v5, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
.line 367
iput v4, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
.line 368
iget v0, v9, Lorg/jbox2d/particle/ParticleContact;->flags:I
iput v0, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->flags:I
.line 369
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->strength:F
iput v0, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->strength:F
.line 370
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v5, v0, v5
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
invoke-static {v5, v0}, Lorg/jbox2d/common/MathUtils;->distance(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
iput v0, v2, Lorg/jbox2d/particle/ParticleSystem$Pair;->distance:F
.line 371
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
.line 347
:cond_153
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_f2
.line 359
:cond_157
const/16 v0, 0x100
move v2, v0
goto :goto_117
.line 375
:cond_15b
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->flags:I
and-int/lit8 v0, v0, 0x10
if-eqz v0, :cond_192
.line 376
new-instance v2, Lorg/jbox2d/particle/VoronoiDiagram;
sub-int v0, v7, v3
invoke-direct {v2, v0}, Lorg/jbox2d/particle/VoronoiDiagram;-><init>(I)V
move v1, v3
.line 377
:goto_169
if-ge v1, v7, :cond_17a
.line 378
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
invoke-virtual {v2, v0, v1}, Lorg/jbox2d/particle/VoronoiDiagram;->addGenerator(Lorg/jbox2d/common/Vec2;I)V
.line 377
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_169
.line 380
:cond_17a
const/high16 v0, 0x40000000 # 2.0f
div-float v0, v6, v0
invoke-virtual {v2, v0}, Lorg/jbox2d/particle/VoronoiDiagram;->generate(F)V
.line 381
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->createParticleGroupCallback:Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
iput-object p0, v0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;
.line 382
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->createParticleGroupCallback:Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
iput-object p1, v0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->def:Lorg/jbox2d/particle/ParticleGroupDef;
.line 383
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->createParticleGroupCallback:Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
iput v3, v0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->firstIndex:I
.line 384
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->createParticleGroupCallback:Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
invoke-virtual {v2, v0}, Lorg/jbox2d/particle/VoronoiDiagram;->getNodes(Lorg/jbox2d/particle/VoronoiDiagram$VoronoiDiagramCallback;)V
.line 386
:cond_192
iget v0, p1, Lorg/jbox2d/particle/ParticleGroupDef;->groupFlags:I
and-int/lit8 v0, v0, 0x1
if-eqz v0, :cond_19b
.line 387
invoke-virtual {p0, v8}, Lorg/jbox2d/particle/ParticleSystem;->computeDepthForGroup(Lorg/jbox2d/particle/ParticleGroup;)V
.line 390
:cond_19b
return-object v8
:cond_19c
move v4, v2
move v5, v0
goto/16 :goto_102
.end method
.method public destroyParticle(IZ)V
.registers 6
.prologue
.line 246
const/4 v0, 0x2
.line 247
if-eqz p2, :cond_5
.line 248
const/16 v0, 0x202
.line 250
:cond_5
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v2, v1, p1
or-int/2addr v0, v2
aput v0, v1, p1
.line 251
return-void
.end method
.method destroyParticleGroup(Lorg/jbox2d/particle/ParticleGroup;)V
.registers 5
.prologue
.line 467
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_e
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
if-gtz v0, :cond_e
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 468
:cond_e
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_1a
if-nez p1, :cond_1a
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 470
:cond_1a
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getParticleDestructionListener()Lorg/jbox2d/callbacks/ParticleDestructionListener;
move-result-object v0
if-eqz v0, :cond_2b
.line 471
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/World;->getParticleDestructionListener()Lorg/jbox2d/callbacks/ParticleDestructionListener;
move-result-object v0
invoke-interface {v0, p1}, Lorg/jbox2d/callbacks/ParticleDestructionListener;->sayGoodbye(Lorg/jbox2d/particle/ParticleGroup;)V
.line 474
:cond_2b
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
:goto_2d
iget v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v1, :cond_39
.line 475
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
const/4 v2, 0x0
aput-object v2, v1, v0
.line 474
add-int/lit8 v0, v0, 0x1
goto :goto_2d
.line 478
:cond_39
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_prev:Lorg/jbox2d/particle/ParticleGroup;
if-eqz v0, :cond_43
.line 479
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_prev:Lorg/jbox2d/particle/ParticleGroup;
iget-object v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_next:Lorg/jbox2d/particle/ParticleGroup;
iput-object v1, v0, Lorg/jbox2d/particle/ParticleGroup;->m_next:Lorg/jbox2d/particle/ParticleGroup;
.line 481
:cond_43
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_next:Lorg/jbox2d/particle/ParticleGroup;
if-eqz v0, :cond_4d
.line 482
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_next:Lorg/jbox2d/particle/ParticleGroup;
iget-object v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_prev:Lorg/jbox2d/particle/ParticleGroup;
iput-object v1, v0, Lorg/jbox2d/particle/ParticleGroup;->m_prev:Lorg/jbox2d/particle/ParticleGroup;
.line 484
:cond_4d
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
if-ne p1, v0, :cond_55
.line 485
iget-object v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_next:Lorg/jbox2d/particle/ParticleGroup;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
.line 488
:cond_55
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
.line 489
return-void
.end method
.method public destroyParticlesInGroup(Lorg/jbox2d/particle/ParticleGroup;Z)V
.registers 5
.prologue
.line 264
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
:goto_2
iget v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v1, :cond_c
.line 265
invoke-virtual {p0, v0, p2}, Lorg/jbox2d/particle/ParticleSystem;->destroyParticle(IZ)V
.line 264
add-int/lit8 v0, v0, 0x1
goto :goto_2
.line 267
:cond_c
return-void
.end method
.method public destroyParticlesInShape(Lorg/jbox2d/collision/shapes/Shape;Lorg/jbox2d/common/Transform;Z)I
.registers 7
.prologue
.line 257
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->dpcallback:Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;
invoke-virtual {v0, p0, p1, p2, p3}, Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;->init(Lorg/jbox2d/particle/ParticleSystem;Lorg/jbox2d/collision/shapes/Shape;Lorg/jbox2d/common/Transform;Z)V
.line 258
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->temp:Lorg/jbox2d/collision/AABB;
const/4 v1, 0x0
invoke-virtual {p1, v0, p2, v1}, Lorg/jbox2d/collision/shapes/Shape;->computeAABB(Lorg/jbox2d/collision/AABB;Lorg/jbox2d/common/Transform;I)V
.line 259
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->dpcallback:Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->temp:Lorg/jbox2d/collision/AABB;
invoke-virtual {v0, v1, v2}, Lorg/jbox2d/dynamics/World;->queryAABB(Lorg/jbox2d/callbacks/ParticleQueryCallback;Lorg/jbox2d/collision/AABB;)V
.line 260
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->dpcallback:Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;
iget v0, v0, Lorg/jbox2d/particle/ParticleSystem$DestroyParticlesInShapeCallback;->destroyed:I
return v0
.end method
.method getCriticalPressure(Lorg/jbox2d/dynamics/TimeStep;)F
.registers 4
.prologue
.line 1509
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalVelocitySquared(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v1
mul-float/2addr v0, v1
return v0
.end method
.method getCriticalVelocity(Lorg/jbox2d/dynamics/TimeStep;)F
.registers 4
.prologue
.line 1500
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
iget v1, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
mul-float/2addr v0, v1
return v0
.end method
.method getCriticalVelocitySquared(Lorg/jbox2d/dynamics/TimeStep;)F
.registers 3
.prologue
.line 1504
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalVelocity(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v0
.line 1505
mul-float/2addr v0, v0
return v0
.end method
.method public getParticleColorBuffer()[Lorg/jbox2d/particle/ParticleColor;
.registers 4
.prologue
.line 1538
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Lorg/jbox2d/particle/ParticleColor;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-virtual {p0, v1, v2}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 1539
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/particle/ParticleColor;
return-object v0
.end method
.method public getParticleCount()I
.registers 2
.prologue
.line 1603
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
return v0
.end method
.method public getParticleDamping()F
.registers 2
.prologue
.line 1492
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_dampingStrength:F
return v0
.end method
.method public getParticleDensity()F
.registers 2
.prologue
.line 1476
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
return v0
.end method
.method public getParticleFlagsBuffer()[I
.registers 2
.prologue
.line 1526
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
return-object v0
.end method
.method public getParticleGravityScale()F
.registers 2
.prologue
.line 1484
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_gravityScale:F
return v0
.end method
.method public getParticleGroupBuffer()[Lorg/jbox2d/particle/ParticleGroup;
.registers 2
.prologue
.line 1591
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
return-object v0
.end method
.method public getParticleGroupCount()I
.registers 2
.prologue
.line 1595
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupCount:I
return v0
.end method
.method public getParticleGroupList()[Lorg/jbox2d/particle/ParticleGroup;
.registers 2
.prologue
.line 1599
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
return-object v0
.end method
.method getParticleInvMass()F
.registers 3
.prologue
.line 1522
const v0, 0x3fe38e32
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDensity:F
mul-float/2addr v0, v1
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v0, v1
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v0, v1
return v0
.end method
.method getParticleMass()F
.registers 3
.prologue
.line 1517
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleStride()F
move-result v0
.line 1518
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
mul-float/2addr v1, v0
mul-float/2addr v0, v1
return v0
.end method
.method public getParticleMaxCount()I
.registers 2
.prologue
.line 1548
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_maxCount:I
return v0
.end method
.method public getParticlePositionBuffer()[Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 1530
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getParticleRadius()F
.registers 3
.prologue
.line 1496
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
const/high16 v1, 0x40000000 # 2.0f
div-float/2addr v0, v1
return v0
.end method
.method getParticleStride()F
.registers 3
.prologue
.line 1513
const/high16 v0, 0x3f400000 # 0.75f
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
mul-float/2addr v0, v1
return v0
.end method
.method public getParticleUserDataBuffer()[Ljava/lang/Object;
.registers 4
.prologue
.line 1543
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Ljava/lang/Object;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-virtual {p0, v1, v2}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 1544
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
return-object v0
.end method
.method public getParticleVelocityBuffer()[Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 1534
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public joinParticleGroups(Lorg/jbox2d/particle/ParticleGroup;Lorg/jbox2d/particle/ParticleGroup;)V
.registers 12
.prologue
const/4 v2, 0x0
.line 394
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_d
if-ne p1, p2, :cond_d
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 395
:cond_d
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
iget v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
invoke-virtual {p0, v0, v1, v3}, Lorg/jbox2d/particle/ParticleSystem;->RotateBuffer(III)V
.line 396
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_26
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-eq v0, v1, :cond_26
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 397
:cond_26
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
iget v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iget v3, p2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
invoke-virtual {p0, v0, v1, v3}, Lorg/jbox2d/particle/ParticleSystem;->RotateBuffer(III)V
.line 398
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_3f
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iget v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-eq v0, v1, :cond_3f
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 401
:cond_3f
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
move v1, v2
:goto_42
iget v3, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v3, :cond_50
.line 402
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v3, v3, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v3, v3, v0
or-int/2addr v1, v3
.line 401
add-int/lit8 v0, v0, 0x1
goto :goto_42
.line 405
:cond_50
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lorg/jbox2d/particle/ParticleSystem;->updateContacts(Z)V
.line 406
and-int/lit8 v0, v1, 0x8
if-eqz v0, :cond_d2
.line 407
:goto_58
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v2, v0, :cond_d2
.line 408
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v6, v0, v2
.line 409
iget v0, v6, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 410
iget v3, v6, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 411
if-le v0, v3, :cond_13f
move v4, v3
move v3, v0
.line 416
:goto_68
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-gt v0, v4, :cond_cb
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v4, v0, :cond_cb
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
if-gt v0, v3, :cond_cb
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v3, v0, :cond_cb
.line 418
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
if-lt v0, v5, :cond_97
.line 419
iget v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
.line 420
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
if-eqz v0, :cond_ce
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
mul-int/lit8 v0, v0, 0x2
move v5, v0
.line 422
:goto_89
const-class v0, Lorg/jbox2d/particle/ParticleSystem$Pair;
iget-object v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
invoke-static {v0, v8, v7, v5}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;II)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/particle/ParticleSystem$Pair;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
.line 424
iput v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCapacity:I
.line 426
:cond_97
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
aget-object v5, v0, v5
.line 427
iput v4, v5, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
.line 428
iput v3, v5, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
.line 429
iget v0, v6, Lorg/jbox2d/particle/ParticleContact;->flags:I
iput v0, v5, Lorg/jbox2d/particle/ParticleSystem$Pair;->flags:I
.line 430
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_strength:F
iget v6, p2, Lorg/jbox2d/particle/ParticleGroup;->m_strength:F
invoke-static {v0, v6}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v0
iput v0, v5, Lorg/jbox2d/particle/ParticleSystem$Pair;->strength:F
.line 431
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v4
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v3
invoke-static {v4, v0}, Lorg/jbox2d/common/MathUtils;->distance(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
iput v0, v5, Lorg/jbox2d/particle/ParticleSystem$Pair;->distance:F
.line 432
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
.line 407
:cond_cb
add-int/lit8 v2, v2, 0x1
goto :goto_58
.line 420
:cond_ce
const/16 v0, 0x100
move v5, v0
goto :goto_89
.line 436
:cond_d2
and-int/lit8 v0, v1, 0x10
if-eqz v0, :cond_118
.line 437
new-instance v2, Lorg/jbox2d/particle/VoronoiDiagram;
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iget v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
sub-int/2addr v0, v1
invoke-direct {v2, v0}, Lorg/jbox2d/particle/VoronoiDiagram;-><init>(I)V
.line 438
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
move v1, v0
:goto_e3
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v1, v0, :cond_100
.line 439
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v0, v0, v1
and-int/lit8 v0, v0, 0x2
if-nez v0, :cond_fc
.line 440
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
invoke-virtual {v2, v0, v1}, Lorg/jbox2d/particle/VoronoiDiagram;->addGenerator(Lorg/jbox2d/common/Vec2;I)V
.line 438
:cond_fc
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_e3
.line 443
:cond_100
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleStride()F
move-result v0
const/high16 v1, 0x40000000 # 2.0f
div-float/2addr v0, v1
invoke-virtual {v2, v0}, Lorg/jbox2d/particle/VoronoiDiagram;->generate(F)V
.line 444
new-instance v0, Lorg/jbox2d/particle/ParticleSystem$JoinParticleGroupsCallback;
invoke-direct {v0}, Lorg/jbox2d/particle/ParticleSystem$JoinParticleGroupsCallback;-><init>()V
.line 445
iput-object p0, v0, Lorg/jbox2d/particle/ParticleSystem$JoinParticleGroupsCallback;->system:Lorg/jbox2d/particle/ParticleSystem;
.line 446
iput-object p1, v0, Lorg/jbox2d/particle/ParticleSystem$JoinParticleGroupsCallback;->groupA:Lorg/jbox2d/particle/ParticleGroup;
.line 447
iput-object p2, v0, Lorg/jbox2d/particle/ParticleSystem$JoinParticleGroupsCallback;->groupB:Lorg/jbox2d/particle/ParticleGroup;
.line 448
invoke-virtual {v2, v0}, Lorg/jbox2d/particle/VoronoiDiagram;->getNodes(Lorg/jbox2d/particle/VoronoiDiagram$VoronoiDiagramCallback;)V
.line 451
:cond_118
iget v0, p2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
:goto_11a
iget v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v1, :cond_125
.line 452
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
aput-object p1, v1, v0
.line 451
add-int/lit8 v0, v0, 0x1
goto :goto_11a
.line 454
:cond_125
iget v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
iget v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
or-int/2addr v0, v1
.line 455
iput v0, p1, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
.line 456
iget v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iput v1, p1, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
.line 457
iget v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
iput v1, p2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
.line 458
invoke-virtual {p0, p2}, Lorg/jbox2d/particle/ParticleSystem;->destroyParticleGroup(Lorg/jbox2d/particle/ParticleGroup;)V
.line 460
and-int/lit8 v0, v0, 0x1
if-eqz v0, :cond_13e
.line 461
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->computeDepthForGroup(Lorg/jbox2d/particle/ParticleGroup;)V
.line 463
:cond_13e
return-void
:cond_13f
move v4, v0
goto/16 :goto_68
.end method
.method public queryAABB(Lorg/jbox2d/callbacks/ParticleQueryCallback;Lorg/jbox2d/collision/AABB;)V
.registers 13
.prologue
.line 1643
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-nez v0, :cond_5
.line 1666
:cond_4
return-void
.line 1647
:cond_5
iget-object v0, p2, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v2, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1648
iget-object v0, p2, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v3, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1649
iget-object v0, p2, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v4, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1650
iget-object v0, p2, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v5, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1651
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
iget v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v6, v2
iget v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v7, v3
invoke-static {v6, v7}, Lorg/jbox2d/particle/ParticleSystem;->computeTag(FF)J
move-result-wide v6
invoke-static {v0, v1, v6, v7}, Lorg/jbox2d/particle/ParticleSystem;->lowerBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
move-result v0
.line 1654
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
iget v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
iget v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v7, v4
iget v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
mul-float/2addr v8, v5
invoke-static {v7, v8}, Lorg/jbox2d/particle/ParticleSystem;->computeTag(FF)J
move-result-wide v8
invoke-static {v1, v6, v8, v9}, Lorg/jbox2d/particle/ParticleSystem;->upperBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
move-result v6
move v1, v0
.line 1657
:goto_3a
if-ge v1, v6, :cond_4
.line 1658
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v0, v0, v1
iget v7, v0, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
.line 1659
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v7
.line 1660
iget v8, v0, Lorg/jbox2d/common/Vec2;->x:F
cmpg-float v8, v2, v8
if-gez v8, :cond_68
iget v8, v0, Lorg/jbox2d/common/Vec2;->x:F
cmpg-float v8, v8, v4
if-gez v8, :cond_68
iget v8, v0, Lorg/jbox2d/common/Vec2;->y:F
cmpg-float v8, v3, v8
if-gez v8, :cond_68
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
cmpg-float v0, v0, v5
if-gez v0, :cond_68
.line 1661
invoke-interface {p1, v7}, Lorg/jbox2d/callbacks/ParticleQueryCallback;->reportParticle(I)Z
move-result v0
if-eqz v0, :cond_4
.line 1657
:cond_68
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_3a
.end method
.method public raycast(Lorg/jbox2d/callbacks/ParticleRaycastCallback;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.registers 20
.prologue
.line 1674
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-nez v2, :cond_7
.line 1732
:cond_6
:goto_6
return-void
.line 1677
:cond_7
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
move-object/from16 v0, p2
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p3
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
invoke-static {v5, v6}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v5
mul-float/2addr v4, v5
const/high16 v5, 0x3f800000 # 1.0f
sub-float/2addr v4, v5
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
move-object/from16 v0, p2
iget v6, v0, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p3
iget v7, v0, Lorg/jbox2d/common/Vec2;->y:F
invoke-static {v6, v7}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v6
mul-float/2addr v5, v6
const/high16 v6, 0x3f800000 # 1.0f
sub-float/2addr v5, v6
invoke-static {v4, v5}, Lorg/jbox2d/particle/ParticleSystem;->computeTag(FF)J
move-result-wide v4
invoke-static {v2, v3, v4, v5}, Lorg/jbox2d/particle/ParticleSystem;->lowerBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
move-result v4
.line 1683
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
move-object/from16 v0, p2
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p3
iget v7, v0, Lorg/jbox2d/common/Vec2;->x:F
invoke-static {v6, v7}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v6
mul-float/2addr v5, v6
const/high16 v6, 0x3f800000 # 1.0f
add-float/2addr v5, v6
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
move-object/from16 v0, p2
iget v7, v0, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p3
iget v8, v0, Lorg/jbox2d/common/Vec2;->y:F
invoke-static {v7, v8}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v7
mul-float/2addr v6, v7
const/high16 v7, 0x3f800000 # 1.0f
add-float/2addr v6, v7
invoke-static {v5, v6}, Lorg/jbox2d/particle/ParticleSystem;->computeTag(FF)J
move-result-wide v6
invoke-static {v2, v3, v6, v7}, Lorg/jbox2d/particle/ParticleSystem;->upperBound([Lorg/jbox2d/particle/ParticleSystem$Proxy;IJ)I
move-result v6
.line 1689
const/high16 v5, 0x3f800000 # 1.0f
.line 1693
move-object/from16 v0, p3
iget v2, v0, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p2
iget v3, v0, Lorg/jbox2d/common/Vec2;->x:F
sub-float v7, v2, v3
.line 1694
move-object/from16 v0, p3
iget v2, v0, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p2
iget v3, v0, Lorg/jbox2d/common/Vec2;->y:F
sub-float v8, v2, v3
.line 1695
mul-float v2, v7, v7
mul-float v3, v8, v8
add-float/2addr v2, v3
.line 1696
const/4 v3, 0x0
cmpl-float v3, v2, v3
if-nez v3, :cond_13f
const v2, 0x7f7fffff # Float.MAX_VALUE
move v3, v2
:goto_9b
move v15, v4
move v4, v5
move v5, v15
.line 1697
:goto_9e
if-ge v5, v6, :cond_6
.line 1698
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v2, v2, v5
iget v9, v2, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
.line 1699
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v2, [Lorg/jbox2d/common/Vec2;
aget-object v2, v2, v9
.line 1700
move-object/from16 v0, p2
iget v10, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v11, v2, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v10, v11
.line 1701
move-object/from16 v0, p2
iget v11, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v2, v2, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v11, v2
.line 1702
mul-float v2, v10, v7
mul-float v12, v11, v8
add-float/2addr v12, v2
.line 1703
mul-float v2, v10, v10
mul-float v13, v11, v11
add-float/2addr v2, v13
.line 1704
mul-float v13, v12, v12
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/particle/ParticleSystem;->m_squaredDiameter:F
sub-float/2addr v2, v14
mul-float/2addr v2, v3
sub-float v2, v13, v2
.line 1705
const/4 v13, 0x0
cmpl-float v13, v2, v13
if-ltz v13, :cond_13d
.line 1706
invoke-static {v2}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v13
.line 1708
neg-float v2, v12
sub-float/2addr v2, v13
div-float/2addr v2, v3
.line 1709
cmpl-float v14, v2, v4
if-lez v14, :cond_ea
move v2, v4
.line 1697
:cond_e5
:goto_e5
add-int/lit8 v4, v5, 0x1
move v5, v4
move v4, v2
goto :goto_9e
.line 1712
:cond_ea
const/4 v14, 0x0
cmpg-float v14, v2, v14
if-gez v14, :cond_fd
.line 1713
neg-float v2, v12
add-float/2addr v2, v13
div-float/2addr v2, v3
.line 1714
const/4 v12, 0x0
cmpg-float v12, v2, v12
if-ltz v12, :cond_13d
cmpl-float v12, v2, v4
if-lez v12, :cond_fd
move v2, v4
.line 1715
goto :goto_e5
.line 1718
:cond_fd
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 1719
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
mul-float v14, v2, v7
add-float/2addr v10, v14
iput v10, v13, Lorg/jbox2d/common/Vec2;->x:F
.line 1720
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
mul-float v13, v2, v8
add-float/2addr v11, v13
iput v11, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 1721
invoke-virtual {v12}, Lorg/jbox2d/common/Vec2;->normalize()F
.line 1722
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/particle/ParticleSystem;->tempVec2:Lorg/jbox2d/common/Vec2;
.line 1723
move-object/from16 v0, p2
iget v11, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float v13, v2, v7
add-float/2addr v11, v13
iput v11, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 1724
move-object/from16 v0, p2
iget v11, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float v13, v2, v8
add-float/2addr v11, v13
iput v11, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 1725
move-object/from16 v0, p1
invoke-interface {v0, v9, v10, v12, v2}, Lorg/jbox2d/callbacks/ParticleRaycastCallback;->reportParticle(ILorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;F)F
move-result v2
.line 1726
invoke-static {v4, v2}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v2
.line 1727
const/4 v4, 0x0
cmpg-float v4, v2, v4
if-gtz v4, :cond_e5
goto/16 :goto_6
:cond_13d
move v2, v4
goto :goto_e5
:cond_13f
move v3, v2
goto/16 :goto_9b
.end method
.method requestParticleBuffer([F)[F
.registers 3
.prologue
.line 1784
if-nez p1, :cond_6
.line 1785
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
new-array p1, v0, [F
.line 1787
:cond_6
return-object p1
.end method
.method requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class",
"<TT;>;[TT;)[TT;"
}
.end annotation
.prologue
.line 1770
if-nez p2, :cond_21
.line 1771
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
invoke-static {p1, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/Object;
check-cast v0, [Ljava/lang/Object;
.line 1772
const/4 v1, 0x0
:goto_d
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_internalAllocatedCapacity:I
if-ge v1, v2, :cond_22
.line 1774
:try_start_11
invoke-virtual {p1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v2
aput-object v2, v0, v1
:try_end_17
.catch Ljava/lang/Exception; {:try_start_11 .. :try_end_17} :catch_1a
.line 1772
add-int/lit8 v1, v1, 0x1
goto :goto_d
.line 1775
:catch_1a
move-exception v0
.line 1776
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
:cond_21
move-object v0, p2
.line 1780
:cond_22
return-object v0
.end method
.method setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;[Ljava/lang/Object;I)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer",
"<TT;>;[TT;I)V"
}
.end annotation
.prologue
.line 1566
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_12
if-eqz p2, :cond_8
if-nez p3, :cond_12
:cond_8
if-nez p2, :cond_c
if-eqz p3, :cond_12
:cond_c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1567
:cond_12
iget v0, p1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
if-eqz v0, :cond_16
.line 1570
:cond_16
iput-object p2, p1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 1571
iput p3, p1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->userSuppliedCapacity:I
.line 1572
return-void
.end method
.method setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;[II)V
.registers 5
.prologue
.line 1557
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_12
if-eqz p2, :cond_8
if-nez p3, :cond_12
:cond_8
if-nez p2, :cond_c
if-eqz p3, :cond_12
:cond_c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1558
:cond_12
iget v0, p1, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->userSuppliedCapacity:I
if-eqz v0, :cond_16
.line 1561
:cond_16
iput-object p2, p1, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
.line 1562
iput p3, p1, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->userSuppliedCapacity:I
.line 1563
return-void
.end method
.method public setParticleColorBuffer([Lorg/jbox2d/particle/ParticleColor;I)V
.registers 4
.prologue
.line 1587
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
invoke-virtual {p0, v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;[Ljava/lang/Object;I)V
.line 1588
return-void
.end method
.method public setParticleDamping(F)V
.registers 2
.prologue
.line 1488
iput p1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_dampingStrength:F
.line 1489
return-void
.end method
.method public setParticleDensity(F)V
.registers 4
.prologue
.line 1471
iput p1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
.line 1472
const/high16 v0, 0x3f800000 # 1.0f
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
div-float/2addr v0, v1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDensity:F
.line 1473
return-void
.end method
.method public setParticleFlagsBuffer([II)V
.registers 4
.prologue
.line 1575
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
invoke-virtual {p0, v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;[II)V
.line 1576
return-void
.end method
.method public setParticleGravityScale(F)V
.registers 2
.prologue
.line 1480
iput p1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_gravityScale:F
.line 1481
return-void
.end method
.method public setParticleMaxCount(I)V
.registers 3
.prologue
.line 1552
sget-boolean v0, Lorg/jbox2d/particle/ParticleSystem;->$assertionsDisabled:Z
if-nez v0, :cond_e
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-le v0, p1, :cond_e
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1553
:cond_e
iput p1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_maxCount:I
.line 1554
return-void
.end method
.method public setParticlePositionBuffer([Lorg/jbox2d/common/Vec2;I)V
.registers 4
.prologue
.line 1579
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
invoke-virtual {p0, v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;[Ljava/lang/Object;I)V
.line 1580
return-void
.end method
.method public setParticleRadius(F)V
.registers 4
.prologue
.line 1465
const/high16 v0, 0x40000000 # 2.0f
mul-float/2addr v0, p1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
.line 1466
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
mul-float/2addr v0, v1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_squaredDiameter:F
.line 1467
const/high16 v0, 0x3f800000 # 1.0f
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
div-float/2addr v0, v1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
.line 1468
return-void
.end method
.method public setParticleUserDataBuffer([Ljava/lang/Object;I)V
.registers 4
.prologue
.line 1607
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
invoke-virtual {p0, v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;[Ljava/lang/Object;I)V
.line 1608
return-void
.end method
.method public setParticleVelocityBuffer([Lorg/jbox2d/common/Vec2;I)V
.registers 4
.prologue
.line 1583
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
invoke-virtual {p0, v0, p1, p2}, Lorg/jbox2d/particle/ParticleSystem;->setParticleBuffer(Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;[Ljava/lang/Object;I)V
.line 1584
return-void
.end method
.method public solve(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 11
.prologue
const/4 v1, 0x0
.line 686
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_timestamp:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_timestamp:I
.line 687
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-nez v0, :cond_c
.line 756
:cond_b
:goto_b
return-void
.line 690
:cond_c
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
move v0, v1
.line 691
:goto_f
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v0, v2, :cond_21
.line 692
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v3, v3, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v3, v3, v0
or-int/2addr v2, v3
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
.line 691
add-int/lit8 v0, v0, 0x1
goto :goto_f
.line 694
:cond_21
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x2
if-eqz v0, :cond_2a
.line 695
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->solveZombie()V
.line 697
:cond_2a
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-eqz v0, :cond_b
.line 700
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allGroupFlags:I
.line 701
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
:goto_32
if-eqz v0, :cond_40
.line 702
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allGroupFlags:I
iget v3, v0, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
or-int/2addr v2, v3
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allGroupFlags:I
.line 701
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleGroup;->getNext()Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
goto :goto_32
.line 704
:cond_40
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_gravityScale:F
mul-float/2addr v0, v2
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
invoke-virtual {v2}, Lorg/jbox2d/dynamics/World;->getGravity()Lorg/jbox2d/common/Vec2;
move-result-object v2
iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F
mul-float v3, v0, v2
.line 705
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_gravityScale:F
mul-float/2addr v0, v2
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
invoke-virtual {v2}, Lorg/jbox2d/dynamics/World;->getGravity()Lorg/jbox2d/common/Vec2;
move-result-object v2
iget v2, v2, Lorg/jbox2d/common/Vec2;->y:F
mul-float v4, v0, v2
.line 706
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalVelocitySquared(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v5
move v2, v1
.line 707
:goto_63
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v2, v0, :cond_a5
.line 708
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v6, v0, v2
.line 709
iget v0, v6, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v0, v3
iput v0, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 710
iget v0, v6, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v0, v4
iput v0, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 711
iget v0, v6, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v0, v7
iget v7, v6, Lorg/jbox2d/common/Vec2;->y:F
iget v8, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v8
add-float/2addr v0, v7
.line 712
cmpl-float v7, v0, v5
if-lez v7, :cond_9a
.line 713
const/4 v7, 0x0
cmpl-float v7, v0, v7
if-nez v7, :cond_9e
const v0, 0x7f7fffff # Float.MAX_VALUE
.line 714
:goto_90
iget v7, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v0
iput v7, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 715
iget v7, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v7
iput v0, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 707
:cond_9a
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_63
.line 713
:cond_9e
div-float v0, v5, v0
invoke-static {v0}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v0
goto :goto_90
.line 718
:cond_a5
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveCollision(Lorg/jbox2d/dynamics/TimeStep;)V
.line 719
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allGroupFlags:I
and-int/lit8 v0, v0, 0x2
if-eqz v0, :cond_b1
.line 720
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveRigid(Lorg/jbox2d/dynamics/TimeStep;)V
.line 722
:cond_b1
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x4
if-eqz v0, :cond_ba
.line 723
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveWall(Lorg/jbox2d/dynamics/TimeStep;)V
:cond_ba
move v2, v1
.line 725
:goto_bb
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v2, v0, :cond_e7
.line 726
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v3, v0, v2
.line 727
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v2
.line 728
iget v4, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v5, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v6
add-float/2addr v4, v5
iput v4, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 729
iget v4, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v5, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v5
add-float/2addr v0, v4
iput v0, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 725
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_bb
.line 731
:cond_e7
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->updateBodyContacts()V
.line 732
invoke-virtual {p0, v1}, Lorg/jbox2d/particle/ParticleSystem;->updateContacts(Z)V
.line 733
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x20
if-eqz v0, :cond_f6
.line 734
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveViscous(Lorg/jbox2d/dynamics/TimeStep;)V
.line 736
:cond_f6
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x40
if-eqz v0, :cond_ff
.line 737
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solvePowder(Lorg/jbox2d/dynamics/TimeStep;)V
.line 739
:cond_ff
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit16 v0, v0, 0x80
if-eqz v0, :cond_108
.line 740
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveTensile(Lorg/jbox2d/dynamics/TimeStep;)V
.line 742
:cond_108
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x10
if-eqz v0, :cond_111
.line 743
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveElastic(Lorg/jbox2d/dynamics/TimeStep;)V
.line 745
:cond_111
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x8
if-eqz v0, :cond_11a
.line 746
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveSpring(Lorg/jbox2d/dynamics/TimeStep;)V
.line 748
:cond_11a
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allGroupFlags:I
and-int/lit8 v0, v0, 0x1
if-eqz v0, :cond_123
.line 749
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveSolid(Lorg/jbox2d/dynamics/TimeStep;)V
.line 751
:cond_123
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit16 v0, v0, 0x100
if-eqz v0, :cond_12c
.line 752
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveColorMixing(Lorg/jbox2d/dynamics/TimeStep;)V
.line 754
:cond_12c
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solvePressure(Lorg/jbox2d/dynamics/TimeStep;)V
.line 755
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->solveDamping(Lorg/jbox2d/dynamics/TimeStep;)V
goto/16 :goto_b
.end method
.method public solveCollision(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 13
.prologue
const v1, 0x7f7fffff # Float.MAX_VALUE
const v0, -0x800001
.line 657
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->temp:Lorg/jbox2d/collision/AABB;
.line 658
iget-object v8, v7, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
.line 659
iget-object v9, v7, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
.line 660
iput v1, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 661
iput v1, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 662
iput v0, v9, Lorg/jbox2d/common/Vec2;->x:F
.line 663
iput v0, v9, Lorg/jbox2d/common/Vec2;->y:F
.line 664
const/4 v0, 0x0
move v1, v0
:goto_16
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v1, v0, :cond_83
.line 665
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v3, v0, v1
.line 666
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
.line 667
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 668
iget v2, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 669
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v4, v3, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v0, v4
add-float v6, v5, v0
.line 670
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v3
add-float v3, v2, v0
.line 671
cmpg-float v0, v5, v6
if-gez v0, :cond_7b
move v4, v5
.line 672
:goto_41
cmpg-float v0, v2, v3
if-gez v0, :cond_7d
move v0, v2
.line 673
:goto_46
iget v10, v8, Lorg/jbox2d/common/Vec2;->x:F
cmpg-float v10, v10, v4
if-gez v10, :cond_4e
iget v4, v8, Lorg/jbox2d/common/Vec2;->x:F
:cond_4e
iput v4, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 674
iget v4, v8, Lorg/jbox2d/common/Vec2;->y:F
cmpg-float v4, v4, v0
if-gez v4, :cond_58
iget v0, v8, Lorg/jbox2d/common/Vec2;->y:F
:cond_58
iput v0, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 675
cmpl-float v0, v5, v6
if-lez v0, :cond_7f
move v0, v5
.line 676
:goto_5f
cmpl-float v4, v2, v3
if-lez v4, :cond_81
.line 677
:goto_63
iget v3, v9, Lorg/jbox2d/common/Vec2;->x:F
cmpl-float v3, v3, v0
if-lez v3, :cond_6b
iget v0, v9, Lorg/jbox2d/common/Vec2;->x:F
:cond_6b
iput v0, v9, Lorg/jbox2d/common/Vec2;->x:F
.line 678
iget v0, v9, Lorg/jbox2d/common/Vec2;->y:F
cmpl-float v0, v0, v2
if-lez v0, :cond_75
iget v2, v9, Lorg/jbox2d/common/Vec2;->y:F
:cond_75
iput v2, v9, Lorg/jbox2d/common/Vec2;->y:F
.line 664
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_16
:cond_7b
move v4, v6
.line 671
goto :goto_41
:cond_7d
move v0, v3
.line 672
goto :goto_46
:cond_7f
move v0, v6
.line 675
goto :goto_5f
:cond_81
move v2, v3
.line 676
goto :goto_63
.line 680
:cond_83
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->sccallback:Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;
iput-object p1, v0, Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;->step:Lorg/jbox2d/dynamics/TimeStep;
.line 681
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->sccallback:Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;
iput-object p0, v0, Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;->system:Lorg/jbox2d/particle/ParticleSystem;
.line 682
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->sccallback:Lorg/jbox2d/particle/ParticleSystem$SolveCollisionCallback;
invoke-virtual {v0, v1, v7}, Lorg/jbox2d/dynamics/World;->queryAABB(Lorg/jbox2d/callbacks/QueryCallback;Lorg/jbox2d/collision/AABB;)V
.line 683
return-void
.end method
.method solveColorMixing(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 11
.prologue
.line 1169
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
const-class v1, Lorg/jbox2d/particle/ParticleColor;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
invoke-virtual {p0, v1, v2}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v1
iput-object v1, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
.line 1170
const/high16 v0, 0x43800000 # 256.0f
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorMixingStrength:F
mul-float/2addr v0, v1
float-to-int v2, v0
.line 1171
const/4 v0, 0x0
move v1, v0
:goto_16
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v1, v0, :cond_97
.line 1172
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v1
.line 1173
iget v3, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1174
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1175
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v0, v0, v3
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v5, v5, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v5, v5, v4
and-int/2addr v0, v5
and-int/lit16 v0, v0, 0x100
if-eqz v0, :cond_93
.line 1176
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/particle/ParticleColor;
aget-object v3, v0, v3
.line 1177
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/particle/ParticleColor;
aget-object v0, v0, v4
.line 1178
iget-byte v4, v0, Lorg/jbox2d/particle/ParticleColor;->r:B
iget-byte v5, v3, Lorg/jbox2d/particle/ParticleColor;->r:B
sub-int/2addr v4, v5
mul-int/2addr v4, v2
shr-int/lit8 v4, v4, 0x8
.line 1179
iget-byte v5, v0, Lorg/jbox2d/particle/ParticleColor;->g:B
iget-byte v6, v3, Lorg/jbox2d/particle/ParticleColor;->g:B
sub-int/2addr v5, v6
mul-int/2addr v5, v2
shr-int/lit8 v5, v5, 0x8
.line 1180
iget-byte v6, v0, Lorg/jbox2d/particle/ParticleColor;->b:B
iget-byte v7, v3, Lorg/jbox2d/particle/ParticleColor;->b:B
sub-int/2addr v6, v7
mul-int/2addr v6, v2
shr-int/lit8 v6, v6, 0x8
.line 1181
iget-byte v7, v0, Lorg/jbox2d/particle/ParticleColor;->a:B
iget-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->a:B
sub-int/2addr v7, v8
mul-int/2addr v7, v2
shr-int/lit8 v7, v7, 0x8
.line 1182
iget-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->r:B
add-int/2addr v8, v4
int-to-byte v8, v8
iput-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->r:B
.line 1183
iget-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->g:B
add-int/2addr v8, v5
int-to-byte v8, v8
iput-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->g:B
.line 1184
iget-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->b:B
add-int/2addr v8, v6
int-to-byte v8, v8
iput-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->b:B
.line 1185
iget-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->a:B
add-int/2addr v8, v7
int-to-byte v8, v8
iput-byte v8, v3, Lorg/jbox2d/particle/ParticleColor;->a:B
.line 1186
iget-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->r:B
sub-int/2addr v3, v4
int-to-byte v3, v3
iput-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->r:B
.line 1187
iget-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->g:B
sub-int/2addr v3, v5
int-to-byte v3, v3
iput-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->g:B
.line 1188
iget-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->b:B
sub-int/2addr v3, v6
int-to-byte v3, v3
iput-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->b:B
.line 1189
iget-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->a:B
sub-int/2addr v3, v7
int-to-byte v3, v3
iput-byte v3, v0, Lorg/jbox2d/particle/ParticleColor;->a:B
.line 1171
:cond_93
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_16
.line 1192
:cond_97
return-void
.end method
.method solveDamping(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 16
.prologue
const/4 v2, 0x0
const/4 v13, 0x0
.line 837
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_dampingStrength:F
move v1, v2
.line 838
:goto_5
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v1, v0, :cond_97
.line 839
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v0, v0, v1
.line 840
iget v4, v0, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 841
iget-object v5, v0, Lorg/jbox2d/particle/ParticleBodyContact;->body:Lorg/jbox2d/dynamics/Body;
.line 842
iget v6, v0, Lorg/jbox2d/particle/ParticleBodyContact;->weight:F
.line 843
iget v7, v0, Lorg/jbox2d/particle/ParticleBodyContact;->mass:F
.line 844
iget-object v8, v0, Lorg/jbox2d/particle/ParticleBodyContact;->normal:Lorg/jbox2d/common/Vec2;
.line 845
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v9, v0, v4
.line 846
iget v0, v9, Lorg/jbox2d/common/Vec2;->x:F
iget-object v10, v5, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v10, v10, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->x:F
sub-float v10, v0, v10
.line 847
iget v0, v9, Lorg/jbox2d/common/Vec2;->y:F
iget-object v11, v5, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v11, v11, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v11, v11, Lorg/jbox2d/common/Vec2;->y:F
sub-float v11, v0, v11
.line 848
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
.line 850
iget v4, v5, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
neg-float v4, v4
mul-float/2addr v4, v11
iget-object v11, v5, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v11, v11, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v4, v11
iget v11, v0, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v4, v11
.line 851
iget v11, v5, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
mul-float/2addr v10, v11
iget-object v11, v5, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v11, v11, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v10, v11
iget v11, v0, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v10, v11
.line 853
iget v11, v8, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v11
iget v11, v8, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v10, v11
add-float/2addr v4, v10
.line 854
cmpg-float v10, v4, v13
if-gez v10, :cond_92
.line 855
iget-object v10, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 856
mul-float v11, v3, v6
mul-float/2addr v11, v7
mul-float/2addr v11, v4
iget v12, v8, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v11, v12
iput v11, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 857
mul-float/2addr v6, v3
mul-float/2addr v6, v7
mul-float/2addr v4, v6
iget v6, v8, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v6
iput v4, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 858
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleInvMass()F
move-result v4
.line 859
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v4
add-float/2addr v6, v7
iput v6, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 860
iget v6, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v7
add-float/2addr v4, v6
iput v4, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 861
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
neg-float v0, v0
iput v0, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 862
iget v0, v10, Lorg/jbox2d/common/Vec2;->y:F
neg-float v0, v0
iput v0, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 863
const/4 v0, 0x1
invoke-virtual {v5, v10, v9, v0}, Lorg/jbox2d/dynamics/Body;->applyLinearImpulse(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Z)V
.line 838
:cond_92
add-int/lit8 v0, v1, 0x1
move v1, v0
goto/16 :goto_5
.line 866
:cond_97
:goto_97
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v2, v0, :cond_ee
.line 867
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v2
.line 868
iget v1, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 869
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 870
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 871
iget-object v6, v0, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 872
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v1, v0, v1
.line 873
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
.line 874
iget v4, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v1, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v4, v7
.line 875
iget v7, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v8, v1, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v7, v8
.line 876
iget v8, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v8
iget v8, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v8
add-float/2addr v4, v7
.line 877
cmpg-float v7, v4, v13
if-gez v7, :cond_eb
.line 878
mul-float v7, v3, v5
mul-float/2addr v7, v4
iget v8, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v8
.line 879
mul-float/2addr v5, v3
mul-float/2addr v4, v5
iget v5, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v5
.line 880
iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v5, v7
iput v5, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 881
iget v5, v1, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v5, v4
iput v5, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 882
iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v1, v7
iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 883
iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 866
:cond_eb
add-int/lit8 v2, v2, 0x1
goto :goto_97
.line 886
:cond_ee
return-void
.end method
.method solveElastic(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 23
.prologue
.line 930
move-object/from16 v0, p1
iget v1, v0, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/particle/ParticleSystem;->m_elasticStrength:F
mul-float v3, v1, v2
.line 931
const/4 v1, 0x0
move v2, v1
:goto_c
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I
if-ge v2, v1, :cond_15a
.line 932
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aget-object v4, v1, v2
.line 933
iget v1, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->flags:I
and-int/lit8 v1, v1, 0x10
if-eqz v1, :cond_14b
.line 934
iget v5, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexA:I
.line 935
iget v6, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexB:I
.line 936
iget v7, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexC:I
.line 937
iget-object v8, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->pa:Lorg/jbox2d/common/Vec2;
.line 938
iget-object v9, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->pb:Lorg/jbox2d/common/Vec2;
.line 939
iget-object v10, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->pc:Lorg/jbox2d/common/Vec2;
.line 940
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v1, [Lorg/jbox2d/common/Vec2;
aget-object v11, v1, v5
.line 941
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v1, [Lorg/jbox2d/common/Vec2;
aget-object v12, v1, v6
.line 942
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v1, [Lorg/jbox2d/common/Vec2;
aget-object v13, v1, v7
.line 943
const v1, 0x3eaaaaab
iget v14, v11, Lorg/jbox2d/common/Vec2;->x:F
iget v15, v12, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v14, v15
iget v15, v13, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v14, v15
mul-float/2addr v14, v1
.line 944
const v1, 0x3eaaaaab
iget v15, v11, Lorg/jbox2d/common/Vec2;->y:F
iget v0, v12, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v16, v0
add-float v15, v15, v16
iget v0, v13, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v16, v0
add-float v15, v15, v16
mul-float/2addr v15, v1
.line 945
invoke-static {v8, v11}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
invoke-static {v9, v12}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v16
add-float v1, v1, v16
invoke-static {v10, v13}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v16
add-float v16, v16, v1
.line 946
invoke-static {v8, v11}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
invoke-static {v9, v12}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v17
add-float v1, v1, v17
invoke-static {v10, v13}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v17
add-float v17, v17, v1
.line 947
mul-float v1, v16, v16
mul-float v18, v17, v17
add-float v1, v1, v18
.line 948
const/16 v18, 0x0
cmpl-float v18, v1, v18
if-nez v18, :cond_150
const v1, 0x7f7fffff # Float.MAX_VALUE
.line 949
:goto_95
mul-float v16, v16, v1
.line 950
mul-float v1, v1, v17
.line 951
iget v4, v4, Lorg/jbox2d/particle/ParticleSystem$Triad;->strength:F
mul-float/2addr v4, v3
.line 952
iget v0, v8, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v17, v0
mul-float v17, v17, v1
iget v0, v8, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v18, v0
mul-float v18, v18, v16
sub-float v17, v17, v18
.line 953
iget v0, v8, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v18, v0
mul-float v18, v18, v16
iget v8, v8, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v8, v1
add-float v8, v8, v18
.line 954
iget v0, v9, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v18, v0
mul-float v18, v18, v1
iget v0, v9, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
mul-float v19, v19, v16
sub-float v18, v18, v19
.line 955
iget v0, v9, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v19, v19, v16
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v9, v1
add-float v9, v9, v19
.line 956
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v19, v19, v1
iget v0, v10, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v20, v0
mul-float v20, v20, v16
sub-float v19, v19, v20
.line 957
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v20, v0
mul-float v16, v16, v20
iget v10, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v1, v10
add-float v10, v16, v1
.line 958
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v1, [Lorg/jbox2d/common/Vec2;
aget-object v5, v1, v5
.line 959
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v1, [Lorg/jbox2d/common/Vec2;
aget-object v6, v1, v6
.line 960
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v1, [Lorg/jbox2d/common/Vec2;
aget-object v1, v1, v7
.line 961
iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F
iget v0, v11, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v16, v0
sub-float v16, v16, v14
sub-float v16, v17, v16
mul-float v16, v16, v4
add-float v7, v7, v16
iput v7, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 962
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
iget v11, v11, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v11, v15
sub-float/2addr v8, v11
mul-float/2addr v8, v4
add-float/2addr v7, v8
iput v7, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 963
iget v5, v6, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v12, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v7, v14
sub-float v7, v18, v7
mul-float/2addr v7, v4
add-float/2addr v5, v7
iput v5, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 964
iget v5, v6, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v12, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v7, v15
sub-float v7, v9, v7
mul-float/2addr v7, v4
add-float/2addr v5, v7
iput v5, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 965
iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v13, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v6, v14
sub-float v6, v19, v6
mul-float/2addr v6, v4
add-float/2addr v5, v6
iput v5, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 966
iget v5, v1, Lorg/jbox2d/common/Vec2;->y:F
iget v6, v13, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v6, v15
sub-float v6, v10, v6
mul-float/2addr v4, v6
add-float/2addr v4, v5
iput v4, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 931
:cond_14b
add-int/lit8 v1, v2, 0x1
move v2, v1
goto/16 :goto_c
.line 948
:cond_150
const/high16 v18, 0x3f800000 # 1.0f
div-float v1, v18, v1
invoke-static {v1}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v1
goto/16 :goto_95
.line 969
:cond_15a
return-void
.end method
.method solvePowder(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 14
.prologue
const/4 v2, 0x0
.line 1096
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_powderStrength:F
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalVelocity(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v1
mul-float v3, v0, v1
.line 1097
const/high16 v4, 0x3e800000 # 0.25f
move v1, v2
.line 1098
:goto_c
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v1, v0, :cond_68
.line 1099
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v5, v0, v1
.line 1100
iget v6, v5, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 1101
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v0, v0, v6
and-int/lit8 v0, v0, 0x40
if-eqz v0, :cond_64
.line 1102
iget v7, v5, Lorg/jbox2d/particle/ParticleBodyContact;->weight:F
.line 1103
cmpl-float v0, v7, v4
if-lez v0, :cond_64
.line 1104
iget-object v8, v5, Lorg/jbox2d/particle/ParticleBodyContact;->body:Lorg/jbox2d/dynamics/Body;
.line 1105
iget v9, v5, Lorg/jbox2d/particle/ParticleBodyContact;->mass:F
.line 1106
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v10, v0, v6
.line 1107
iget-object v5, v5, Lorg/jbox2d/particle/ParticleBodyContact;->normal:Lorg/jbox2d/common/Vec2;
.line 1108
iget-object v11, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 1109
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v6
.line 1110
mul-float v6, v3, v9
sub-float/2addr v7, v4
mul-float/2addr v6, v7
.line 1111
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleInvMass()F
move-result v7
.line 1112
iget v9, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v9, v6
iput v9, v11, Lorg/jbox2d/common/Vec2;->x:F
.line 1113
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v6
iput v5, v11, Lorg/jbox2d/common/Vec2;->y:F
.line 1114
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v11, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v7
sub-float/2addr v5, v6
iput v5, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1115
iget v5, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v6, v11, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v7
sub-float/2addr v5, v6
iput v5, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1116
const/4 v0, 0x1
invoke-virtual {v8, v11, v10, v0}, Lorg/jbox2d/dynamics/Body;->applyLinearImpulse(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Z)V
.line 1098
:cond_64
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_c
.line 1120
:cond_68
:goto_68
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v2, v0, :cond_b1
.line 1121
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v2
.line 1122
iget v1, v0, Lorg/jbox2d/particle/ParticleContact;->flags:I
and-int/lit8 v1, v1, 0x40
if-eqz v1, :cond_ae
.line 1123
iget v1, v0, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 1124
cmpl-float v5, v1, v4
if-lez v5, :cond_ae
.line 1125
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1126
iget v6, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1127
iget-object v7, v0, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 1128
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v5, v0, v5
.line 1129
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v6
.line 1130
sub-float/2addr v1, v4
mul-float/2addr v1, v3
.line 1131
iget v6, v7, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v1
.line 1132
iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v1, v7
.line 1133
iget v7, v5, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v7, v6
iput v7, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 1134
iget v7, v5, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v7, v1
iput v7, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 1135
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v5, v6
iput v5, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1136
iget v5, v0, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v1, v5
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1120
:cond_ae
add-int/lit8 v2, v2, 0x1
goto :goto_68
.line 1140
:cond_b1
return-void
.end method
.method solvePressure(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 14
.prologue
const/4 v7, 0x0
const/4 v1, 0x0
.line 761
move v0, v1
:goto_3
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v0, v2, :cond_e
.line 762
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aput v7, v2, v0
.line 761
add-int/lit8 v0, v0, 0x1
goto :goto_3
:cond_e
move v0, v1
.line 764
:goto_f
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v0, v2, :cond_25
.line 765
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v2, v2, v0
.line 766
iget v3, v2, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 767
iget v2, v2, Lorg/jbox2d/particle/ParticleBodyContact;->weight:F
.line 768
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v5, v4, v3
add-float/2addr v2, v5
aput v2, v4, v3
.line 764
add-int/lit8 v0, v0, 0x1
goto :goto_f
:cond_25
move v0, v1
.line 770
:goto_26
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v0, v2, :cond_45
.line 771
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v2, v2, v0
.line 772
iget v3, v2, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 773
iget v4, v2, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 774
iget v2, v2, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 775
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v6, v5, v3
add-float/2addr v6, v2
aput v6, v5, v3
.line 776
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v5, v3, v4
add-float/2addr v2, v5
aput v2, v3, v4
.line 770
add-int/lit8 v0, v0, 0x1
goto :goto_26
.line 779
:cond_45
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_allParticleFlags:I
and-int/lit8 v0, v0, 0x40
if-eqz v0, :cond_61
move v0, v1
.line 780
:goto_4c
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v0, v2, :cond_61
.line 781
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v2, v2, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v2, v2, v0
and-int/lit8 v2, v2, 0x40
if-eqz v2, :cond_5e
.line 782
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aput v7, v2, v0
.line 780
:cond_5e
add-int/lit8 v0, v0, 0x1
goto :goto_4c
.line 787
:cond_61
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pressureStrength:F
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalPressure(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v2
mul-float v3, v0, v2
move v0, v1
.line 788
:goto_6a
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v0, v2, :cond_87
.line 789
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v2, v2, v0
.line 790
const/high16 v4, 0x40a00000 # 5.0f
invoke-static {v2, v4}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v2
const/high16 v4, 0x3f800000 # 1.0f
sub-float/2addr v2, v4
invoke-static {v7, v2}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v2
mul-float/2addr v2, v3
.line 794
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aput v2, v4, v0
.line 788
add-int/lit8 v0, v0, 0x1
goto :goto_6a
.line 797
:cond_87
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_density:F
iget v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
mul-float/2addr v2, v4
div-float v4, v0, v2
move v2, v1
.line 798
:goto_91
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v2, v0, :cond_e6
.line 799
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v0, v0, v2
.line 800
iget v5, v0, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 801
iget-object v6, v0, Lorg/jbox2d/particle/ParticleBodyContact;->body:Lorg/jbox2d/dynamics/Body;
.line 802
iget v7, v0, Lorg/jbox2d/particle/ParticleBodyContact;->weight:F
.line 803
iget v8, v0, Lorg/jbox2d/particle/ParticleBodyContact;->mass:F
.line 804
iget-object v9, v0, Lorg/jbox2d/particle/ParticleBodyContact;->normal:Lorg/jbox2d/common/Vec2;
.line 805
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v10, v0, v5
.line 806
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v0, v0, v5
mul-float v11, v3, v7
add-float/2addr v0, v11
.line 807
iget-object v11, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 808
mul-float/2addr v7, v4
mul-float/2addr v7, v8
mul-float/2addr v0, v7
.line 809
iget v7, v9, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v0
iput v7, v11, Lorg/jbox2d/common/Vec2;->x:F
.line 810
iget v7, v9, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v7
iput v0, v11, Lorg/jbox2d/common/Vec2;->y:F
.line 811
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v5
.line 812
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleInvMass()F
move-result v5
.line 813
iget v7, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v8, v11, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v8, v5
sub-float/2addr v7, v8
iput v7, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 814
iget v7, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v8, v11, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v8
sub-float v5, v7, v5
iput v5, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 815
const/4 v0, 0x1
invoke-virtual {v6, v11, v10, v0}, Lorg/jbox2d/dynamics/Body;->applyLinearImpulse(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Z)V
.line 798
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_91
.line 817
:cond_e6
:goto_e6
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v1, v0, :cond_131
.line 818
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v1
.line 819
iget v2, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 820
iget v3, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 821
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 822
iget-object v0, v0, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 823
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v6, v6, v2
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v7, v7, v3
add-float/2addr v6, v7
.line 824
mul-float v7, v4, v5
mul-float/2addr v7, v6
iget v8, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v8
.line 825
mul-float/2addr v5, v4
mul-float/2addr v5, v6
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v0
.line 826
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v2, v0, v2
.line 827
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v3
.line 828
iget v3, v2, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v3, v7
iput v3, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 829
iget v3, v2, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v3, v5
iput v3, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 830
iget v2, v0, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v2, v7
iput v2, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 831
iget v2, v0, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v2, v5
iput v2, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 817
add-int/lit8 v1, v1, 0x1
goto :goto_e6
.line 833
:cond_131
return-void
.end method
.method solveRigid(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 8
.prologue
.line 904
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
move-object v2, v0
:goto_3
if-eqz v2, :cond_ab
.line 905
iget v0, v2, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
and-int/lit8 v0, v0, 0x2
if-eqz v0, :cond_a4
.line 906
invoke-virtual {v2}, Lorg/jbox2d/particle/ParticleGroup;->updateStatistics()V
.line 907
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 908
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec2:Lorg/jbox2d/common/Vec2;
.line 909
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->tempRot:Lorg/jbox2d/common/Rot;
.line 910
iget v4, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v5, v2, Lorg/jbox2d/particle/ParticleGroup;->m_angularVelocity:F
mul-float/2addr v4, v5
invoke-virtual {v3, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 911
iget-object v4, v2, Lorg/jbox2d/particle/ParticleGroup;->m_center:Lorg/jbox2d/common/Vec2;
invoke-static {v3, v4, v1}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 912
iget-object v4, v2, Lorg/jbox2d/particle/ParticleGroup;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget v5, p1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
invoke-virtual {v4, v5}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget-object v5, v2, Lorg/jbox2d/particle/ParticleGroup;->m_center:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v5}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 913
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 914
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v0, v0, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
invoke-virtual {v0, v3}, Lorg/jbox2d/common/Rot;->set(Lorg/jbox2d/common/Rot;)Lorg/jbox2d/common/Rot;
.line 915
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v1, v2, Lorg/jbox2d/particle/ParticleGroup;->m_transform:Lorg/jbox2d/common/Transform;
iget-object v3, v2, Lorg/jbox2d/particle/ParticleGroup;->m_transform:Lorg/jbox2d/common/Transform;
invoke-static {v0, v1, v3}, Lorg/jbox2d/common/Transform;->mulToOut(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Transform;)V
.line 916
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf2:Lorg/jbox2d/common/Transform;
.line 917
iget-object v0, v3, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
iget v1, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v4, v4, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
iget v4, v4, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 918
iget-object v0, v3, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
iget v1, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v4, v4, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 919
iget-object v0, v3, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget v1, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v4, v4, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget v4, v4, Lorg/jbox2d/common/Rot;->s:F
mul-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Rot;->s:F
.line 920
iget-object v0, v3, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget v1, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->tempXf:Lorg/jbox2d/common/Transform;
iget-object v4, v4, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget v4, v4, Lorg/jbox2d/common/Rot;->c:F
const/high16 v5, 0x3f800000 # 1.0f
sub-float/2addr v4, v5
mul-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Rot;->c:F
.line 921
iget v0, v2, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
move v1, v0
:goto_89
iget v0, v2, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v1, v0, :cond_a4
.line 922
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v1
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
invoke-static {v3, v4, v0}, Lorg/jbox2d/common/Transform;->mulToOutUnsafe(Lorg/jbox2d/common/Transform;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 921
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_89
.line 904
:cond_a4
invoke-virtual {v2}, Lorg/jbox2d/particle/ParticleGroup;->getNext()Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
move-object v2, v0
goto/16 :goto_3
.line 927
:cond_ab
return-void
.end method
.method solveSolid(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 10
.prologue
.line 1144
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
invoke-virtual {p0, v0}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer([F)[F
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
.line 1145
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_ejectionStrength:F
mul-float v2, v0, v1
.line 1146
const/4 v0, 0x0
move v1, v0
:goto_10
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v1, v0, :cond_64
.line 1147
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v1
.line 1148
iget v3, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1149
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1150
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
aget-object v5, v5, v3
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
aget-object v6, v6, v4
if-eq v5, v6, :cond_60
.line 1151
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 1152
iget-object v6, v0, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 1153
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v0, v0, v3
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v7, v7, v4
add-float/2addr v7, v0
.line 1154
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v3, v0, v3
.line 1155
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
.line 1156
mul-float v4, v2, v7
mul-float/2addr v4, v5
.line 1157
iget v5, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v4
.line 1158
iget v6, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v6
.line 1159
iget v6, v3, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v6, v5
iput v6, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 1160
iget v6, v3, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v6, v4
iput v6, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 1161
iget v3, v0, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v3, v5
iput v3, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1162
iget v3, v0, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v3, v4
iput v3, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1146
:cond_60
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_10
.line 1165
:cond_64
return-void
.end method
.method solveSpring(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 12
.prologue
.line 972
iget v0, p1, Lorg/jbox2d/dynamics/TimeStep;->inv_dt:F
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_springStrength:F
mul-float v2, v0, v1
.line 973
const/4 v0, 0x0
move v1, v0
:goto_8
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
if-ge v1, v0, :cond_7e
.line 974
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aget-object v3, v0, v1
.line 975
iget v0, v3, Lorg/jbox2d/particle/ParticleSystem$Pair;->flags:I
and-int/lit8 v0, v0, 0x8
if-eqz v0, :cond_7a
.line 976
iget v4, v3, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
.line 977
iget v5, v3, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
.line 978
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v6, v0, v4
.line 979
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v5
.line 980
iget v7, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v8, v6, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v7, v8
.line 981
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v6, v6, Lorg/jbox2d/common/Vec2;->y:F
sub-float v6, v0, v6
.line 982
iget v8, v3, Lorg/jbox2d/particle/ParticleSystem$Pair;->distance:F
.line 983
mul-float v0, v7, v7
mul-float v9, v6, v6
add-float/2addr v0, v9
invoke-static {v0}, Lorg/jbox2d/common/MathUtils;->sqrt(F)F
move-result v0
.line 984
const/4 v9, 0x0
cmpl-float v9, v0, v9
if-nez v9, :cond_48
const v0, 0x7f7fffff # Float.MAX_VALUE
.line 985
:cond_48
iget v3, v3, Lorg/jbox2d/particle/ParticleSystem$Pair;->strength:F
mul-float/2addr v3, v2
.line 986
sub-float v9, v8, v0
mul-float/2addr v9, v3
div-float/2addr v9, v0
mul-float/2addr v7, v9
.line 987
sub-float/2addr v8, v0
mul-float/2addr v3, v8
div-float v0, v3, v0
mul-float v3, v0, v6
.line 988
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v4
.line 989
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v5
.line 990
iget v5, v4, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v5, v7
iput v5, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 991
iget v5, v4, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v5, v3
iput v5, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 992
iget v4, v0, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v4, v7
iput v4, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 993
iget v4, v0, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v3, v4
iput v3, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 973
:cond_7a
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_8
.line 996
:cond_7e
return-void
.end method
.method solveTensile(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 14
.prologue
const/4 v1, 0x0
.line 999
const-class v0, Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
invoke-virtual {p0, v0, v2}, Lorg/jbox2d/particle/ParticleSystem;->requestParticleBuffer(Ljava/lang/Class;[Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lorg/jbox2d/common/Vec2;
iput-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
move v0, v1
.line 1000
:goto_e
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v0, v2, :cond_21
.line 1001
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
const/4 v3, 0x0
aput v3, v2, v0
.line 1002
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
aget-object v2, v2, v0
invoke-virtual {v2}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 1000
add-int/lit8 v0, v0, 0x1
goto :goto_e
:cond_21
move v0, v1
.line 1004
:goto_22
iget v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v0, v2, :cond_75
.line 1005
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v2, v2, v0
.line 1006
iget v3, v2, Lorg/jbox2d/particle/ParticleContact;->flags:I
and-int/lit16 v3, v3, 0x80
if-eqz v3, :cond_72
.line 1007
iget v3, v2, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1008
iget v4, v2, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1009
iget v5, v2, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 1010
iget-object v2, v2, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 1011
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v7, v6, v3
add-float/2addr v7, v5
aput v7, v6, v3
.line 1012
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v7, v6, v4
add-float/2addr v7, v5
aput v7, v6, v4
.line 1013
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
aget-object v3, v6, v3
.line 1014
iget-object v6, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
aget-object v4, v6, v4
.line 1015
const/high16 v6, 0x3f800000 # 1.0f
sub-float/2addr v6, v5
mul-float/2addr v5, v6
.line 1016
iget v6, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v2, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v5
sub-float/2addr v6, v7
iput v6, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 1017
iget v6, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v2, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v5
sub-float/2addr v6, v7
iput v6, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 1018
iget v3, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v2, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v5
add-float/2addr v3, v6
iput v3, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 1019
iget v3, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v2, v2, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v2, v5
add-float/2addr v2, v3
iput v2, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 1004
:cond_72
add-int/lit8 v0, v0, 0x1
goto :goto_22
.line 1022
:cond_75
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_surfaceTensionStrengthA:F
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalVelocity(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v2
mul-float/2addr v2, v0
.line 1023
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_surfaceTensionStrengthB:F
invoke-virtual {p0, p1}, Lorg/jbox2d/particle/ParticleSystem;->getCriticalVelocity(Lorg/jbox2d/dynamics/TimeStep;)F
move-result v3
mul-float/2addr v3, v0
.line 1024
:goto_83
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v1, v0, :cond_f1
.line 1025
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v1
.line 1026
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->flags:I
and-int/lit16 v4, v4, 0x80
if-eqz v4, :cond_ee
.line 1027
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1028
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1029
iget v6, v0, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 1030
iget-object v0, v0, Lorg/jbox2d/particle/ParticleContact;->normal:Lorg/jbox2d/common/Vec2;
.line 1031
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
aget-object v7, v7, v4
.line 1032
iget-object v8, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulation2Buffer:[Lorg/jbox2d/common/Vec2;
aget-object v8, v8, v5
.line 1033
iget-object v9, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v9, v9, v4
iget-object v10, p0, Lorg/jbox2d/particle/ParticleSystem;->m_accumulationBuffer:[F
aget v10, v10, v5
add-float/2addr v9, v10
.line 1034
iget v10, v8, Lorg/jbox2d/common/Vec2;->x:F
iget v11, v7, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v10, v11
.line 1035
iget v8, v8, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F
sub-float v7, v8, v7
.line 1036
const/high16 v8, 0x40000000 # 2.0f
sub-float v8, v9, v8
mul-float/2addr v8, v2
iget v9, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v9, v10
iget v10, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v10
add-float/2addr v7, v9
mul-float/2addr v7, v3
add-float/2addr v7, v8
mul-float/2addr v6, v7
.line 1037
iget v7, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v6
.line 1038
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v0
.line 1039
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v4
.line 1040
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v5
.line 1041
iget v5, v4, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v5, v7
iput v5, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 1042
iget v5, v4, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v5, v6
iput v5, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 1043
iget v4, v0, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v4, v7
iput v4, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1044
iget v4, v0, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v4, v6
iput v4, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1024
:cond_ee
add-int/lit8 v1, v1, 0x1
goto :goto_83
.line 1047
:cond_f1
return-void
.end method
.method solveViscous(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 15
.prologue
const/4 v2, 0x0
.line 1050
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_viscousStrength:F
move v1, v2
.line 1051
:goto_4
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v1, v0, :cond_8b
.line 1052
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v0, v0, v1
.line 1053
iget v4, v0, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 1054
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v5, v5, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v5, v5, v4
and-int/lit8 v5, v5, 0x20
if-eqz v5, :cond_86
.line 1055
iget-object v5, v0, Lorg/jbox2d/particle/ParticleBodyContact;->body:Lorg/jbox2d/dynamics/Body;
.line 1056
iget v6, v0, Lorg/jbox2d/particle/ParticleBodyContact;->weight:F
.line 1057
iget v7, v0, Lorg/jbox2d/particle/ParticleBodyContact;->mass:F
.line 1058
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v8, v0, v4
.line 1059
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
.line 1060
iget v4, v8, Lorg/jbox2d/common/Vec2;->x:F
iget-object v9, v5, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v9, v9, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v4, v9
.line 1061
iget v9, v8, Lorg/jbox2d/common/Vec2;->y:F
iget-object v10, v5, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v10, v10, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v9, v10
.line 1062
iget v10, v5, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
neg-float v10, v10
mul-float/2addr v9, v10
iget-object v10, v5, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v9, v10
iget v10, v0, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v9, v10
.line 1063
iget v10, v5, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
mul-float/2addr v4, v10
iget-object v10, v5, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v4, v10
iget v10, v0, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v4, v10
.line 1064
iget-object v10, p0, Lorg/jbox2d/particle/ParticleSystem;->tempVec:Lorg/jbox2d/common/Vec2;
.line 1065
invoke-virtual {p0}, Lorg/jbox2d/particle/ParticleSystem;->getParticleInvMass()F
move-result v11
.line 1066
mul-float v12, v3, v7
mul-float/2addr v12, v6
mul-float/2addr v9, v12
iput v9, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 1067
mul-float/2addr v7, v3
mul-float/2addr v6, v7
mul-float/2addr v4, v6
iput v4, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 1068
iget v4, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v11
add-float/2addr v4, v6
iput v4, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1069
iget v4, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v6, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v11
add-float/2addr v4, v6
iput v4, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1070
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
neg-float v0, v0
iput v0, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 1071
iget v0, v10, Lorg/jbox2d/common/Vec2;->y:F
neg-float v0, v0
iput v0, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 1072
const/4 v0, 0x1
invoke-virtual {v5, v10, v8, v0}, Lorg/jbox2d/dynamics/Body;->applyLinearImpulse(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Z)V
.line 1051
:cond_86
add-int/lit8 v0, v1, 0x1
move v1, v0
goto/16 :goto_4
.line 1075
:cond_8b
:goto_8b
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v2, v0, :cond_d5
.line 1076
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v0, v0, v2
.line 1077
iget v1, v0, Lorg/jbox2d/particle/ParticleContact;->flags:I
and-int/lit8 v1, v1, 0x20
if-eqz v1, :cond_d2
.line 1078
iget v1, v0, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1079
iget v4, v0, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1080
iget v5, v0, Lorg/jbox2d/particle/ParticleContact;->weight:F
.line 1081
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v1, v0, v1
.line 1082
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
.line 1083
iget v4, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v1, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v4, v6
.line 1084
iget v6, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v1, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v6, v7
.line 1085
mul-float v7, v3, v5
mul-float/2addr v4, v7
.line 1086
mul-float/2addr v5, v3
mul-float/2addr v5, v6
.line 1087
iget v6, v1, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v6, v4
iput v6, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 1088
iget v6, v1, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v6, v5
iput v6, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 1089
iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F
sub-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 1090
iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F
sub-float/2addr v1, v5
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 1075
:cond_d2
add-int/lit8 v2, v2, 0x1
goto :goto_8b
.line 1093
:cond_d5
return-void
.end method
.method public solveWall(Lorg/jbox2d/dynamics/TimeStep;)V
.registers 5
.prologue
const/4 v2, 0x0
.line 889
const/4 v0, 0x0
move v1, v0
:goto_3
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v1, v0, :cond_21
.line 890
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v0, v0, v1
and-int/lit8 v0, v0, 0x4
if-eqz v0, :cond_1d
.line 891
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
.line 892
iput v2, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 893
iput v2, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 889
:cond_1d
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_3
.line 896
:cond_21
return-void
.end method
.method solveZombie()V
.registers 11
.prologue
const/4 v6, 0x1
const/4 v2, 0x0
.line 1196
.line 1197
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
new-array v8, v0, [I
move v1, v2
move v3, v2
.line 1198
:goto_8
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v1, v0, :cond_a4
.line 1199
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v0, v0, v1
.line 1200
and-int/lit8 v4, v0, 0x2
if-eqz v4, :cond_2c
.line 1201
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
invoke-virtual {v4}, Lorg/jbox2d/dynamics/World;->getParticleDestructionListener()Lorg/jbox2d/callbacks/ParticleDestructionListener;
move-result-object v4
.line 1202
and-int/lit16 v0, v0, 0x200
if-eqz v0, :cond_25
if-eqz v4, :cond_25
.line 1203
invoke-interface {v4, v1}, Lorg/jbox2d/callbacks/ParticleDestructionListener;->sayGoodbye(I)V
.line 1205
:cond_25
const/4 v0, -0x1
aput v0, v8, v1
.line 1198
:goto_28
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_8
.line 1207
:cond_2c
aput v3, v8, v1
.line 1208
if-eq v1, v3, :cond_a1
.line 1209
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;
iget-object v4, v4, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I
aget v4, v4, v1
aput v4, v0, v3
.line 1210
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v3
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1211
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v4, v0, v3
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_velocityBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 1212
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupBuffer:[Lorg/jbox2d/particle/ParticleGroup;
aget-object v4, v4, v1
aput-object v4, v0, v3
.line 1213
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
if-eqz v0, :cond_76
.line 1214
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_depthBuffer:[F
aget v4, v4, v1
aput v4, v0, v3
.line 1216
:cond_76
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-eqz v0, :cond_8f
.line 1217
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/particle/ParticleColor;
aget-object v4, v0, v3
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_colorBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/particle/ParticleColor;
aget-object v0, v0, v1
invoke-virtual {v4, v0}, Lorg/jbox2d/particle/ParticleColor;->set(Lorg/jbox2d/particle/ParticleColor;)V
.line 1219
:cond_8f
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
if-eqz v0, :cond_a1
.line 1220
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_userDataBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v4, v4, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
aget-object v4, v4, v1
aput-object v4, v0, v3
.line 1223
:cond_a1
add-int/lit8 v3, v3, 0x1
goto :goto_28
:cond_a4
move v0, v2
.line 1228
:goto_a5
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v0, v1, :cond_b6
.line 1229
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v1, v1, v0
.line 1230
iget v4, v1, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
.line 1228
add-int/lit8 v0, v0, 0x1
goto :goto_a5
.line 1237
:cond_b6
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
move v0, v2
.line 1238
:goto_b9
if-ge v0, v1, :cond_dc
.line 1239
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v4, v4, v0
invoke-static {v4}, Lorg/jbox2d/particle/ParticleSystem$Test;->IsProxyInvalid(Lorg/jbox2d/particle/ParticleSystem$Proxy;)Z
move-result v4
if-eqz v4, :cond_d9
.line 1240
add-int/lit8 v1, v1, -0x1
.line 1241
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v4, v4, v1
.line 1242
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v7, v7, v0
aput-object v7, v5, v1
.line 1243
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aput-object v4, v5, v0
.line 1244
add-int/lit8 v0, v0, -0x1
.line 1238
:cond_d9
add-int/lit8 v0, v0, 0x1
goto :goto_b9
.line 1247
:cond_dc
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
move v0, v2
.line 1250
:goto_df
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
if-ge v0, v1, :cond_f6
.line 1251
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v1, v1, v0
.line 1252
iget v4, v1, Lorg/jbox2d/particle/ParticleContact;->indexA:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleContact;->indexA:I
.line 1253
iget v4, v1, Lorg/jbox2d/particle/ParticleContact;->indexB:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleContact;->indexB:I
.line 1250
add-int/lit8 v0, v0, 0x1
goto :goto_df
.line 1259
:cond_f6
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
move v0, v2
.line 1260
:goto_f9
if-ge v0, v1, :cond_11c
.line 1261
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v4, v4, v0
invoke-static {v4}, Lorg/jbox2d/particle/ParticleSystem$Test;->IsContactInvalid(Lorg/jbox2d/particle/ParticleContact;)Z
move-result v4
if-eqz v4, :cond_119
.line 1262
add-int/lit8 v1, v1, -0x1
.line 1263
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v4, v4, v1
.line 1264
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v7, v7, v0
aput-object v7, v5, v1
.line 1265
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aput-object v4, v5, v0
.line 1266
add-int/lit8 v0, v0, -0x1
.line 1260
:cond_119
add-int/lit8 v0, v0, 0x1
goto :goto_f9
.line 1269
:cond_11c
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
move v0, v2
.line 1272
:goto_11f
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
if-ge v0, v1, :cond_130
.line 1273
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v1, v1, v0
.line 1274
iget v4, v1, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleBodyContact;->index:I
.line 1272
add-int/lit8 v0, v0, 0x1
goto :goto_11f
.line 1280
:cond_130
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
move v0, v2
.line 1281
:goto_133
if-ge v0, v1, :cond_156
.line 1282
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v4, v4, v0
invoke-static {v4}, Lorg/jbox2d/particle/ParticleSystem$Test;->IsBodyContactInvalid(Lorg/jbox2d/particle/ParticleBodyContact;)Z
move-result v4
if-eqz v4, :cond_153
.line 1283
add-int/lit8 v1, v1, -0x1
.line 1284
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v4, v4, v1
.line 1285
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aget-object v7, v7, v0
aput-object v7, v5, v1
.line 1286
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactBuffer:[Lorg/jbox2d/particle/ParticleBodyContact;
aput-object v4, v5, v0
.line 1287
add-int/lit8 v0, v0, -0x1
.line 1281
:cond_153
add-int/lit8 v0, v0, 0x1
goto :goto_133
.line 1290
:cond_156
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
move v0, v2
.line 1293
:goto_159
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
if-ge v0, v1, :cond_170
.line 1294
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aget-object v1, v1, v0
.line 1295
iget v4, v1, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexA:I
.line 1296
iget v4, v1, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleSystem$Pair;->indexB:I
.line 1293
add-int/lit8 v0, v0, 0x1
goto :goto_159
.line 1300
:cond_170
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
move v0, v2
.line 1301
:goto_173
if-ge v0, v1, :cond_196
.line 1302
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aget-object v4, v4, v0
invoke-static {v4}, Lorg/jbox2d/particle/ParticleSystem$Test;->IsPairInvalid(Lorg/jbox2d/particle/ParticleSystem$Pair;)Z
move-result v4
if-eqz v4, :cond_193
.line 1303
add-int/lit8 v1, v1, -0x1
.line 1304
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aget-object v4, v4, v1
.line 1305
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aget-object v7, v7, v0
aput-object v7, v5, v1
.line 1306
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairBuffer:[Lorg/jbox2d/particle/ParticleSystem$Pair;
aput-object v4, v5, v0
.line 1307
add-int/lit8 v0, v0, -0x1
.line 1301
:cond_193
add-int/lit8 v0, v0, 0x1
goto :goto_173
.line 1310
:cond_196
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_pairCount:I
move v0, v2
.line 1313
:goto_199
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I
if-ge v0, v1, :cond_1b6
.line 1314
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aget-object v1, v1, v0
.line 1315
iget v4, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexA:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexA:I
.line 1316
iget v4, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexB:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexB:I
.line 1317
iget v4, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexC:I
aget v4, v8, v4
iput v4, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexC:I
.line 1313
add-int/lit8 v0, v0, 0x1
goto :goto_199
.line 1322
:cond_1b6
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I
move v0, v2
.line 1323
:goto_1b9
if-ge v0, v1, :cond_1dc
.line 1324
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aget-object v4, v4, v0
invoke-static {v4}, Lorg/jbox2d/particle/ParticleSystem$Test;->IsTriadInvalid(Lorg/jbox2d/particle/ParticleSystem$Triad;)Z
move-result v4
if-eqz v4, :cond_1d9
.line 1325
add-int/lit8 v1, v1, -0x1
.line 1326
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aget-object v4, v4, v1
.line 1327
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
iget-object v7, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aget-object v7, v7, v0
aput-object v7, v5, v1
.line 1328
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;
aput-object v4, v5, v0
.line 1329
add-int/lit8 v0, v0, -0x1
.line 1323
:cond_1d9
add-int/lit8 v0, v0, 0x1
goto :goto_1b9
.line 1332
:cond_1dc
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I
.line 1335
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
move-object v7, v0
:goto_1e1
if-eqz v7, :cond_220
.line 1339
iget v0, v7, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
move v1, v2
move v4, v2
move v5, v3
:goto_1e8
iget v9, v7, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
if-ge v0, v9, :cond_1ff
.line 1340
aget v9, v8, v0
.line 1341
if-ltz v9, :cond_1fd
.line 1342
invoke-static {v5, v9}, Lorg/jbox2d/common/MathUtils;->min(II)I
move-result v5
.line 1343
add-int/lit8 v9, v9, 0x1
invoke-static {v4, v9}, Lorg/jbox2d/common/MathUtils;->max(II)I
move-result v4
.line 1339
:goto_1fa
add-int/lit8 v0, v0, 0x1
goto :goto_1e8
:cond_1fd
move v1, v6
.line 1345
goto :goto_1fa
.line 1348
:cond_1ff
if-ge v5, v4, :cond_215
.line 1349
iput v5, v7, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
.line 1350
iput v4, v7, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
.line 1351
if-eqz v1, :cond_20f
.line 1352
iget v0, v7, Lorg/jbox2d/particle/ParticleGroup;->m_groupFlags:I
and-int/lit8 v0, v0, 0x2
if-eqz v0, :cond_20f
.line 1353
iput-boolean v6, v7, Lorg/jbox2d/particle/ParticleGroup;->m_toBeSplit:Z
.line 1335
:cond_20f
:goto_20f
invoke-virtual {v7}, Lorg/jbox2d/particle/ParticleGroup;->getNext()Lorg/jbox2d/particle/ParticleGroup;
move-result-object v0
move-object v7, v0
goto :goto_1e1
.line 1357
:cond_215
iput v2, v7, Lorg/jbox2d/particle/ParticleGroup;->m_firstIndex:I
.line 1358
iput v2, v7, Lorg/jbox2d/particle/ParticleGroup;->m_lastIndex:I
.line 1359
iget-boolean v0, v7, Lorg/jbox2d/particle/ParticleGroup;->m_destroyAutomatically:Z
if-eqz v0, :cond_20f
.line 1360
iput-boolean v6, v7, Lorg/jbox2d/particle/ParticleGroup;->m_toBeDestroyed:Z
goto :goto_20f
.line 1366
:cond_220
iput v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
.line 1370
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_groupList:Lorg/jbox2d/particle/ParticleGroup;
:goto_224
if-eqz v0, :cond_238
.line 1371
invoke-virtual {v0}, Lorg/jbox2d/particle/ParticleGroup;->getNext()Lorg/jbox2d/particle/ParticleGroup;
move-result-object v1
.line 1372
iget-boolean v2, v0, Lorg/jbox2d/particle/ParticleGroup;->m_toBeDestroyed:Z
if-eqz v2, :cond_233
.line 1373
invoke-virtual {p0, v0}, Lorg/jbox2d/particle/ParticleSystem;->destroyParticleGroup(Lorg/jbox2d/particle/ParticleGroup;)V
:cond_231
:goto_231
move-object v0, v1
.line 1378
goto :goto_224
.line 1374
:cond_233
iget-boolean v0, v0, Lorg/jbox2d/particle/ParticleGroup;->m_toBeSplit:Z
if-eqz v0, :cond_231
goto :goto_231
.line 1379
:cond_238
return-void
.end method
.method public updateBodyContacts()V
.registers 7
.prologue
const/4 v2, 0x0
const v4, 0x7f7fffff # Float.MAX_VALUE
const v1, -0x800001
.line 634
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->temp:Lorg/jbox2d/collision/AABB;
.line 635
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iput v4, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 636
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iput v4, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 637
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 638
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
move v1, v2
.line 639
:goto_1a
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_count:I
if-ge v1, v0, :cond_38
.line 640
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v1
.line 641
iget-object v4, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget-object v5, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v0, v5}, Lorg/jbox2d/common/Vec2;->minToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 642
iget-object v4, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget-object v5, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v0, v5}, Lorg/jbox2d/common/Vec2;->maxToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 639
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_1a
.line 644
:cond_38
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
sub-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 645
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->lowerBound:Lorg/jbox2d/common/Vec2;
iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
sub-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 646
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v1, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
add-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 647
iget-object v0, v3, Lorg/jbox2d/collision/AABB;->upperBound:Lorg/jbox2d/common/Vec2;
iget v1, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_particleDiameter:F
add-float/2addr v1, v4
iput v1, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 648
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_bodyContactCount:I
.line 650
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->ubccallback:Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;
iput-object p0, v0, Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;->system:Lorg/jbox2d/particle/ParticleSystem;
.line 651
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_world:Lorg/jbox2d/dynamics/World;
iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem;->ubccallback:Lorg/jbox2d/particle/ParticleSystem$UpdateBodyContactsCallback;
invoke-virtual {v0, v1, v3}, Lorg/jbox2d/dynamics/World;->queryAABB(Lorg/jbox2d/callbacks/QueryCallback;Lorg/jbox2d/collision/AABB;)V
.line 652
return-void
.end method
.method public updateContacts(Z)V
.registers 13
.prologue
const/4 v10, 0x1
const/4 v2, 0x0
.line 580
move v1, v2
:goto_3
iget v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v1, v0, :cond_29
.line 581
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v3, v0, v1
.line 582
iget v4, v3, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
.line 583
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_positionBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;
iget-object v0, v0, Lorg/jbox2d/particle/ParticleSystem$ParticleBuffer;->data:[Ljava/lang/Object;
check-cast v0, [Lorg/jbox2d/common/Vec2;
aget-object v0, v0, v4
.line 584
iget v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v5
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_inverseDiameter:F
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v5
invoke-static {v4, v0}, Lorg/jbox2d/particle/ParticleSystem;->computeTag(FF)J
move-result-wide v4
iput-wide v4, v3, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
.line 580
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_3
.line 586
:cond_29
iget-object v0, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
invoke-static {v0, v2, v1}, Ljava/util/Arrays;->sort([Ljava/lang/Object;II)V
.line 587
iput v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
move v0, v2
move v1, v2
.line 589
:goto_34
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v0, v3, :cond_96
.line 590
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v4, v3, v0
.line 591
iget-wide v6, v4, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
invoke-static {v6, v7, v10, v2}, Lorg/jbox2d/particle/ParticleSystem;->computeRelativeTag(JII)J
move-result-wide v6
.line 592
add-int/lit8 v3, v0, 0x1
:goto_44
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v3, v5, :cond_52
.line 593
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v5, v5, v3
.line 594
iget-wide v8, v5, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
cmp-long v8, v6, v8
if-gez v8, :cond_7f
.line 599
:cond_52
iget-wide v6, v4, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
const/4 v3, -0x1
invoke-static {v6, v7, v3, v10}, Lorg/jbox2d/particle/ParticleSystem;->computeRelativeTag(JII)J
move-result-wide v6
.line 600
:goto_59
iget v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v1, v3, :cond_67
.line 601
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v3, v3, v1
.line 602
iget-wide v8, v3, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
cmp-long v3, v6, v8
if-gtz v3, :cond_89
.line 606
:cond_67
iget-wide v6, v4, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
invoke-static {v6, v7, v10, v10}, Lorg/jbox2d/particle/ParticleSystem;->computeRelativeTag(JII)J
move-result-wide v6
move v3, v1
.line 608
:goto_6e
iget v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyCount:I
if-ge v3, v5, :cond_7c
.line 609
iget-object v5, p0, Lorg/jbox2d/particle/ParticleSystem;->m_proxyBuffer:[Lorg/jbox2d/particle/ParticleSystem$Proxy;
aget-object v5, v5, v3
.line 610
iget-wide v8, v5, Lorg/jbox2d/particle/ParticleSystem$Proxy;->tag:J
cmp-long v8, v6, v8
if-gez v8, :cond_8c
.line 589
:cond_7c
add-int/lit8 v0, v0, 0x1
goto :goto_34
.line 597
:cond_7f
iget v8, v4, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
iget v5, v5, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
invoke-virtual {p0, v8, v5}, Lorg/jbox2d/particle/ParticleSystem;->addContact(II)V
.line 592
add-int/lit8 v3, v3, 0x1
goto :goto_44
.line 600
:cond_89
add-int/lit8 v1, v1, 0x1
goto :goto_59
.line 613
:cond_8c
iget v8, v4, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
iget v5, v5, Lorg/jbox2d/particle/ParticleSystem$Proxy;->index:I
invoke-virtual {p0, v8, v5}, Lorg/jbox2d/particle/ParticleSystem;->addContact(II)V
.line 608
add-int/lit8 v3, v3, 0x1
goto :goto_6e
.line 616
:cond_96
if-eqz p1, :cond_c0
.line 617
iget v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
move v0, v2
.line 618
:goto_9b
if-ge v0, v1, :cond_be
.line 619
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v2, v2, v0
iget v2, v2, Lorg/jbox2d/particle/ParticleContact;->flags:I
and-int/lit8 v2, v2, 0x2
if-eqz v2, :cond_bb
.line 620
add-int/lit8 v1, v1, -0x1
.line 621
iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v2, v2, v1
.line 622
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
iget-object v4, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aget-object v4, v4, v0
aput-object v4, v3, v1
.line 623
iget-object v3, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactBuffer:[Lorg/jbox2d/particle/ParticleContact;
aput-object v2, v3, v0
.line 624
add-int/lit8 v0, v0, -0x1
.line 618
:cond_bb
add-int/lit8 v0, v0, 0x1
goto :goto_9b
.line 627
:cond_be
iput v1, p0, Lorg/jbox2d/particle/ParticleSystem;->m_contactCount:I
.line 629
:cond_c0
return-void
.end method