ParticleSystem$CreateParticleGroupCallback.smali

.class Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;
.super Ljava/lang/Object;
.source "ParticleSystem.java"

# interfaces
.implements Lorg/jbox2d/particle/VoronoiDiagram$VoronoiDiagramCallback;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lorg/jbox2d/particle/ParticleSystem;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x8
    name = "CreateParticleGroupCallback"
.end annotation


# instance fields
.field def:Lorg/jbox2d/particle/ParticleGroupDef;

.field firstIndex:I

.field system:Lorg/jbox2d/particle/ParticleSystem;


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

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

    return-void
.end method


# virtual methods
.method public callback(III)V
    .registers 19

    .prologue
    .line 1845
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v1, v1, 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 v3, v1, p1

    .line 1846
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v1, v1, 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 v4, v1, p2

    .line 1847
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v1, v1, 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 v5, v1, p3

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

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

    sub-float v6, v1, v2

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

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

    sub-float v7, v1, v2

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

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

    sub-float v8, v1, v2

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

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

    sub-float v9, v1, v2

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

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

    sub-float v10, v1, v2

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

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

    sub-float v11, v1, v2

    .line 1854
    const/high16 v1, 0x40800000    # 4.0f

    iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v2, v2, Lorg/jbox2d/particle/ParticleSystem;->m_squaredDiameter:F

    mul-float/2addr v1, v2

    .line 1855
    mul-float v2, v6, v6

    mul-float v12, v7, v7

    add-float/2addr v2, v12

    cmpg-float v2, v2, v1

    if-gez v2, :cond_13f

    mul-float v2, v8, v8

    mul-float v12, v9, v9

    add-float/2addr v2, v12

    cmpg-float v2, v2, v1

    if-gez v2, :cond_13f

    mul-float v2, v10, v10

    mul-float v12, v11, v11

    add-float/2addr v2, v12

    cmpg-float v1, v2, v1

    if-gez v1, :cond_13f

    .line 1858
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v1, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I

    iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v2, v2, Lorg/jbox2d/particle/ParticleSystem;->m_triadCapacity:I

    if-lt v1, v2, :cond_93

    .line 1859
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v12, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCapacity:I

    .line 1860
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v1, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I

    if-eqz v1, :cond_140

    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v1, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I

    mul-int/lit8 v1, v1, 0x2

    move v2, v1

    .line 1864
    :goto_7f
    iget-object v13, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    const-class v1, Lorg/jbox2d/particle/ParticleSystem$Triad;

    iget-object v14, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v14, v14, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;

    invoke-static {v1, v14, v12, v2}, Lorg/jbox2d/common/BufferUtils;->reallocateBuffer(Ljava/lang/Class;[Ljava/lang/Object;II)[Ljava/lang/Object;

    move-result-object v1

    check-cast v1, [Lorg/jbox2d/particle/ParticleSystem$Triad;

    iput-object v1, v13, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;

    .line 1867
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCapacity:I

    .line 1869
    :cond_93
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v1, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadBuffer:[Lorg/jbox2d/particle/ParticleSystem$Triad;

    iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v2, v2, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I

    aget-object v1, v1, v2

    .line 1870
    move/from16 v0, p1

    iput v0, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexA:I

    .line 1871
    move/from16 v0, p2

    iput v0, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexB:I

    .line 1872
    move/from16 v0, p3

    iput v0, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->indexC:I

    .line 1873
    iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v2, v2, 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, p1

    iget-object v12, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v12, v12, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;

    iget-object v12, v12, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I

    aget v12, v12, p2

    or-int/2addr v2, v12

    iget-object v12, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget-object v12, v12, Lorg/jbox2d/particle/ParticleSystem;->m_flagsBuffer:Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;

    iget-object v12, v12, Lorg/jbox2d/particle/ParticleSystem$ParticleBufferInt;->data:[I

    aget v12, v12, p3

    or-int/2addr v2, v12

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->flags:I

    .line 1876
    iget-object v2, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->def:Lorg/jbox2d/particle/ParticleGroupDef;

    iget v2, v2, Lorg/jbox2d/particle/ParticleGroupDef;->strength:F

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->strength:F

    .line 1877
    const v2, 0x3eaaaaab

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

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

    add-float/2addr v12, v13

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

    add-float/2addr v12, v13

    mul-float/2addr v2, v12

    .line 1878
    const v12, 0x3eaaaaab

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

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

    add-float/2addr v13, v14

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

    add-float/2addr v13, v14

    mul-float/2addr v12, v13

    .line 1879
    iget-object v13, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->pa:Lorg/jbox2d/common/Vec2;

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

    sub-float/2addr v14, v2

    iput v14, v13, Lorg/jbox2d/common/Vec2;->x:F

    .line 1880
    iget-object v13, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->pa:Lorg/jbox2d/common/Vec2;

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

    sub-float/2addr v14, v12

    iput v14, v13, Lorg/jbox2d/common/Vec2;->y:F

    .line 1881
    iget-object v13, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->pb:Lorg/jbox2d/common/Vec2;

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

    sub-float/2addr v14, v2

    iput v14, v13, Lorg/jbox2d/common/Vec2;->x:F

    .line 1882
    iget-object v13, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->pb:Lorg/jbox2d/common/Vec2;

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

    sub-float/2addr v14, v12

    iput v14, v13, Lorg/jbox2d/common/Vec2;->y:F

    .line 1883
    iget-object v13, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->pc:Lorg/jbox2d/common/Vec2;

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

    sub-float v2, v14, v2

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

    .line 1884
    iget-object v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->pc:Lorg/jbox2d/common/Vec2;

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

    sub-float v12, v13, v12

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

    .line 1885
    mul-float v2, v10, v6

    mul-float v12, v11, v7

    add-float/2addr v2, v12

    neg-float v2, v2

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->ka:F

    .line 1886
    mul-float v2, v6, v8

    mul-float v6, v7, v9

    add-float/2addr v2, v6

    neg-float v2, v2

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->kb:F

    .line 1887
    mul-float v2, v8, v10

    mul-float v6, v9, v11

    add-float/2addr v2, v6

    neg-float v2, v2

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->kc:F

    .line 1888
    invoke-static {v3, v4}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v2

    invoke-static {v4, v5}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v4

    add-float/2addr v2, v4

    invoke-static {v5, v3}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F

    move-result v3

    add-float/2addr v2, v3

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem$Triad;->s:F

    .line 1889
    iget-object v1, p0, Lorg/jbox2d/particle/ParticleSystem$CreateParticleGroupCallback;->system:Lorg/jbox2d/particle/ParticleSystem;

    iget v2, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I

    add-int/lit8 v2, v2, 0x1

    iput v2, v1, Lorg/jbox2d/particle/ParticleSystem;->m_triadCount:I

    .line 1891
    :cond_13f
    return-void

    .line 1860
    :cond_140
    const/16 v1, 0x100

    move v2, v1

    goto/16 :goto_7f
.end method