.class public Lcom/esotericsoftware/spine/TransformConstraint; .super Ljava/lang/Object; .source "TransformConstraint.java" # interfaces .implements Lcom/esotericsoftware/spine/Constraint; # instance fields .field final a:Lcom/esotericsoftware/spine/TransformConstraintData; .field final b:Lcom/badlogic/gdx/utils/Array; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/badlogic/gdx/utils/Array<", "Lcom/esotericsoftware/spine/Bone;", ">;" } .end annotation .end field .field c:Lcom/esotericsoftware/spine/Bone; .field d:F .field e:F .field f:F .field g:F .field final h:Lcom/badlogic/gdx/math/Vector2; # direct methods .method public constructor (Lcom/esotericsoftware/spine/TransformConstraintData;Lcom/esotericsoftware/spine/Skeleton;)V .locals 3 .line 49 invoke-direct {p0}, Ljava/lang/Object;->()V .line 47 new-instance v0, Lcom/badlogic/gdx/math/Vector2; invoke-direct {v0}, Lcom/badlogic/gdx/math/Vector2;->()V iput-object v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->h:Lcom/badlogic/gdx/math/Vector2; if-eqz p1, :cond_2 if-eqz p2, :cond_1 .line 52 iput-object p1, p0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; .line 53 iget v0, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->e:F iput v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->d:F .line 54 iget v0, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->f:F iput v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->e:F .line 55 iget v0, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->g:F iput v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->f:F .line 56 iget v0, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->h:F iput v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->g:F .line 57 new-instance v0, Lcom/badlogic/gdx/utils/Array; iget-object v1, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->c:Lcom/badlogic/gdx/utils/Array; iget v1, v1, Lcom/badlogic/gdx/utils/Array;->b:I invoke-direct {v0, v1}, Lcom/badlogic/gdx/utils/Array;->(I)V iput-object v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->b:Lcom/badlogic/gdx/utils/Array; .line 58 iget-object v0, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->c:Lcom/badlogic/gdx/utils/Array; invoke-virtual {v0}, Lcom/badlogic/gdx/utils/Array;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_0 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_0 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/esotericsoftware/spine/BoneData; .line 59 iget-object v2, p0, Lcom/esotericsoftware/spine/TransformConstraint;->b:Lcom/badlogic/gdx/utils/Array; iget-object v1, v1, Lcom/esotericsoftware/spine/BoneData;->b:Ljava/lang/String; invoke-virtual {p2, v1}, Lcom/esotericsoftware/spine/Skeleton;->a(Ljava/lang/String;)Lcom/esotericsoftware/spine/Bone; move-result-object v1 invoke-virtual {v2, v1}, Lcom/badlogic/gdx/utils/Array;->a(Ljava/lang/Object;)V goto :goto_0 .line 60 :cond_0 iget-object p1, p1, Lcom/esotericsoftware/spine/TransformConstraintData;->d:Lcom/esotericsoftware/spine/BoneData; iget-object p1, p1, Lcom/esotericsoftware/spine/BoneData;->b:Ljava/lang/String; invoke-virtual {p2, p1}, Lcom/esotericsoftware/spine/Skeleton;->a(Ljava/lang/String;)Lcom/esotericsoftware/spine/Bone; move-result-object p1 iput-object p1, p0, Lcom/esotericsoftware/spine/TransformConstraint;->c:Lcom/esotericsoftware/spine/Bone; return-void .line 51 :cond_1 new-instance p1, Ljava/lang/IllegalArgumentException; const-string p2, "skeleton cannot be null." invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .line 50 :cond_2 new-instance p1, Ljava/lang/IllegalArgumentException; const-string p2, "data cannot be null." invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method private b()V .locals 30 move-object/from16 v0, p0 .line 98 iget v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->d:F iget v2, v0, Lcom/esotericsoftware/spine/TransformConstraint;->e:F iget v3, v0, Lcom/esotericsoftware/spine/TransformConstraint;->f:F iget v4, v0, Lcom/esotericsoftware/spine/TransformConstraint;->g:F .line 99 iget-object v5, v0, Lcom/esotericsoftware/spine/TransformConstraint;->c:Lcom/esotericsoftware/spine/Bone; .line 100 iget v6, v5, Lcom/esotericsoftware/spine/Bone;->t:F iget v7, v5, Lcom/esotericsoftware/spine/Bone;->u:F iget v8, v5, Lcom/esotericsoftware/spine/Bone;->w:F iget v9, v5, Lcom/esotericsoftware/spine/Bone;->x:F mul-float v10, v6, v9 mul-float v11, v7, v8 sub-float/2addr v10, v11 const/4 v11, 0x0 cmpl-float v10, v10, v11 if-lez v10, :cond_0 const v10, 0x3c8efa35 goto :goto_0 :cond_0 const v10, -0x437105cb .line 102 :goto_0 iget-object v12, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v12, v12, Lcom/esotericsoftware/spine/TransformConstraintData;->i:F mul-float v12, v12, v10 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->n:F mul-float v13, v13, v10 .line 103 iget-object v10, v0, Lcom/esotericsoftware/spine/TransformConstraint;->b:Lcom/badlogic/gdx/utils/Array; .line 104 iget v14, v10, Lcom/badlogic/gdx/utils/Array;->b:I const/4 v15, 0x0 :goto_1 if-ge v15, v14, :cond_c .line 105 invoke-virtual {v10, v15}, Lcom/badlogic/gdx/utils/Array;->a(I)Ljava/lang/Object; move-result-object v16 move-object/from16 v11, v16 check-cast v11, Lcom/esotericsoftware/spine/Bone; const v16, -0x3fb6f025 const v18, 0x40490fdb # (float)Math.PI const v19, 0x40c90fdb const/16 v20, 0x1 const/16 v17, 0x0 cmpl-float v21, v1, v17 if-eqz v21, :cond_3 move-object/from16 v22, v10 .line 109 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->t:F move/from16 v23, v14 iget v14, v11, Lcom/esotericsoftware/spine/Bone;->u:F move/from16 v24, v15 iget v15, v11, Lcom/esotericsoftware/spine/Bone;->w:F move/from16 v25, v13 iget v13, v11, Lcom/esotericsoftware/spine/Bone;->x:F .line 110 invoke-static {v8, v6}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v21 invoke-static {v15, v10}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v26 sub-float v21, v21, v26 add-float v21, v21, v12 cmpl-float v26, v21, v18 if-lez v26, :cond_1 sub-float v21, v21, v19 goto :goto_2 :cond_1 cmpg-float v26, v21, v16 if-gez v26, :cond_2 add-float v21, v21, v19 :cond_2 :goto_2 mul-float v21, v21, v1 .line 115 invoke-static/range {v21 .. v21}, Lcom/esotericsoftware/spine/utils/SpineUtils;->c(F)F move-result v26 invoke-static/range {v21 .. v21}, Lcom/esotericsoftware/spine/utils/SpineUtils;->d(F)F move-result v21 mul-float v27, v26, v10 mul-float v28, v21, v15 move/from16 v29, v1 sub-float v1, v27, v28 .line 116 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->t:F mul-float v1, v26, v14 mul-float v27, v21, v13 sub-float v1, v1, v27 .line 117 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->u:F mul-float v10, v10, v21 mul-float v15, v15, v26 add-float/2addr v10, v15 .line 118 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->w:F mul-float v21, v21, v14 mul-float v26, v26, v13 add-float v1, v21, v26 .line 119 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->x:F const/4 v1, 0x1 goto :goto_3 :cond_3 move/from16 v29, v1 move-object/from16 v22, v10 move/from16 v25, v13 move/from16 v23, v14 move/from16 v24, v15 const/4 v1, 0x0 :goto_3 const/4 v10, 0x0 cmpl-float v13, v2, v10 if-eqz v13, :cond_4 .line 124 iget-object v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->h:Lcom/badlogic/gdx/math/Vector2; .line 125 iget-object v10, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v10, v10, Lcom/esotericsoftware/spine/TransformConstraintData;->j:F iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->k:F invoke-virtual {v1, v10, v13}, Lcom/badlogic/gdx/math/Vector2;->set(FF)Lcom/badlogic/gdx/math/Vector2; move-result-object v10 invoke-virtual {v5, v10}, Lcom/esotericsoftware/spine/Bone;->a(Lcom/badlogic/gdx/math/Vector2;)Lcom/badlogic/gdx/math/Vector2; .line 126 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->v:F iget v13, v1, Lcom/badlogic/gdx/math/Vector2;->x:F iget v14, v11, Lcom/esotericsoftware/spine/Bone;->v:F sub-float/2addr v13, v14 mul-float v13, v13, v2 add-float/2addr v10, v13 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->v:F .line 127 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->y:F iget v1, v1, Lcom/badlogic/gdx/math/Vector2;->y:F iget v13, v11, Lcom/esotericsoftware/spine/Bone;->y:F sub-float/2addr v1, v13 mul-float v1, v1, v2 add-float/2addr v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->y:F const/4 v1, 0x1 :cond_4 const/4 v10, 0x0 cmpl-float v13, v3, v10 if-lez v13, :cond_7 .line 132 iget v1, v11, Lcom/esotericsoftware/spine/Bone;->t:F iget v10, v11, Lcom/esotericsoftware/spine/Bone;->t:F mul-float v1, v1, v10 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->w:F iget v13, v11, Lcom/esotericsoftware/spine/Bone;->w:F mul-float v10, v10, v13 add-float/2addr v1, v10 float-to-double v13, v1 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v1, v13 const/4 v10, 0x0 cmpl-float v13, v1, v10 if-eqz v13, :cond_5 mul-float v10, v6, v6 mul-float v13, v8, v8 add-float/2addr v10, v13 float-to-double v13, v10 .line 133 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v10, v13 sub-float/2addr v10, v1 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->l:F add-float/2addr v10, v13 mul-float v10, v10, v3 add-float/2addr v10, v1 div-float v1, v10, v1 .line 134 :cond_5 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->t:F mul-float v10, v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->t:F .line 135 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->w:F mul-float v10, v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->w:F .line 136 iget v1, v11, Lcom/esotericsoftware/spine/Bone;->u:F iget v10, v11, Lcom/esotericsoftware/spine/Bone;->u:F mul-float v1, v1, v10 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->x:F iget v13, v11, Lcom/esotericsoftware/spine/Bone;->x:F mul-float v10, v10, v13 add-float/2addr v1, v10 float-to-double v13, v1 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v1, v13 const/4 v10, 0x0 cmpl-float v13, v1, v10 if-eqz v13, :cond_6 mul-float v10, v7, v7 mul-float v13, v9, v9 add-float/2addr v10, v13 float-to-double v13, v10 .line 137 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v10, v13 sub-float/2addr v10, v1 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->m:F add-float/2addr v10, v13 mul-float v10, v10, v3 add-float/2addr v10, v1 div-float v1, v10, v1 .line 138 :cond_6 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->u:F mul-float v10, v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->u:F .line 139 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->x:F mul-float v10, v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->x:F const/4 v1, 0x1 :cond_7 const/4 v10, 0x0 cmpl-float v13, v4, v10 if-lez v13, :cond_a .line 144 iget v1, v11, Lcom/esotericsoftware/spine/Bone;->u:F iget v13, v11, Lcom/esotericsoftware/spine/Bone;->x:F .line 145 invoke-static {v13, v1}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v14 .line 146 invoke-static {v9, v7}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v15 invoke-static {v8, v6}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v17 sub-float v15, v15, v17 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->w:F iget v0, v11, Lcom/esotericsoftware/spine/Bone;->t:F invoke-static {v10, v0}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v0 sub-float v0, v14, v0 sub-float/2addr v15, v0 cmpl-float v0, v15, v18 if-lez v0, :cond_8 sub-float v15, v15, v19 goto :goto_4 :cond_8 cmpg-float v0, v15, v16 if-gez v0, :cond_9 add-float v15, v15, v19 :cond_9 :goto_4 add-float v15, v15, v25 mul-float v15, v15, v4 add-float/2addr v14, v15 mul-float v1, v1, v1 mul-float v13, v13, v13 add-float/2addr v1, v13 float-to-double v0, v1 .line 151 invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D move-result-wide v0 double-to-float v0, v0 .line 152 invoke-static {v14}, Lcom/esotericsoftware/spine/utils/SpineUtils;->c(F)F move-result v1 mul-float v1, v1, v0 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->u:F .line 153 invoke-static {v14}, Lcom/esotericsoftware/spine/utils/SpineUtils;->d(F)F move-result v1 mul-float v1, v1, v0 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->x:F const/4 v1, 0x1 :cond_a if-eqz v1, :cond_b const/4 v0, 0x0 .line 157 iput-boolean v0, v11, Lcom/esotericsoftware/spine/Bone;->s:Z goto :goto_5 :cond_b const/4 v0, 0x0 :goto_5 add-int/lit8 v15, v24, 0x1 move-object/from16 v10, v22 move/from16 v14, v23 move/from16 v13, v25 move/from16 v1, v29 move-object/from16 v0, p0 const/4 v11, 0x0 goto/16 :goto_1 :cond_c return-void .end method .method private c()V .locals 30 move-object/from16 v0, p0 .line 162 iget v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->d:F iget v2, v0, Lcom/esotericsoftware/spine/TransformConstraint;->e:F iget v3, v0, Lcom/esotericsoftware/spine/TransformConstraint;->f:F iget v4, v0, Lcom/esotericsoftware/spine/TransformConstraint;->g:F .line 163 iget-object v5, v0, Lcom/esotericsoftware/spine/TransformConstraint;->c:Lcom/esotericsoftware/spine/Bone; .line 164 iget v6, v5, Lcom/esotericsoftware/spine/Bone;->t:F iget v7, v5, Lcom/esotericsoftware/spine/Bone;->u:F iget v8, v5, Lcom/esotericsoftware/spine/Bone;->w:F iget v9, v5, Lcom/esotericsoftware/spine/Bone;->x:F mul-float v10, v6, v9 mul-float v11, v7, v8 sub-float/2addr v10, v11 const/4 v11, 0x0 cmpl-float v10, v10, v11 if-lez v10, :cond_0 const v10, 0x3c8efa35 goto :goto_0 :cond_0 const v10, -0x437105cb .line 166 :goto_0 iget-object v12, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v12, v12, Lcom/esotericsoftware/spine/TransformConstraintData;->i:F mul-float v12, v12, v10 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->n:F mul-float v13, v13, v10 .line 167 iget-object v10, v0, Lcom/esotericsoftware/spine/TransformConstraint;->b:Lcom/badlogic/gdx/utils/Array; .line 168 iget v14, v10, Lcom/badlogic/gdx/utils/Array;->b:I const/4 v15, 0x0 :goto_1 if-ge v15, v14, :cond_a .line 169 invoke-virtual {v10, v15}, Lcom/badlogic/gdx/utils/Array;->a(I)Ljava/lang/Object; move-result-object v16 move-object/from16 v11, v16 check-cast v11, Lcom/esotericsoftware/spine/Bone; const v16, -0x3fb6f025 const v18, 0x40490fdb # (float)Math.PI const v19, 0x40c90fdb const/16 v20, 0x1 const/16 v17, 0x0 cmpl-float v21, v1, v17 if-eqz v21, :cond_3 move-object/from16 v22, v10 .line 173 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->t:F move/from16 v23, v14 iget v14, v11, Lcom/esotericsoftware/spine/Bone;->u:F move/from16 v24, v15 iget v15, v11, Lcom/esotericsoftware/spine/Bone;->w:F move/from16 v25, v13 iget v13, v11, Lcom/esotericsoftware/spine/Bone;->x:F .line 174 invoke-static {v8, v6}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v21 add-float v21, v21, v12 cmpl-float v26, v21, v18 if-lez v26, :cond_1 sub-float v21, v21, v19 goto :goto_2 :cond_1 cmpg-float v26, v21, v16 if-gez v26, :cond_2 add-float v21, v21, v19 :cond_2 :goto_2 mul-float v21, v21, v1 .line 179 invoke-static/range {v21 .. v21}, Lcom/esotericsoftware/spine/utils/SpineUtils;->c(F)F move-result v26 invoke-static/range {v21 .. v21}, Lcom/esotericsoftware/spine/utils/SpineUtils;->d(F)F move-result v21 mul-float v27, v26, v10 mul-float v28, v21, v15 move/from16 v29, v1 sub-float v1, v27, v28 .line 180 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->t:F mul-float v1, v26, v14 mul-float v27, v21, v13 sub-float v1, v1, v27 .line 181 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->u:F mul-float v10, v10, v21 mul-float v15, v15, v26 add-float/2addr v10, v15 .line 182 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->w:F mul-float v21, v21, v14 mul-float v26, v26, v13 add-float v1, v21, v26 .line 183 iput v1, v11, Lcom/esotericsoftware/spine/Bone;->x:F const/4 v1, 0x1 goto :goto_3 :cond_3 move/from16 v29, v1 move-object/from16 v22, v10 move/from16 v25, v13 move/from16 v23, v14 move/from16 v24, v15 const/4 v1, 0x0 :goto_3 const/4 v10, 0x0 cmpl-float v13, v2, v10 if-eqz v13, :cond_4 .line 188 iget-object v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->h:Lcom/badlogic/gdx/math/Vector2; .line 189 iget-object v10, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v10, v10, Lcom/esotericsoftware/spine/TransformConstraintData;->j:F iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->k:F invoke-virtual {v1, v10, v13}, Lcom/badlogic/gdx/math/Vector2;->set(FF)Lcom/badlogic/gdx/math/Vector2; move-result-object v10 invoke-virtual {v5, v10}, Lcom/esotericsoftware/spine/Bone;->a(Lcom/badlogic/gdx/math/Vector2;)Lcom/badlogic/gdx/math/Vector2; .line 190 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->v:F iget v13, v1, Lcom/badlogic/gdx/math/Vector2;->x:F mul-float v13, v13, v2 add-float/2addr v10, v13 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->v:F .line 191 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->y:F iget v1, v1, Lcom/badlogic/gdx/math/Vector2;->y:F mul-float v1, v1, v2 add-float/2addr v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->y:F const/4 v1, 0x1 :cond_4 const/4 v10, 0x0 cmpl-float v13, v3, v10 if-lez v13, :cond_5 mul-float v1, v6, v6 mul-float v10, v8, v8 add-float/2addr v1, v10 float-to-double v13, v1 .line 196 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v1, v13 const/high16 v10, 0x3f800000 # 1.0f sub-float/2addr v1, v10 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->l:F add-float/2addr v1, v13 mul-float v1, v1, v3 add-float/2addr v1, v10 .line 197 iget v13, v11, Lcom/esotericsoftware/spine/Bone;->t:F mul-float v13, v13, v1 iput v13, v11, Lcom/esotericsoftware/spine/Bone;->t:F .line 198 iget v13, v11, Lcom/esotericsoftware/spine/Bone;->w:F mul-float v13, v13, v1 iput v13, v11, Lcom/esotericsoftware/spine/Bone;->w:F mul-float v1, v7, v7 mul-float v13, v9, v9 add-float/2addr v1, v13 float-to-double v13, v1 .line 199 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v1, v13 sub-float/2addr v1, v10 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->m:F add-float/2addr v1, v13 mul-float v1, v1, v3 add-float/2addr v1, v10 .line 200 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->u:F mul-float v10, v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->u:F .line 201 iget v10, v11, Lcom/esotericsoftware/spine/Bone;->x:F mul-float v10, v10, v1 iput v10, v11, Lcom/esotericsoftware/spine/Bone;->x:F const/4 v1, 0x1 :cond_5 const/4 v10, 0x0 cmpl-float v13, v4, v10 if-lez v13, :cond_8 .line 206 invoke-static {v9, v7}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v1 invoke-static {v8, v6}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v13 sub-float/2addr v1, v13 cmpl-float v13, v1, v18 if-lez v13, :cond_6 sub-float v1, v1, v19 goto :goto_4 :cond_6 cmpg-float v13, v1, v16 if-gez v13, :cond_7 add-float v1, v1, v19 .line 210 :cond_7 :goto_4 iget v13, v11, Lcom/esotericsoftware/spine/Bone;->u:F iget v14, v11, Lcom/esotericsoftware/spine/Bone;->x:F .line 211 invoke-static {v14, v13}, Lcom/esotericsoftware/spine/utils/SpineUtils;->a(FF)F move-result v15 const v16, 0x3fc90fdb sub-float v1, v1, v16 add-float v1, v1, v25 mul-float v1, v1, v4 add-float/2addr v15, v1 mul-float v13, v13, v13 mul-float v14, v14, v14 add-float/2addr v13, v14 float-to-double v13, v13 .line 212 invoke-static {v13, v14}, Ljava/lang/Math;->sqrt(D)D move-result-wide v13 double-to-float v1, v13 .line 213 invoke-static {v15}, Lcom/esotericsoftware/spine/utils/SpineUtils;->c(F)F move-result v13 mul-float v13, v13, v1 iput v13, v11, Lcom/esotericsoftware/spine/Bone;->u:F .line 214 invoke-static {v15}, Lcom/esotericsoftware/spine/utils/SpineUtils;->d(F)F move-result v13 mul-float v13, v13, v1 iput v13, v11, Lcom/esotericsoftware/spine/Bone;->x:F const/4 v1, 0x1 :cond_8 if-eqz v1, :cond_9 const/4 v1, 0x0 .line 218 iput-boolean v1, v11, Lcom/esotericsoftware/spine/Bone;->s:Z goto :goto_5 :cond_9 const/4 v1, 0x0 :goto_5 add-int/lit8 v15, v24, 0x1 move-object/from16 v10, v22 move/from16 v14, v23 move/from16 v13, v25 move/from16 v1, v29 const/4 v11, 0x0 goto/16 :goto_1 :cond_a return-void .end method .method private d()V .locals 21 move-object/from16 v0, p0 .line 223 iget v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->d:F iget v2, v0, Lcom/esotericsoftware/spine/TransformConstraint;->e:F iget v3, v0, Lcom/esotericsoftware/spine/TransformConstraint;->f:F iget v4, v0, Lcom/esotericsoftware/spine/TransformConstraint;->g:F .line 224 iget-object v5, v0, Lcom/esotericsoftware/spine/TransformConstraint;->c:Lcom/esotericsoftware/spine/Bone; .line 225 iget-boolean v6, v5, Lcom/esotericsoftware/spine/Bone;->s:Z if-nez v6, :cond_0 invoke-virtual {v5}, Lcom/esotericsoftware/spine/Bone;->d()V .line 226 :cond_0 iget-object v6, v0, Lcom/esotericsoftware/spine/TransformConstraint;->b:Lcom/badlogic/gdx/utils/Array; const/4 v7, 0x0 .line 227 iget v8, v6, Lcom/badlogic/gdx/utils/Array;->b:I :goto_0 if-ge v7, v8, :cond_7 .line 228 invoke-virtual {v6, v7}, Lcom/badlogic/gdx/utils/Array;->a(I)Ljava/lang/Object; move-result-object v9 move-object v10, v9 check-cast v10, Lcom/esotericsoftware/spine/Bone; .line 229 iget-boolean v9, v10, Lcom/esotericsoftware/spine/Bone;->s:Z if-nez v9, :cond_1 invoke-virtual {v10}, Lcom/esotericsoftware/spine/Bone;->d()V .line 231 :cond_1 iget v9, v10, Lcom/esotericsoftware/spine/Bone;->n:F const/high16 v11, 0x43b40000 # 360.0f const-wide v12, 0x40d0001fffffffffL # 16384.499999999996 const/4 v14, 0x0 cmpl-float v15, v1, v14 if-eqz v15, :cond_2 .line 233 iget v15, v5, Lcom/esotericsoftware/spine/Bone;->n:F sub-float/2addr v15, v9 iget-object v14, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v14, v14, Lcom/esotericsoftware/spine/TransformConstraintData;->i:F add-float/2addr v15, v14 div-float v14, v15, v11 move-object/from16 v18, v6 move/from16 v19, v7 float-to-double v6, v14 .line 234 invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z sub-double v6, v12, v6 double-to-int v6, v6 rsub-int v6, v6, 0x4000 mul-int/lit16 v6, v6, 0x168 int-to-float v6, v6 sub-float/2addr v15, v6 mul-float v15, v15, v1 add-float/2addr v9, v15 goto :goto_1 :cond_2 move-object/from16 v18, v6 move/from16 v19, v7 .line 238 :goto_1 iget v6, v10, Lcom/esotericsoftware/spine/Bone;->l:F iget v7, v10, Lcom/esotericsoftware/spine/Bone;->m:F const/4 v14, 0x0 cmpl-float v15, v2, v14 if-eqz v15, :cond_3 .line 240 iget v14, v5, Lcom/esotericsoftware/spine/Bone;->l:F sub-float/2addr v14, v6 iget-object v15, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v15, v15, Lcom/esotericsoftware/spine/TransformConstraintData;->j:F add-float/2addr v14, v15 mul-float v14, v14, v2 add-float/2addr v6, v14 .line 241 iget v14, v5, Lcom/esotericsoftware/spine/Bone;->m:F sub-float/2addr v14, v7 iget-object v15, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v15, v15, Lcom/esotericsoftware/spine/TransformConstraintData;->k:F add-float/2addr v14, v15 mul-float v14, v14, v2 add-float/2addr v7, v14 .line 244 :cond_3 iget v14, v10, Lcom/esotericsoftware/spine/Bone;->o:F iget v15, v10, Lcom/esotericsoftware/spine/Bone;->p:F const/16 v16, 0x0 cmpl-float v17, v3, v16 if-lez v17, :cond_5 cmpl-float v17, v14, v16 if-eqz v17, :cond_4 .line 246 iget v12, v5, Lcom/esotericsoftware/spine/Bone;->o:F sub-float/2addr v12, v14 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->l:F add-float/2addr v12, v13 mul-float v12, v12, v3 add-float/2addr v12, v14 div-float v14, v12, v14 :cond_4 const/4 v12, 0x0 cmpl-float v13, v15, v12 if-eqz v13, :cond_5 .line 247 iget v12, v5, Lcom/esotericsoftware/spine/Bone;->p:F sub-float/2addr v12, v15 iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->m:F add-float/2addr v12, v13 mul-float v12, v12, v3 add-float/2addr v12, v15 div-float/2addr v12, v15 move v15, v12 .line 250 :cond_5 iget v13, v10, Lcom/esotericsoftware/spine/Bone;->r:F const/4 v12, 0x0 cmpl-float v12, v4, v12 if-lez v12, :cond_6 .line 252 iget v12, v5, Lcom/esotericsoftware/spine/Bone;->r:F sub-float/2addr v12, v13 iget-object v11, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v11, v11, Lcom/esotericsoftware/spine/TransformConstraintData;->n:F add-float/2addr v12, v11 const/high16 v11, 0x43b40000 # 360.0f div-float v11, v12, v11 move/from16 v20, v1 float-to-double v0, v11 .line 253 invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z const-wide v16, 0x40d0001fffffffffL # 16384.499999999996 sub-double v0, v16, v0 double-to-int v0, v0 rsub-int v0, v0, 0x4000 mul-int/lit16 v0, v0, 0x168 int-to-float v0, v0 sub-float/2addr v12, v0 .line 254 iget v0, v10, Lcom/esotericsoftware/spine/Bone;->k:F mul-float v12, v12, v4 add-float/2addr v0, v12 iput v0, v10, Lcom/esotericsoftware/spine/Bone;->k:F goto :goto_2 :cond_6 move/from16 v20, v1 .line 257 :goto_2 iget v0, v10, Lcom/esotericsoftware/spine/Bone;->q:F move v11, v6 move v12, v7 move v1, v13 move v13, v9 move/from16 v16, v0 move/from16 v17, v1 invoke-virtual/range {v10 .. v17}, Lcom/esotericsoftware/spine/Bone;->a(FFFFFFF)V add-int/lit8 v7, v19, 0x1 move-object/from16 v6, v18 move/from16 v1, v20 move-object/from16 v0, p0 goto/16 :goto_0 :cond_7 return-void .end method .method private e()V .locals 20 move-object/from16 v0, p0 .line 262 iget v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->d:F iget v2, v0, Lcom/esotericsoftware/spine/TransformConstraint;->e:F iget v3, v0, Lcom/esotericsoftware/spine/TransformConstraint;->f:F iget v4, v0, Lcom/esotericsoftware/spine/TransformConstraint;->g:F .line 263 iget-object v5, v0, Lcom/esotericsoftware/spine/TransformConstraint;->c:Lcom/esotericsoftware/spine/Bone; .line 264 iget-boolean v6, v5, Lcom/esotericsoftware/spine/Bone;->s:Z if-nez v6, :cond_0 invoke-virtual {v5}, Lcom/esotericsoftware/spine/Bone;->d()V .line 265 :cond_0 iget-object v6, v0, Lcom/esotericsoftware/spine/TransformConstraint;->b:Lcom/badlogic/gdx/utils/Array; const/4 v7, 0x0 .line 266 iget v8, v6, Lcom/badlogic/gdx/utils/Array;->b:I :goto_0 if-ge v7, v8, :cond_6 .line 267 invoke-virtual {v6, v7}, Lcom/badlogic/gdx/utils/Array;->a(I)Ljava/lang/Object; move-result-object v9 move-object v10, v9 check-cast v10, Lcom/esotericsoftware/spine/Bone; .line 268 iget-boolean v9, v10, Lcom/esotericsoftware/spine/Bone;->s:Z if-nez v9, :cond_1 invoke-virtual {v10}, Lcom/esotericsoftware/spine/Bone;->d()V .line 270 :cond_1 iget v9, v10, Lcom/esotericsoftware/spine/Bone;->n:F const/4 v11, 0x0 cmpl-float v12, v1, v11 if-eqz v12, :cond_2 .line 271 iget v12, v5, Lcom/esotericsoftware/spine/Bone;->n:F iget-object v13, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v13, v13, Lcom/esotericsoftware/spine/TransformConstraintData;->i:F add-float/2addr v12, v13 mul-float v12, v12, v1 add-float/2addr v9, v12 :cond_2 move v13, v9 .line 273 iget v9, v10, Lcom/esotericsoftware/spine/Bone;->l:F iget v12, v10, Lcom/esotericsoftware/spine/Bone;->m:F cmpl-float v14, v2, v11 if-eqz v14, :cond_3 .line 275 iget v14, v5, Lcom/esotericsoftware/spine/Bone;->l:F iget-object v15, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v15, v15, Lcom/esotericsoftware/spine/TransformConstraintData;->j:F add-float/2addr v14, v15 mul-float v14, v14, v2 add-float/2addr v9, v14 .line 276 iget v14, v5, Lcom/esotericsoftware/spine/Bone;->m:F iget-object v15, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v15, v15, Lcom/esotericsoftware/spine/TransformConstraintData;->k:F add-float/2addr v14, v15 mul-float v14, v14, v2 add-float/2addr v12, v14 .line 279 :cond_3 iget v14, v10, Lcom/esotericsoftware/spine/Bone;->o:F iget v15, v10, Lcom/esotericsoftware/spine/Bone;->p:F cmpl-float v16, v3, v11 if-lez v16, :cond_4 .line 281 iget v11, v5, Lcom/esotericsoftware/spine/Bone;->o:F const/high16 v16, 0x3f800000 # 1.0f sub-float v11, v11, v16 move/from16 v18, v1 iget-object v1, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v1, v1, Lcom/esotericsoftware/spine/TransformConstraintData;->l:F add-float/2addr v11, v1 mul-float v11, v11, v3 add-float v11, v11, v16 mul-float v14, v14, v11 .line 282 iget v1, v5, Lcom/esotericsoftware/spine/Bone;->p:F sub-float v1, v1, v16 iget-object v11, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v11, v11, Lcom/esotericsoftware/spine/TransformConstraintData;->m:F add-float/2addr v1, v11 mul-float v1, v1, v3 add-float v1, v1, v16 mul-float v15, v15, v1 goto :goto_1 :cond_4 move/from16 v18, v1 .line 285 :goto_1 iget v1, v10, Lcom/esotericsoftware/spine/Bone;->r:F const/4 v11, 0x0 cmpl-float v11, v4, v11 if-lez v11, :cond_5 .line 286 iget v11, v5, Lcom/esotericsoftware/spine/Bone;->r:F move/from16 v19, v2 iget-object v2, v0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget v2, v2, Lcom/esotericsoftware/spine/TransformConstraintData;->n:F add-float/2addr v11, v2 mul-float v11, v11, v4 add-float/2addr v1, v11 goto :goto_2 :cond_5 move/from16 v19, v2 :goto_2 move/from16 v17, v1 .line 288 iget v1, v10, Lcom/esotericsoftware/spine/Bone;->q:F move v11, v9 move/from16 v16, v1 invoke-virtual/range {v10 .. v17}, Lcom/esotericsoftware/spine/Bone;->a(FFFFFFF)V add-int/lit8 v7, v7, 0x1 move/from16 v1, v18 move/from16 v2, v19 goto/16 :goto_0 :cond_6 return-void .end method # virtual methods .method public a()V .locals 1 .line 84 iget-object v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget-boolean v0, v0, Lcom/esotericsoftware/spine/TransformConstraintData;->p:Z if-eqz v0, :cond_1 .line 85 iget-object v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget-boolean v0, v0, Lcom/esotericsoftware/spine/TransformConstraintData;->o:Z if-eqz v0, :cond_0 .line 86 invoke-direct {p0}, Lcom/esotericsoftware/spine/TransformConstraint;->e()V goto :goto_0 .line 88 :cond_0 invoke-direct {p0}, Lcom/esotericsoftware/spine/TransformConstraint;->d()V goto :goto_0 .line 90 :cond_1 iget-object v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget-boolean v0, v0, Lcom/esotericsoftware/spine/TransformConstraintData;->o:Z if-eqz v0, :cond_2 .line 91 invoke-direct {p0}, Lcom/esotericsoftware/spine/TransformConstraint;->c()V goto :goto_0 .line 93 :cond_2 invoke-direct {p0}, Lcom/esotericsoftware/spine/TransformConstraint;->b()V :goto_0 return-void .end method .method public toString()Ljava/lang/String; .locals 1 .line 352 iget-object v0, p0, Lcom/esotericsoftware/spine/TransformConstraint;->a:Lcom/esotericsoftware/spine/TransformConstraintData; iget-object v0, v0, Lcom/esotericsoftware/spine/TransformConstraintData;->a:Ljava/lang/String; return-object v0 .end method