DistanceJoint.smali
.class public Lorg/jbox2d/dynamics/joints/DistanceJoint;
.super Lorg/jbox2d/dynamics/joints/Joint;
.source "DistanceJoint.java"
# instance fields
.field private m_bias:F
.field private m_dampingRatio:F
.field private m_frequencyHz:F
.field private m_gamma:F
.field private m_impulse:F
.field private m_indexA:I
.field private m_indexB:I
.field private m_invIA:F
.field private m_invIB:F
.field private m_invMassA:F
.field private m_invMassB:F
.field private m_length:F
.field private final m_localAnchorA:Lorg/jbox2d/common/Vec2;
.field private final m_localAnchorB:Lorg/jbox2d/common/Vec2;
.field private final m_localCenterA:Lorg/jbox2d/common/Vec2;
.field private final m_localCenterB:Lorg/jbox2d/common/Vec2;
.field private m_mass:F
.field private final m_rA:Lorg/jbox2d/common/Vec2;
.field private final m_rB:Lorg/jbox2d/common/Vec2;
.field private final m_u:Lorg/jbox2d/common/Vec2;
# direct methods
.method protected constructor <init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/DistanceJointDef;)V
.registers 5
.prologue
const/4 v1, 0x0
.line 95
invoke-direct {p0, p1, p2}, Lorg/jbox2d/dynamics/joints/Joint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/JointDef;)V
.line 83
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
.line 84
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
.line 85
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
.line 86
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
.line 87
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
.line 96
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/DistanceJointDef;->localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->clone()Lorg/jbox2d/common/Vec2;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
.line 97
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/DistanceJointDef;->localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->clone()Lorg/jbox2d/common/Vec2;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
.line 98
iget v0, p2, Lorg/jbox2d/dynamics/joints/DistanceJointDef;->length:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_length:F
.line 99
iput v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
.line 100
iget v0, p2, Lorg/jbox2d/dynamics/joints/DistanceJointDef;->frequencyHz:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_frequencyHz:F
.line 101
iget v0, p2, Lorg/jbox2d/dynamics/joints/DistanceJointDef;->dampingRatio:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_dampingRatio:F
.line 102
iput v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
.line 103
iput v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bias:F
.line 104
return-void
.end method
# virtual methods
.method public getAnchorA(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 132
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1, p1}, Lorg/jbox2d/dynamics/Body;->getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 133
return-void
.end method
.method public getAnchorB(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 137
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1, p1}, Lorg/jbox2d/dynamics/Body;->getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 138
return-void
.end method
.method public getDampingRatio()F
.registers 2
.prologue
.line 127
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_dampingRatio:F
return v0
.end method
.method public getFrequency()F
.registers 2
.prologue
.line 111
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_frequencyHz:F
return v0
.end method
.method public getLength()F
.registers 2
.prologue
.line 115
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_length:F
return v0
.end method
.method public getLocalAnchorA()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 141
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLocalAnchorB()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 145
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getReactionForce(FLorg/jbox2d/common/Vec2;)V
.registers 5
.prologue
.line 153
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget v1, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v0, v1
mul-float/2addr v0, p1
iput v0, p2, Lorg/jbox2d/common/Vec2;->x:F
.line 154
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget v1, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v0, v1
mul-float/2addr v0, p1
iput v0, p2, Lorg/jbox2d/common/Vec2;->y:F
.line 155
return-void
.end method
.method public getReactionTorque(F)F
.registers 3
.prologue
.line 163
const/4 v0, 0x0
return v0
.end method
.method public initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 14
.prologue
const/high16 v11, 0x3f800000 # 1.0f
const/4 v1, 0x0
.line 169
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
.line 170
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
.line 171
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v2, v2, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v2, v2, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 172
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v2, v2, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v2, v2, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 173
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_invMass:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
.line 174
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_invMass:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
.line 175
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_invI:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIA:F
.line 176
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_invI:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIB:F
.line 178
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v0, v0, v2
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 179
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v2, v2, v3
iget v4, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 180
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v2, v2, v3
iget-object v5, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 181
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v2, v2, v3
iget v3, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 183
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v2, v2, v6
iget-object v6, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 184
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v2, v2, v7
iget v7, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 185
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v8, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v2, v2, v8
iget-object v8, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 186
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v2, v2, v9
iget v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 188
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v9
.line 189
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v10
.line 191
invoke-virtual {v9, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 192
invoke-virtual {v10, v7}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 195
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v7}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v9, v4, v7}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 196
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v7}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v10, v4, v7}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 197
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v4}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 199
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x2
invoke-interface {v0, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 202
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->length()F
move-result v4
.line 203
sget v0, Lorg/jbox2d/common/Settings;->linearSlop:F
cmpl-float v0, v4, v0
if-lez v0, :cond_1ce
.line 204
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
div-float v7, v11, v4
mul-float/2addr v6, v7
iput v6, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 205
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget v6, v0, Lorg/jbox2d/common/Vec2;->y:F
div-float v7, v11, v4
mul-float/2addr v6, v7
iput v6, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 211
:goto_ee
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v6}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 212
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-static {v6, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
.line 213
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
iget v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIA:F
mul-float/2addr v9, v0
mul-float/2addr v0, v9
add-float/2addr v0, v7
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
add-float/2addr v0, v7
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIB:F
mul-float/2addr v7, v6
mul-float/2addr v6, v7
add-float/2addr v6, v0
.line 216
cmpl-float v0, v6, v1
if-eqz v0, :cond_1d5
div-float v0, v11, v6
:goto_113
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_mass:F
.line 218
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_frequencyHz:F
cmpl-float v0, v0, v1
if-lez v0, :cond_1de
.line 219
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_length:F
sub-float/2addr v4, v0
.line 222
const v0, 0x40c90fdb
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_frequencyHz:F
mul-float/2addr v0, v7
.line 225
const/high16 v7, 0x40000000 # 2.0f
iget v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_mass:F
mul-float/2addr v7, v9
iget v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_dampingRatio:F
mul-float/2addr v7, v9
mul-float/2addr v7, v0
.line 228
iget v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_mass:F
mul-float/2addr v9, v0
mul-float/2addr v9, v0
.line 231
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v10, v0, Lorg/jbox2d/dynamics/TimeStep;->dt:F
.line 232
mul-float v0, v10, v9
add-float/2addr v0, v7
mul-float/2addr v0, v10
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
.line 233
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
cmpl-float v0, v0, v1
if-eqz v0, :cond_1d8
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
div-float v0, v11, v0
:goto_145
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
.line 234
mul-float v0, v4, v10
mul-float/2addr v0, v9
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
mul-float/2addr v0, v4
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bias:F
.line 236
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
add-float/2addr v0, v6
.line 237
cmpl-float v4, v0, v1
if-eqz v4, :cond_1db
div-float v0, v11, v0
:goto_158
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_mass:F
.line 242
:goto_15a
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget-boolean v0, v0, Lorg/jbox2d/dynamics/TimeStep;->warmStarting:Z
if-eqz v0, :cond_1e4
.line 245
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
iget-object v1, p1, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v1, v1, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
mul-float/2addr v0, v1
iput v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
.line 247
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v0
.line 248
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
invoke-virtual {v1, v4}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 250
iget v1, v5, Lorg/jbox2d/common/Vec2;->x:F
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v6
sub-float/2addr v1, v4
iput v1, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 251
iget v1, v5, Lorg/jbox2d/common/Vec2;->y:F
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
iget v6, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v6
sub-float/2addr v1, v4
iput v1, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 252
iget v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIA:F
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v4
mul-float/2addr v1, v4
sub-float v1, v3, v1
.line 254
iget v3, v8, Lorg/jbox2d/common/Vec2;->x:F
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
iget v5, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v5
add-float/2addr v3, v4
iput v3, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 255
iget v3, v8, Lorg/jbox2d/common/Vec2;->y:F
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
iget v5, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v5
add-float/2addr v3, v4
iput v3, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 256
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIB:F
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
mul-float/2addr v0, v3
add-float/2addr v0, v2
.line 258
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v3, 0x1
invoke-interface {v2, v3}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 263
:goto_1bd
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 265
iget-object v1, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v1, v1, v2
iput v0, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 266
return-void
.line 207
:cond_1ce
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1, v1}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
goto/16 :goto_ee
:cond_1d5
move v0, v1
.line 216
goto/16 :goto_113
:cond_1d8
move v0, v1
.line 233
goto/16 :goto_145
:cond_1db
move v0, v1
.line 237
goto/16 :goto_158
.line 239
:cond_1de
iput v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
.line 240
iput v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bias:F
goto/16 :goto_15a
.line 260
:cond_1e4
iput v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
move v0, v2
move v1, v3
goto :goto_1bd
.end method
.method public setDampingRatio(F)V
.registers 2
.prologue
.line 123
iput p1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_dampingRatio:F
.line 124
return-void
.end method
.method public setFrequency(F)V
.registers 2
.prologue
.line 107
iput p1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_frequencyHz:F
.line 108
return-void
.end method
.method public setLength(F)V
.registers 2
.prologue
.line 119
iput p1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_length:F
.line 120
return-void
.end method
.method public solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
.registers 14
.prologue
const/4 v0, 0x1
.line 309
iget v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_frequencyHz:F
const/4 v2, 0x0
cmpl-float v1, v1, v2
if-lez v1, :cond_9
.line 354
:cond_8
:goto_8
return v0
.line 312
:cond_9
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v1
.line 313
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v2
.line 314
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v3
.line 315
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v4
.line 316
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v5}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v5
.line 318
iget-object v6, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v6, v6, v7
iget-object v6, v6, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 319
iget-object v7, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v8, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v7, v7, v8
iget v7, v7, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 320
iget-object v8, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v9, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v8, v8, v9
iget-object v8, v8, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 321
iget-object v9, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v10, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v9, v9, v10
iget v9, v9, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 323
invoke-virtual {v1, v7}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 324
invoke-virtual {v2, v9}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 326
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v10}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v10, v11}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
invoke-static {v1, v10, v3}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 327
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v10}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-static {v2, v1, v4}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 328
invoke-virtual {v5, v8}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v4}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v6}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v3}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 331
invoke-virtual {v5}, Lorg/jbox2d/common/Vec2;->normalize()F
move-result v1
.line 332
iget v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_length:F
sub-float/2addr v1, v2
.line 333
sget v2, Lorg/jbox2d/common/Settings;->maxLinearCorrection:F
neg-float v2, v2
sget v10, Lorg/jbox2d/common/Settings;->maxLinearCorrection:F
invoke-static {v1, v2, v10}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v1
.line 335
iget v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_mass:F
neg-float v2, v2
mul-float/2addr v2, v1
.line 336
iget v10, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v10, v2
.line 337
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v2, v5
.line 339
iget v5, v6, Lorg/jbox2d/common/Vec2;->x:F
iget v11, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
mul-float/2addr v11, v10
sub-float/2addr v5, v11
iput v5, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 340
iget v5, v6, Lorg/jbox2d/common/Vec2;->y:F
iget v11, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
mul-float/2addr v11, v2
sub-float/2addr v5, v11
iput v5, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 341
iget v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIA:F
iget v6, v3, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v2
iget v3, v3, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v3, v10
sub-float v3, v6, v3
mul-float/2addr v3, v5
sub-float v3, v7, v3
.line 342
iget v5, v8, Lorg/jbox2d/common/Vec2;->x:F
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
mul-float/2addr v6, v10
add-float/2addr v5, v6
iput v5, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 343
iget v5, v8, Lorg/jbox2d/common/Vec2;->y:F
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
mul-float/2addr v6, v2
add-float/2addr v5, v6
iput v5, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 344
iget v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIB:F
iget v6, v4, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v2, v6
iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v10
sub-float/2addr v2, v4
mul-float/2addr v2, v5
add-float/2addr v2, v9
.line 347
iget-object v4, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v4, v4, v5
iput v3, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 349
iget-object v3, p1, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 351
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v3, 0x3
invoke-interface {v2, v3}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 352
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v3, 0x2
invoke-interface {v2, v3}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 354
invoke-static {v1}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v1
sget v2, Lorg/jbox2d/common/Settings;->linearSlop:F
cmpg-float v1, v1, v2
if-ltz v1, :cond_8
const/4 v0, 0x0
goto/16 :goto_8
.end method
.method public solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 10
.prologue
.line 270
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v0, v0, v1
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 271
iget-object v1, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v1, v1, v2
iget v1, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 272
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v2, v2, v3
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 273
iget-object v3, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v3, v3, v4
iget v3, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 275
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v4
.line 276
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v5}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v5
.line 279
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v6, v4}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 280
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 281
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v3, v6, v5}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 282
invoke-virtual {v5, v2}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 283
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v4}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-static {v6, v4}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v4
.line 285
iget v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_mass:F
neg-float v5, v5
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_bias:F
add-float/2addr v4, v6
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_gamma:F
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
mul-float/2addr v6, v7
add-float/2addr v4, v6
mul-float/2addr v4, v5
.line 286
iget v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
add-float/2addr v5, v4
iput v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_impulse:F
.line 289
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v4
.line 290
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_u:Lorg/jbox2d/common/Vec2;
iget v6, v6, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v6
.line 292
iget v6, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
mul-float/2addr v7, v5
sub-float/2addr v6, v7
iput v6, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 293
iget v6, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassA:F
mul-float/2addr v7, v4
sub-float/2addr v6, v7
iput v6, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 294
iget v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIA:F
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v6, v6, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v4
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v5
sub-float/2addr v6, v7
mul-float/2addr v0, v6
sub-float v0, v1, v0
.line 295
iget v1, v2, Lorg/jbox2d/common/Vec2;->x:F
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
mul-float/2addr v6, v5
add-float/2addr v1, v6
iput v1, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 296
iget v1, v2, Lorg/jbox2d/common/Vec2;->y:F
iget v6, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invMassB:F
mul-float/2addr v6, v4
add-float/2addr v1, v6
iput v1, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 297
iget v1, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_invIB:F
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v2, v2, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v2, v4
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v4, v4, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v5
sub-float/2addr v2, v4
mul-float/2addr v1, v2
add-float/2addr v1, v3
.line 300
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexA:I
aget-object v2, v2, v3
iput v0, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 302
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v2, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->m_indexB:I
aget-object v0, v0, v2
iput v1, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 304
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/DistanceJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v1, 0x2
invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 305
return-void
.end method