WeldJoint.smali
.class public Lorg/jbox2d/dynamics/joints/WeldJoint;
.super Lorg/jbox2d/dynamics/joints/Joint;
.source "WeldJoint.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 final m_impulse:Lorg/jbox2d/common/Vec3;
.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 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 final m_mass:Lorg/jbox2d/common/Mat33;
.field private final m_rA:Lorg/jbox2d/common/Vec2;
.field private final m_rB:Lorg/jbox2d/common/Vec2;
.field private m_referenceAngle:F
# direct methods
.method protected constructor <init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/WeldJointDef;)V
.registers 5
.prologue
.line 86
invoke-direct {p0, p1, p2}, Lorg/jbox2d/dynamics/joints/Joint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/JointDef;)V
.line 75
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
.line 76
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
.line 77
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
.line 78
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
.line 83
new-instance v0, Lorg/jbox2d/common/Mat33;
invoke-direct {v0}, Lorg/jbox2d/common/Mat33;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
.line 87
new-instance v0, Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/WeldJointDef;->localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-direct {v0, v1}, Lorg/jbox2d/common/Vec2;-><init>(Lorg/jbox2d/common/Vec2;)V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
.line 88
new-instance v0, Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/WeldJointDef;->localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-direct {v0, v1}, Lorg/jbox2d/common/Vec2;-><init>(Lorg/jbox2d/common/Vec2;)V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
.line 89
iget v0, p2, Lorg/jbox2d/dynamics/joints/WeldJointDef;->referenceAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_referenceAngle:F
.line 90
iget v0, p2, Lorg/jbox2d/dynamics/joints/WeldJointDef;->frequencyHz:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
.line 91
iget v0, p2, Lorg/jbox2d/dynamics/joints/WeldJointDef;->dampingRatio:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_dampingRatio:F
.line 93
new-instance v0, Lorg/jbox2d/common/Vec3;
invoke-direct {v0}, Lorg/jbox2d/common/Vec3;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
.line 94
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec3;->setZero()V
.line 95
return-void
.end method
# virtual methods
.method public getAnchorA(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 127
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->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 128
return-void
.end method
.method public getAnchorB(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 132
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->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 133
return-void
.end method
.method public getDampingRatio()F
.registers 2
.prologue
.line 118
iget v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_dampingRatio:F
return v0
.end method
.method public getFrequency()F
.registers 2
.prologue
.line 110
iget v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
return v0
.end method
.method public getLocalAnchorA()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 102
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLocalAnchorB()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 106
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getReactionForce(FLorg/jbox2d/common/Vec2;)V
.registers 5
.prologue
.line 137
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->x:F
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v1, v1, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {p2, v0, v1}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 138
invoke-virtual {p2, p1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 139
return-void
.end method
.method public getReactionTorque(F)F
.registers 3
.prologue
.line 143
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->z:F
mul-float/2addr v0, p1
return v0
.end method
.method public getReferenceAngle()F
.registers 2
.prologue
.line 98
iget v0, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_referenceAngle:F
return v0
.end method
.method public initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 18
.prologue
.line 148
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
.line 149
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_islandIndex:I
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
.line 150
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->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 {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 151
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->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 {v1, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 152
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_invMass:F
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassA:F
.line 153
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_invMass:F
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassB:F
.line 154
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_invI:F
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIA:F
.line 155
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_invI:F
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIB:F
.line 158
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v1, v1, v2
iget v4, v1, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 159
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v1, v1, v2
iget-object v5, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 160
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v1, v1, v2
iget v3, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 163
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v1, v1, v2
iget v6, v1, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 164
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v1, v1, v2
iget-object v7, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 165
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v1, v1, v2
iget v2, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 167
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v1
.line 168
move-object/from16 v0, p0
iget-object v8, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v8}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v8
.line 169
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 171
invoke-virtual {v1, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 172
invoke-virtual {v8, v6}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 175
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v9, v10}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->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
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v10, v11}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 176
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v9, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v9}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v8, v1, v9}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 187
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassB:F
.line 188
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIA:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIB:F
.line 190
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popMat33()Lorg/jbox2d/common/Mat33;
move-result-object v1
.line 192
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
add-float v13, v8, v9
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v15
mul-float/2addr v14, v10
add-float/2addr v13, v14
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v15
mul-float/2addr v14, v11
add-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 193
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v13, v13, Lorg/jbox2d/common/Vec2;->y:F
neg-float v13, v13
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v14
mul-float/2addr v13, v10
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v15
mul-float/2addr v14, v11
sub-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 194
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v13, v13, Lorg/jbox2d/common/Vec2;->y:F
neg-float v13, v13
mul-float/2addr v13, v10
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v11
sub-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 195
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
iget-object v13, v1, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->x:F
iput v13, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 196
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
add-float v13, v8, v9
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v15
mul-float/2addr v14, v10
add-float/2addr v13, v14
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v15
mul-float/2addr v14, v11
add-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 197
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v13, v13, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v10
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v11
add-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 198
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
iget-object v13, v1, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->x:F
iput v13, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 199
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
iget-object v13, v1, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->y:F
iput v13, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 200
iget-object v12, v1, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
add-float v13, v10, v11
iput v13, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 202
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
const/4 v13, 0x0
cmpl-float v12, v12, v13
if-lez v12, :cond_2de
.line 203
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-virtual {v1, v12}, Lorg/jbox2d/common/Mat33;->getInverse22(Lorg/jbox2d/common/Mat33;)V
.line 205
add-float v12, v10, v11
.line 206
const/4 v1, 0x0
cmpl-float v1, v12, v1
if-lez v1, :cond_2d5
const/high16 v1, 0x3f800000 # 1.0f
div-float/2addr v1, v12
.line 208
:goto_1cf
sub-float v4, v6, v4
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_referenceAngle:F
sub-float/2addr v4, v6
.line 211
const v6, 0x40c90fdb
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
mul-float/2addr v6, v13
.line 214
const/high16 v13, 0x40000000 # 2.0f
mul-float/2addr v13, v1
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_dampingRatio:F
mul-float/2addr v13, v14
mul-float/2addr v13, v6
.line 217
mul-float/2addr v1, v6
mul-float/2addr v6, v1
.line 220
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v14, v1, Lorg/jbox2d/dynamics/TimeStep;->dt:F
.line 221
mul-float v1, v14, v6
add-float/2addr v1, v13
mul-float/2addr v1, v14
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
.line 222
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
const/4 v13, 0x0
cmpl-float v1, v1, v13
if-eqz v1, :cond_2d8
const/high16 v1, 0x3f800000 # 1.0f
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
div-float/2addr v1, v13
:goto_207
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
.line 223
mul-float v1, v4, v14
mul-float/2addr v1, v6
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
mul-float/2addr v1, v4
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bias:F
.line 225
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
add-float/2addr v1, v12
.line 226
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v4, v4, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
const/4 v6, 0x0
cmpl-float v6, v1, v6
if-eqz v6, :cond_2db
const/high16 v6, 0x3f800000 # 1.0f
div-float v1, v6, v1
:goto_22b
iput v1, v4, Lorg/jbox2d/common/Vec3;->z:F
.line 233
:goto_22d
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget-boolean v1, v1, Lorg/jbox2d/dynamics/TimeStep;->warmStarting:Z
if-eqz v1, :cond_2f1
.line 234
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v1
.line 236
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p1
iget-object v6, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v6, v6, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Vec3;->mulLocal(F)Lorg/jbox2d/common/Vec3;
.line 238
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v4, v4, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, p0
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v6, v6, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {v1, v4, v6}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 240
iget v4, v5, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v8
sub-float/2addr v4, v6
iput v4, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 241
iget v4, v5, Lorg/jbox2d/common/Vec2;->y:F
iget v6, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v8
sub-float/2addr v4, v6
iput v4, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 242
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v4
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v5, v5, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v4, v5
mul-float/2addr v4, v10
sub-float/2addr v3, v4
.line 244
iget v4, v7, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v9
add-float/2addr v4, v5
iput v4, v7, Lorg/jbox2d/common/Vec2;->x:F
.line 245
iget v4, v7, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v9
add-float/2addr v4, v5
iput v4, v7, Lorg/jbox2d/common/Vec2;->y:F
.line 246
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v4, v4, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v1, v4
mul-float/2addr v1, v11
add-float/2addr v1, v2
.line 247
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v2, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
move v2, v3
.line 253
:goto_2a4
move-object/from16 v0, p1
iget-object v3, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 255
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 257
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x1
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 258
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x2
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 259
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x1
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushMat33(I)V
.line 260
return-void
.line 206
:cond_2d5
const/4 v1, 0x0
goto/16 :goto_1cf
.line 222
:cond_2d8
const/4 v1, 0x0
goto/16 :goto_207
.line 226
:cond_2db
const/4 v1, 0x0
goto/16 :goto_22b
.line 228
:cond_2de
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-virtual {v1, v4}, Lorg/jbox2d/common/Mat33;->getSymInverse33(Lorg/jbox2d/common/Mat33;)V
.line 229
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
.line 230
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bias:F
goto/16 :goto_22d
.line 249
:cond_2f1
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec3;->setZero()V
move v1, v2
move v2, v3
goto :goto_2a4
.end method
.method public setDampingRatio(F)V
.registers 2
.prologue
.line 122
iput p1, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_dampingRatio:F
.line 123
return-void
.end method
.method public setFrequency(F)V
.registers 2
.prologue
.line 114
iput p1, p0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
.line 115
return-void
.end method
.method public solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
.registers 25
.prologue
.line 339
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v4, v4, v5
iget-object v6, v4, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 340
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v4, v4, v5
iget v7, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 341
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v4, v4, v5
iget-object v8, v4, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 342
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v4, v4, v5
iget v9, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 343
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v4
.line 344
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v5}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v5
.line 345
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 346
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 347
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v12
.line 349
invoke-virtual {v4, v7}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 350
invoke-virtual {v5, v9}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 352
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassB:F
.line 353
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIA:F
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIB:F
move/from16 v16, v0
.line 355
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
move-object/from16 v0, v17
invoke-virtual {v10, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v17
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
move-object/from16 v18, v0
invoke-virtual/range {v17 .. v18}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v17
move-object/from16 v0, v17
invoke-static {v4, v0, v11}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 356
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v10, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v10}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-static {v5, v4, v12}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 359
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popMat33()Lorg/jbox2d/common/Mat33;
move-result-object v10
.line 360
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v17
.line 361
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v18
.line 363
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
add-float v5, v13, v14
iget v0, v11, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
iget v0, v11, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v20, v0
mul-float v19, v19, v20
mul-float v19, v19, v15
add-float v5, v5, v19
iget v0, v12, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
iget v0, v12, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v20, v0
mul-float v19, v19, v20
mul-float v19, v19, v16
add-float v5, v5, v19
iput v5, v4, Lorg/jbox2d/common/Vec3;->x:F
.line 364
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
iget v5, v11, Lorg/jbox2d/common/Vec2;->y:F
neg-float v5, v5
iget v0, v11, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v5, v5, v19
mul-float/2addr v5, v15
iget v0, v12, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
iget v0, v12, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v20, v0
mul-float v19, v19, v20
mul-float v19, v19, v16
sub-float v5, v5, v19
iput v5, v4, Lorg/jbox2d/common/Vec3;->x:F
.line 365
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v5, v11, Lorg/jbox2d/common/Vec2;->y:F
neg-float v5, v5
mul-float/2addr v5, v15
iget v0, v12, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
mul-float v19, v19, v16
sub-float v5, v5, v19
iput v5, v4, Lorg/jbox2d/common/Vec3;->x:F
.line 366
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
iget-object v5, v10, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
iget v5, v5, Lorg/jbox2d/common/Vec3;->x:F
iput v5, v4, Lorg/jbox2d/common/Vec3;->y:F
.line 367
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
add-float v5, v13, v14
iget v0, v11, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
iget v0, v11, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v20, v0
mul-float v19, v19, v20
mul-float v19, v19, v15
add-float v5, v5, v19
iget v0, v12, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
iget v0, v12, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v20, v0
mul-float v19, v19, v20
mul-float v19, v19, v16
add-float v5, v5, v19
iput v5, v4, Lorg/jbox2d/common/Vec3;->y:F
.line 368
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v5, v11, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v15
iget v0, v12, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v19, v19, v16
add-float v5, v5, v19
iput v5, v4, Lorg/jbox2d/common/Vec3;->y:F
.line 369
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
iget-object v5, v10, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v5, v5, Lorg/jbox2d/common/Vec3;->x:F
iput v5, v4, Lorg/jbox2d/common/Vec3;->z:F
.line 370
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
iget-object v5, v10, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v5, v5, Lorg/jbox2d/common/Vec3;->y:F
iput v5, v4, Lorg/jbox2d/common/Vec3;->z:F
.line 371
iget-object v4, v10, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
add-float v5, v15, v16
iput v5, v4, Lorg/jbox2d/common/Vec3;->z:F
.line 372
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
const/4 v5, 0x0
cmpl-float v4, v4, v5
if-lez v4, :cond_1fa
.line 373
move-object/from16 v0, v17
invoke-virtual {v0, v8}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v12}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v11}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 375
invoke-virtual/range {v17 .. v17}, Lorg/jbox2d/common/Vec2;->length()F
move-result v5
.line 376
const/4 v4, 0x0
.line 378
move-object/from16 v0, v17
move-object/from16 v1, v18
invoke-virtual {v10, v0, v1}, Lorg/jbox2d/common/Mat33;->solve22ToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 379
invoke-virtual/range {v18 .. v18}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 381
iget v10, v6, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, v18
iget v0, v0, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v17, v0
mul-float v17, v17, v13
sub-float v10, v10, v17
iput v10, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 382
iget v10, v6, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, v18
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v17, v0
mul-float v13, v13, v17
sub-float/2addr v10, v13
iput v10, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 383
move-object/from16 v0, v18
invoke-static {v11, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
mul-float/2addr v6, v15
sub-float/2addr v7, v6
.line 385
iget v6, v8, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, v18
iget v10, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v10, v14
add-float/2addr v6, v10
iput v6, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 386
iget v6, v8, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, v18
iget v10, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v10, v14
add-float/2addr v6, v10
iput v6, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 387
move-object/from16 v0, v18
invoke-static {v12, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
mul-float v6, v6, v16
add-float/2addr v6, v9
.line 414
:goto_1bc
move-object/from16 v0, p1
iget-object v8, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v8, v8, v9
iput v7, v8, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 416
move-object/from16 v0, p1
iget-object v7, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v7, v7, v8
iput v6, v7, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 418
move-object/from16 v0, p0
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v7, 0x5
invoke-interface {v6, v7}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 419
move-object/from16 v0, p0
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v7, 0x2
invoke-interface {v6, v7}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 420
move-object/from16 v0, p0
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v7, 0x1
invoke-interface {v6, v7}, Lorg/jbox2d/pooling/IWorldPool;->pushMat33(I)V
.line 422
sget v6, Lorg/jbox2d/common/Settings;->linearSlop:F
cmpg-float v5, v5, v6
if-gtz v5, :cond_2b5
sget v5, Lorg/jbox2d/common/Settings;->angularSlop:F
cmpg-float v4, v4, v5
if-gtz v4, :cond_2b5
const/4 v4, 0x1
:goto_1f9
return v4
.line 389
:cond_1fa
move-object/from16 v0, v17
invoke-virtual {v0, v8}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v12}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v11}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 390
sub-float v4, v9, v7
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_referenceAngle:F
sub-float v19, v4, v5
.line 392
invoke-virtual/range {v17 .. v17}, Lorg/jbox2d/common/Vec2;->length()F
move-result v5
.line 393
invoke-static/range {v19 .. v19}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v4
.line 395
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v20, v0
invoke-interface/range {v20 .. v20}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v20
.line 396
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v21, v0
invoke-interface/range {v21 .. v21}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v21
.line 397
move-object/from16 v0, v17
iget v0, v0, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v22, v0
move-object/from16 v0, v17
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v17, v0
move-object/from16 v0, v20
move/from16 v1, v22
move/from16 v2, v17
move/from16 v3, v19
invoke-virtual {v0, v1, v2, v3}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 399
move-object/from16 v0, v20
move-object/from16 v1, v21
invoke-virtual {v10, v0, v1}, Lorg/jbox2d/common/Mat33;->solve33ToOut(Lorg/jbox2d/common/Vec3;Lorg/jbox2d/common/Vec3;)V
.line 400
invoke-virtual/range {v21 .. v21}, Lorg/jbox2d/common/Vec3;->negateLocal()Lorg/jbox2d/common/Vec3;
.line 401
move-object/from16 v0, v21
iget v10, v0, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, v21
iget v0, v0, Lorg/jbox2d/common/Vec3;->y:F
move/from16 v17, v0
move-object/from16 v0, v18
move/from16 v1, v17
invoke-virtual {v0, v10, v1}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 403
iget v10, v6, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, v18
iget v0, v0, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v17, v0
mul-float v17, v17, v13
sub-float v10, v10, v17
iput v10, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 404
iget v10, v6, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, v18
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v17, v0
mul-float v13, v13, v17
sub-float/2addr v10, v13
iput v10, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 405
move-object/from16 v0, v18
invoke-static {v11, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
move-object/from16 v0, v21
iget v10, v0, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v6, v10
mul-float/2addr v6, v15
sub-float/2addr v7, v6
.line 407
iget v6, v8, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, v18
iget v10, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v10, v14
add-float/2addr v6, v10
iput v6, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 408
iget v6, v8, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, v18
iget v10, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v10, v14
add-float/2addr v6, v10
iput v6, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 409
move-object/from16 v0, v18
invoke-static {v12, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
move-object/from16 v0, v21
iget v8, v0, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v6, v8
mul-float v6, v6, v16
add-float/2addr v6, v9
.line 410
move-object/from16 v0, p0
iget-object v8, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v9, 0x2
invoke-interface {v8, v9}, Lorg/jbox2d/pooling/IWorldPool;->pushVec3(I)V
goto/16 :goto_1bc
.line 422
:cond_2b5
const/4 v4, 0x0
goto/16 :goto_1f9
.end method
.method public solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 18
.prologue
.line 264
move-object/from16 v0, p1
iget-object v1, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v1, v1, v2
iget-object v1, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 265
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v2, v2, v3
iget v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 266
move-object/from16 v0, p1
iget-object v3, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v3, v3, v4
iget-object v3, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 267
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v4, v4, v5
iget v4, v4, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 269
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invMassB:F
.line 270
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIA:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_invIB:F
.line 272
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 273
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 274
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 275
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_frequencyHz:F
const/4 v13, 0x0
cmpl-float v12, v12, v13
if-lez v12, :cond_11b
.line 276
sub-float v12, v4, v2
.line 278
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v13, v13, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->z:F
neg-float v13, v13
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_bias:F
add-float/2addr v12, v14
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_gamma:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v15, v15, Lorg/jbox2d/common/Vec3;->z:F
mul-float/2addr v14, v15
add-float/2addr v12, v14
mul-float/2addr v12, v13
.line 279
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v14, v13, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v14, v12
iput v14, v13, Lorg/jbox2d/common/Vec3;->z:F
.line 281
mul-float v13, v7, v12
sub-float/2addr v2, v13
.line 282
mul-float/2addr v12, v8
add-float/2addr v4, v12
.line 284
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v12, v9}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 285
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v2, v12, v11}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 286
invoke-virtual {v9, v3}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v11}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 289
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-static {v11, v9, v10}, Lorg/jbox2d/common/Mat33;->mul22ToOutUnsafe(Lorg/jbox2d/common/Mat33;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 290
invoke-virtual {v10}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 292
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v9, Lorg/jbox2d/common/Vec3;->x:F
iget v12, v10, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v11, v12
iput v11, v9, Lorg/jbox2d/common/Vec3;->x:F
.line 293
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v9, Lorg/jbox2d/common/Vec3;->y:F
iget v12, v10, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v11, v12
iput v11, v9, Lorg/jbox2d/common/Vec3;->y:F
.line 295
iget v9, v1, Lorg/jbox2d/common/Vec2;->x:F
iget v11, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v11, v5
sub-float/2addr v9, v11
iput v9, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 296
iget v9, v1, Lorg/jbox2d/common/Vec2;->y:F
iget v11, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v11
sub-float v5, v9, v5
iput v5, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 297
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
mul-float/2addr v1, v7
sub-float/2addr v2, v1
.line 299
iget v1, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v6
add-float/2addr v1, v5
iput v1, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 300
iget v1, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v6
add-float/2addr v1, v5
iput v1, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 301
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
mul-float/2addr v1, v8
add-float/2addr v1, v4
.line 330
:goto_fa
move-object/from16 v0, p1
iget-object v3, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexA:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 332
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_indexB:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 334
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x3
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 335
return-void
.line 303
:cond_11b
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v2, v12, v11}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 304
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v12, v9}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 305
invoke-virtual {v9, v3}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v11}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 306
sub-float v11, v4, v2
.line 308
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v12
.line 309
iget v13, v9, Lorg/jbox2d/common/Vec2;->x:F
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v12, v13, v9, v11}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 311
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v9
.line 312
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-static {v11, v12, v9}, Lorg/jbox2d/common/Mat33;->mulToOutUnsafe(Lorg/jbox2d/common/Mat33;Lorg/jbox2d/common/Vec3;Lorg/jbox2d/common/Vec3;)V
.line 313
invoke-virtual {v9}, Lorg/jbox2d/common/Vec3;->negateLocal()Lorg/jbox2d/common/Vec3;
.line 314
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v11, v9}, Lorg/jbox2d/common/Vec3;->addLocal(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
.line 316
iget v11, v9, Lorg/jbox2d/common/Vec3;->x:F
iget v12, v9, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {v10, v11, v12}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 318
iget v11, v1, Lorg/jbox2d/common/Vec2;->x:F
iget v12, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v12, v5
sub-float/2addr v11, v12
iput v11, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 319
iget v11, v1, Lorg/jbox2d/common/Vec2;->y:F
iget v12, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v12
sub-float v5, v11, v5
iput v5, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 320
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
iget v5, v9, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v1, v5
mul-float/2addr v1, v7
sub-float/2addr v2, v1
.line 322
iget v1, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v6
add-float/2addr v1, v5
iput v1, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 323
iget v1, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v6
add-float/2addr v1, v5
iput v1, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 324
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
iget v3, v9, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v1, v3
mul-float/2addr v1, v8
add-float/2addr v1, v4
.line 326
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/WeldJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x2
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec3(I)V
goto/16 :goto_fa
.end method