PrismaticJoint.smali
.class public Lorg/jbox2d/dynamics/joints/PrismaticJoint;
.super Lorg/jbox2d/dynamics/joints/Joint;
.source "PrismaticJoint.java"
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field private final m_K:Lorg/jbox2d/common/Mat33;
.field private m_a1:F
.field private m_a2:F
.field private final m_axis:Lorg/jbox2d/common/Vec2;
.field private m_enableLimit:Z
.field private m_enableMotor:Z
.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 m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.field protected final m_localAnchorA:Lorg/jbox2d/common/Vec2;
.field protected 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 protected final m_localXAxisA:Lorg/jbox2d/common/Vec2;
.field protected final m_localYAxisA:Lorg/jbox2d/common/Vec2;
.field private m_lowerTranslation:F
.field private m_maxMotorForce:F
.field private m_motorImpulse:F
.field private m_motorMass:F
.field private m_motorSpeed:F
.field private final m_perp:Lorg/jbox2d/common/Vec2;
.field protected m_referenceAngle:F
.field private m_s1:F
.field private m_s2:F
.field private m_upperTranslation:F
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 111
const-class v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_c
const/4 v0, 0x1
:goto_9
sput-boolean v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method protected constructor <init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/PrismaticJointDef;)V
.registers 7
.prologue
const/4 v3, 0x0
.line 145
invoke-direct {p0, p1, p2}, Lorg/jbox2d/dynamics/joints/Joint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/JointDef;)V
.line 132
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
.line 133
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
.line 146
new-instance v0, Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->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/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
.line 147
new-instance v0, Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->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/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
.line 148
new-instance v0, Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->localAxisA: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/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
.line 149
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->normalize()F
.line 150
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localYAxisA:Lorg/jbox2d/common/Vec2;
.line 151
const/high16 v0, 0x3f800000 # 1.0f
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localYAxisA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1, v2}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 152
iget v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->referenceAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_referenceAngle:F
.line 154
new-instance v0, Lorg/jbox2d/common/Vec3;
invoke-direct {v0}, Lorg/jbox2d/common/Vec3;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
.line 155
iput v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorMass:F
.line 156
iput v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
.line 158
iget v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->lowerTranslation:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
.line 159
iget v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->upperTranslation:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
.line 160
iget v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->maxMotorForce:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_maxMotorForce:F
.line 161
iget v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->motorSpeed:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorSpeed:F
.line 162
iget-boolean v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->enableLimit:Z
iput-boolean v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
.line 163
iget-boolean v0, p2, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;->enableMotor:Z
iput-boolean v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableMotor:Z
.line 164
sget-object v0, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 166
new-instance v0, Lorg/jbox2d/common/Mat33;
invoke-direct {v0}, Lorg/jbox2d/common/Mat33;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
.line 167
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
.line 168
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
.line 169
return-void
.end method
# virtual methods
.method public enableLimit(Z)V
.registers 4
.prologue
const/4 v1, 0x1
.line 275
iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
if-eq p1, v0, :cond_16
.line 276
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 277
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 278
iput-boolean p1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
.line 279
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v1, 0x0
iput v1, v0, Lorg/jbox2d/common/Vec3;->z:F
.line 281
:cond_16
return-void
.end method
.method public enableMotor(Z)V
.registers 4
.prologue
const/4 v1, 0x1
.line 333
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 334
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 335
iput-boolean p1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableMotor:Z
.line 336
return-void
.end method
.method public getAnchorA(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 181
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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 182
return-void
.end method
.method public getAnchorB(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 186
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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 187
return-void
.end method
.method public getJointSpeed()F
.registers 14
.prologue
.line 206
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
.line 207
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
.line 209
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v2
.line 210
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v3
.line 211
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v4
.line 212
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v5}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v5
.line 213
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v6}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v6
.line 214
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v7}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v7
.line 215
iget-object v8, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v8}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v8
.line 216
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 217
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 219
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
iget-object v12, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v12, v12, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 220
iget-object v11, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
iget-object v11, v11, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
invoke-static {v11, v2, v3}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 222
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
iget-object v12, v1, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v12, v12, Lorg/jbox2d/common/Sweep;->localCenter:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 223
iget-object v11, v1, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
iget-object v11, v11, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
invoke-static {v11, v2, v4}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 225
iget-object v11, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v11, v11, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-virtual {v11, v3}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 226
iget-object v11, v1, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget-object v11, v11, Lorg/jbox2d/common/Sweep;->c:Lorg/jbox2d/common/Vec2;
invoke-virtual {v6, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-virtual {v11, v4}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 228
invoke-virtual {v7, v6}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v6
invoke-virtual {v6, v5}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 229
iget-object v5, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
iget-object v5, v5, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
invoke-static {v5, v6, v8}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 231
iget-object v5, v0, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
.line 232
iget-object v6, v1, Lorg/jbox2d/dynamics/Body;->m_linearVelocity:Lorg/jbox2d/common/Vec2;
.line 233
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
.line 234
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
.line 237
invoke-static {v0, v8, v2}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 238
invoke-static {v1, v4, v9}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 239
invoke-static {v0, v3, v10}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 241
invoke-virtual {v9, v6}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v0, v5}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v0, v10}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 242
invoke-static {v7, v2}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
invoke-static {v8, v9}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
add-float/2addr v0, v1
.line 244
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/16 v2, 0x9
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 246
return v0
.end method
.method public getJointTranslation()F
.registers 6
.prologue
.line 250
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v2
.line 251
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v3, v4, v0}, Lorg/jbox2d/dynamics/Body;->getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 252
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v3, v4, v1}, Lorg/jbox2d/dynamics/Body;->getWorldPointToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 253
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v4, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v3, v4, v2}, Lorg/jbox2d/dynamics/Body;->getWorldVectorToOutUnsafe(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 254
invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 255
invoke-static {v1, v2}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 256
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x3
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 257
return v0
.end method
.method public getLocalAnchorA()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 172
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLocalAnchorB()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 176
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLocalAxisA()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 388
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLowerLimit()F
.registers 2
.prologue
.line 289
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
return v0
.end method
.method public getMaxMotorForce()F
.registers 2
.prologue
.line 380
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_maxMotorForce:F
return v0
.end method
.method public getMotorForce(F)F
.registers 3
.prologue
.line 376
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
mul-float/2addr v0, p1
return v0
.end method
.method public getMotorSpeed()F
.registers 2
.prologue
.line 355
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorSpeed:F
return v0
.end method
.method public getReactionForce(FLorg/jbox2d/common/Vec2;)V
.registers 7
.prologue
.line 191
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v0
.line 192
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis: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 v2, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v3, v3, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v2, v3
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 193
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-virtual {p2, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v2, v2, Lorg/jbox2d/common/Vec3;->x:F
invoke-virtual {v1, v2}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v0}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v0, p1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 194
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v1, 0x1
invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 195
return-void
.end method
.method public getReactionTorque(F)F
.registers 3
.prologue
.line 199
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->y:F
mul-float/2addr v0, p1
return v0
.end method
.method public getReferenceAngle()F
.registers 2
.prologue
.line 384
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_referenceAngle:F
return v0
.end method
.method public getUpperLimit()F
.registers 2
.prologue
.line 298
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
return v0
.end method
.method public initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 21
.prologue
.line 393
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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/PrismaticJoint;->m_indexA:I
.line 394
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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/PrismaticJoint;->m_indexB:I
.line 395
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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 396
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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 397
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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/PrismaticJoint;->m_invMassA:F
.line 398
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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/PrismaticJoint;->m_invMassB:F
.line 399
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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/PrismaticJoint;->m_invIA:F
.line 400
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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/PrismaticJoint;->m_invIB:F
.line 402
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/PrismaticJoint;->m_indexA:I
aget-object v1, v1, v2
iget-object v1, v1, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 403
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexA:I
aget-object v2, v2, v3
iget v4, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 404
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/PrismaticJoint;->m_indexA:I
aget-object v2, v2, v3
iget-object v5, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 405
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/PrismaticJoint;->m_indexA:I
aget-object v2, v2, v3
iget v3, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 407
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v2, v2, v6
iget-object v6, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 408
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v2, v2, v7
iget v7, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 409
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 v8, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v2, v2, v8
iget-object v8, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 410
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 v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v2, v2, v9
iget v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 412
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v9
.line 413
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v10
.line 414
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 415
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v12
.line 416
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v13}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v13
.line 417
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v14}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v14
.line 419
invoke-virtual {v9, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 420
invoke-virtual {v10, v7}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 423
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, 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 v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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
invoke-static {v9, v4, v13}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 424
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, 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 v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->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
invoke-static {v10, v4, v14}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 425
invoke-virtual {v11, v6}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v14}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v13}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 427
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invMassB:F
.line 428
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invIA:F
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invIB:F
.line 432
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v9, v1, v15}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 433
invoke-virtual {v12, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v13}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 434
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v12, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
.line 435
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v14, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
.line 437
add-float v1, v4, v6
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v15, v7
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
move/from16 v16, v0
mul-float v15, v15, v16
add-float/2addr v1, v15
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v15, v10
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
move/from16 v16, v0
mul-float v15, v15, v16
add-float/2addr v1, v15
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorMass:F
.line 438
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorMass:F
const/4 v15, 0x0
cmpl-float v1, v1, v15
if-lez v1, :cond_195
.line 439
const/high16 v1, 0x3f800000 # 1.0f
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorMass:F
div-float/2addr v1, v15
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorMass:F
.line 445
:cond_195
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localYAxisA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-static {v9, v1, v15}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 447
invoke-virtual {v12, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-virtual {v1, v13}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 448
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-static {v12, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
.line 449
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-static {v14, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
.line 451
add-float v1, v4, v6
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v9, v7
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v9, v13
add-float/2addr v1, v9
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v9, v10
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v9, v13
add-float/2addr v9, v1
.line 452
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v1, v7
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v13, v10
add-float/2addr v13, v1
.line 453
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v1, v7
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v1, v14
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v14, v10
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v14, v15
add-float/2addr v14, v1
.line 454
add-float v1, v7, v10
.line 455
const/4 v15, 0x0
cmpl-float v15, v1, v15
if-nez v15, :cond_200
.line 457
const/high16 v1, 0x3f800000 # 1.0f
.line 459
:cond_200
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v15, v7
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
move/from16 v16, v0
mul-float v16, v16, v10
add-float v15, v15, v16
.line 460
add-float v16, v4, v6
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
move/from16 v17, v0
mul-float v17, v17, v7
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
move/from16 v18, v0
mul-float v17, v17, v18
add-float v16, v16, v17
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
move/from16 v17, v0
mul-float v17, v17, v10
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
move/from16 v18, v0
mul-float v17, v17, v18
add-float v16, v16, v17
.line 462
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
move-object/from16 v17, v0
move-object/from16 v0, v17
iget-object v0, v0, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
move-object/from16 v17, v0
move-object/from16 v0, v17
invoke-virtual {v0, v9, v13, v14}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 463
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
iget-object v9, v9, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
invoke-virtual {v9, v13, v1, v15}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 464
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
iget-object v1, v1, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move/from16 v0, v16
invoke-virtual {v1, v14, v15, v0}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 468
move-object/from16 v0, p0
iget-boolean v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
if-eqz v1, :cond_3d2
.line 470
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v11}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
.line 471
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
sub-float/2addr v9, v11
invoke-static {v9}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v9
const/high16 v11, 0x40000000 # 2.0f
sget v13, Lorg/jbox2d/common/Settings;->linearSlop:F
mul-float/2addr v11, v13
cmpg-float v9, v9, v11
if-gez v9, :cond_385
.line 472
sget-object v1, Lorg/jbox2d/dynamics/joints/LimitState;->EQUAL:Lorg/jbox2d/dynamics/joints/LimitState;
move-object/from16 v0, p0
iput-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 492
:cond_284
:goto_284
move-object/from16 v0, p0
iget-boolean v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableMotor:Z
if-nez v1, :cond_28f
.line 493
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
.line 496
:cond_28f
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_3e1
.line 498
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p1
iget-object v9, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v9, v9, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
invoke-virtual {v1, v9}, Lorg/jbox2d/common/Vec3;->mulLocal(F)Lorg/jbox2d/common/Vec3;
.line 499
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
move-object/from16 v0, p1
iget-object v9, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v9, v9, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
mul-float/2addr v1, v9
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
.line 501
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v1
.line 502
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v12, v9}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v9
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v11, v13
invoke-virtual {v9, v11}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 503
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v9}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v9
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v11, Lorg/jbox2d/common/Vec3;->x:F
invoke-virtual {v9, v11}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v9
invoke-virtual {v9, v12}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 505
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v9, v9, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v9, v11
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v11, Lorg/jbox2d/common/Vec3;->y:F
add-float/2addr v9, v11
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v12, v12, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v11, v12
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v11, v12
add-float/2addr v9, v11
.line 506
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v11, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v11, v12
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v12, v12, Lorg/jbox2d/common/Vec3;->y:F
add-float/2addr v11, v12
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v12, v13
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v12, v13
add-float/2addr v11, v12
.line 508
iget v12, v5, Lorg/jbox2d/common/Vec2;->x:F
iget v13, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v4
sub-float/2addr v12, v13
iput v12, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 509
iget v12, v5, Lorg/jbox2d/common/Vec2;->y:F
iget v13, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v13
sub-float v4, v12, v4
iput v4, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 510
mul-float v4, v7, v9
sub-float/2addr v3, v4
.line 512
iget v4, v8, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v6
add-float/2addr v4, v5
iput v4, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 513
iget v4, v8, Lorg/jbox2d/common/Vec2;->y:F
iget v1, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v1, v6
add-float/2addr v1, v4
iput v1, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 514
mul-float v1, v10, v11
add-float/2addr v1, v2
.line 516
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v2, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
move v2, v3
.line 523
:goto_35c
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/PrismaticJoint;->m_indexA:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 525
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/PrismaticJoint;->m_indexB:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 527
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x2
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 528
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x4
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 529
return-void
.line 473
:cond_385
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
cmpg-float v9, v1, v9
if-gtz v9, :cond_3a4
.line 474
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v9, Lorg/jbox2d/dynamics/joints/LimitState;->AT_LOWER:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v1, v9, :cond_284
.line 475
sget-object v1, Lorg/jbox2d/dynamics/joints/LimitState;->AT_LOWER:Lorg/jbox2d/dynamics/joints/LimitState;
move-object/from16 v0, p0
iput-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 476
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v9, 0x0
iput v9, v1, Lorg/jbox2d/common/Vec3;->z:F
goto/16 :goto_284
.line 478
:cond_3a4
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
cmpl-float v1, v1, v9
if-ltz v1, :cond_3c3
.line 479
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v9, Lorg/jbox2d/dynamics/joints/LimitState;->AT_UPPER:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v1, v9, :cond_284
.line 480
sget-object v1, Lorg/jbox2d/dynamics/joints/LimitState;->AT_UPPER:Lorg/jbox2d/dynamics/joints/LimitState;
move-object/from16 v0, p0
iput-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 481
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v9, 0x0
iput v9, v1, Lorg/jbox2d/common/Vec3;->z:F
goto/16 :goto_284
.line 484
:cond_3c3
sget-object v1, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
move-object/from16 v0, p0
iput-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 485
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v9, 0x0
iput v9, v1, Lorg/jbox2d/common/Vec3;->z:F
goto/16 :goto_284
.line 488
:cond_3d2
sget-object v1, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
move-object/from16 v0, p0
iput-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 489
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v9, 0x0
iput v9, v1, Lorg/jbox2d/common/Vec3;->z:F
goto/16 :goto_284
.line 518
:cond_3e1
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec3;->setZero()V
.line 519
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
move v1, v2
move v2, v3
goto/16 :goto_35c
.end method
.method public isLimitEnabled()Z
.registers 2
.prologue
.line 266
iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
return v0
.end method
.method public isMotorEnabled()Z
.registers 2
.prologue
.line 324
iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableMotor:Z
return v0
.end method
.method public setLimits(FF)V
.registers 5
.prologue
const/4 v1, 0x1
.line 308
sget-boolean v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->$assertionsDisabled:Z
if-nez v0, :cond_f
cmpg-float v0, p1, p2
if-lez v0, :cond_f
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 309
:cond_f
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
cmpl-float v0, p1, v0
if-nez v0, :cond_1b
iget v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
cmpl-float v0, p2, v0
if-eqz v0, :cond_2e
.line 310
:cond_1b
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 311
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 312
iput p1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
.line 313
iput p2, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
.line 314
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v1, 0x0
iput v1, v0, Lorg/jbox2d/common/Vec3;->z:F
.line 316
:cond_2e
return-void
.end method
.method public setMaxMotorForce(F)V
.registers 4
.prologue
const/4 v1, 0x1
.line 364
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 365
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 366
iput p1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_maxMotorForce:F
.line 367
return-void
.end method
.method public setMotorSpeed(F)V
.registers 4
.prologue
const/4 v1, 0x1
.line 344
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 345
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 346
iput p1, p0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorSpeed:F
.line 347
return-void
.end method
.method public solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
.registers 33
.prologue
.line 667
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v3
.line 668
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v4
.line 669
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v5}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v5
.line 670
move-object/from16 v0, p0
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v6}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v6
.line 671
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v7}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v7
.line 672
move-object/from16 v0, p0
iget-object v8, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v8}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v8
.line 673
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 674
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 675
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 677
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v12
.line 679
move-object/from16 v0, p1
iget-object v13, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexA:I
aget-object v13, v13, v14
iget-object v13, v13, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 680
move-object/from16 v0, p1
iget-object v14, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexA:I
aget-object v14, v14, v15
iget v14, v14, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 681
move-object/from16 v0, p1
iget-object v15, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
move/from16 v16, v0
aget-object v15, v15, v16
iget-object v15, v15, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 682
move-object/from16 v0, p1
iget-object v0, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v16, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
move/from16 v17, v0
aget-object v16, v16, v17
move-object/from16 v0, v16
iget v0, v0, Lorg/jbox2d/dynamics/contacts/Position;->a:F
move/from16 v16, v0
.line 684
invoke-virtual {v3, v14}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 685
move/from16 v0, v16
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 687
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invMassA:F
move/from16 v17, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invMassB:F
move/from16 v18, v0
.line 688
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invIA:F
move/from16 v19, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invIB:F
move/from16 v20, v0
.line 691
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
move-object/from16 v21, v0
move-object/from16 v0, v21
invoke-virtual {v10, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v21
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
move-object/from16 v22, v0
invoke-virtual/range {v21 .. v22}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v21
move-object/from16 v0, v21
invoke-static {v3, v0, v5}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 692
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
move-object/from16 v21, v0
move-object/from16 v0, v21
invoke-virtual {v10, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v21
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
move-object/from16 v22, v0
invoke-virtual/range {v21 .. v22}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v21
move-object/from16 v0, v21
invoke-static {v4, v0, v6}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 693
invoke-virtual {v7, v15}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v6}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v13}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v5}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 695
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
invoke-static {v3, v4, v8}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 696
invoke-virtual {v10, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-virtual {v4, v5}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-static {v4, v8}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v21
.line 697
invoke-static {v6, v8}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v22
.line 698
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localYAxisA:Lorg/jbox2d/common/Vec2;
invoke-static {v3, v4, v9}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 700
invoke-virtual {v10, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v3
invoke-virtual {v3, v5}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v3
invoke-static {v3, v9}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v23
.line 701
invoke-static {v6, v9}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
.line 703
invoke-static {v9, v7}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v3
iput v3, v11, Lorg/jbox2d/common/Vec2;->x:F
.line 704
sub-float v3, v16, v14
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_referenceAngle:F
sub-float/2addr v3, v4
iput v3, v11, Lorg/jbox2d/common/Vec2;->y:F
.line 706
iget v3, v11, Lorg/jbox2d/common/Vec2;->x:F
invoke-static {v3}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v5
.line 707
iget v3, v11, Lorg/jbox2d/common/Vec2;->y:F
invoke-static {v3}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v24
.line 709
const/4 v4, 0x0
.line 710
const/4 v3, 0x0
.line 711
move-object/from16 v0, p0
iget-boolean v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
move/from16 v25, v0
if-eqz v25, :cond_351
.line 712
invoke-static {v8, v7}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v7
.line 713
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
move/from16 v25, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
move/from16 v26, v0
sub-float v25, v25, v26
invoke-static/range {v25 .. v25}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v25
const/high16 v26, 0x40000000 # 2.0f
sget v27, Lorg/jbox2d/common/Settings;->linearSlop:F
mul-float v26, v26, v27
cmpg-float v25, v25, v26
if-gez v25, :cond_29a
.line 715
sget v3, Lorg/jbox2d/common/Settings;->maxLinearCorrection:F
neg-float v3, v3
sget v4, Lorg/jbox2d/common/Settings;->maxLinearCorrection:F
invoke-static {v7, v3, v4}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v3
.line 718
invoke-static {v7}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v4
invoke-static {v5, v4}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v5
.line 719
const/4 v4, 0x1
move/from16 v30, v3
move v3, v4
move/from16 v4, v30
.line 737
:goto_179
if-eqz v3, :cond_2f7
.line 738
add-float v3, v17, v18
mul-float v7, v19, v23
mul-float v7, v7, v23
add-float/2addr v3, v7
mul-float v7, v20, v6
mul-float/2addr v7, v6
add-float/2addr v7, v3
.line 739
mul-float v3, v19, v23
mul-float v10, v20, v6
add-float/2addr v10, v3
.line 740
mul-float v3, v19, v23
mul-float v3, v3, v21
mul-float v25, v20, v6
mul-float v25, v25, v22
add-float v25, v25, v3
.line 741
add-float v3, v19, v20
.line 742
const/16 v26, 0x0
cmpl-float v26, v3, v26
if-nez v26, :cond_19f
.line 744
const/high16 v3, 0x3f800000 # 1.0f
.line 746
:cond_19f
mul-float v26, v19, v21
mul-float v27, v20, v22
add-float v26, v26, v27
.line 747
add-float v27, v17, v18
mul-float v28, v19, v21
mul-float v28, v28, v21
add-float v27, v27, v28
mul-float v28, v20, v22
mul-float v28, v28, v22
add-float v27, v27, v28
.line 749
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v28, v0
invoke-interface/range {v28 .. v28}, Lorg/jbox2d/pooling/IWorldPool;->popMat33()Lorg/jbox2d/common/Mat33;
move-result-object v28
.line 750
move-object/from16 v0, v28
iget-object v0, v0, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
move-object/from16 v29, v0
move-object/from16 v0, v29
move/from16 v1, v25
invoke-virtual {v0, v7, v10, v1}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 751
move-object/from16 v0, v28
iget-object v7, v0, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
move/from16 v0, v26
invoke-virtual {v7, v10, v3, v0}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 752
move-object/from16 v0, v28
iget-object v3, v0, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move/from16 v0, v25
move/from16 v1, v26
move/from16 v2, v27
invoke-virtual {v3, v0, v1, v2}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 754
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v3
.line 755
iget v7, v11, Lorg/jbox2d/common/Vec2;->x:F
iput v7, v3, Lorg/jbox2d/common/Vec3;->x:F
.line 756
iget v7, v11, Lorg/jbox2d/common/Vec2;->y:F
iput v7, v3, Lorg/jbox2d/common/Vec3;->y:F
.line 757
iput v4, v3, Lorg/jbox2d/common/Vec3;->z:F
.line 759
invoke-virtual {v3}, Lorg/jbox2d/common/Vec3;->negateLocal()Lorg/jbox2d/common/Vec3;
move-result-object v3
move-object/from16 v0, v28
invoke-virtual {v0, v3, v12}, Lorg/jbox2d/common/Mat33;->solve33ToOut(Lorg/jbox2d/common/Vec3;Lorg/jbox2d/common/Vec3;)V
.line 760
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec3(I)V
.line 761
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushMat33(I)V
.line 785
:goto_20b
iget v3, v12, Lorg/jbox2d/common/Vec3;->x:F
iget v4, v9, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v3, v4
iget v4, v12, Lorg/jbox2d/common/Vec3;->z:F
iget v7, v8, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v7
add-float/2addr v3, v4
.line 786
iget v4, v12, Lorg/jbox2d/common/Vec3;->x:F
iget v7, v9, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v7
iget v7, v12, Lorg/jbox2d/common/Vec3;->z:F
iget v8, v8, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v8
add-float/2addr v4, v7
.line 787
iget v7, v12, Lorg/jbox2d/common/Vec3;->x:F
mul-float v7, v7, v23
iget v8, v12, Lorg/jbox2d/common/Vec3;->y:F
add-float/2addr v7, v8
iget v8, v12, Lorg/jbox2d/common/Vec3;->z:F
mul-float v8, v8, v21
add-float/2addr v7, v8
.line 788
iget v8, v12, Lorg/jbox2d/common/Vec3;->x:F
mul-float/2addr v6, v8
iget v8, v12, Lorg/jbox2d/common/Vec3;->y:F
add-float/2addr v6, v8
iget v8, v12, Lorg/jbox2d/common/Vec3;->z:F
mul-float v8, v8, v22
add-float/2addr v6, v8
.line 790
iget v8, v13, Lorg/jbox2d/common/Vec2;->x:F
mul-float v9, v17, v3
sub-float/2addr v8, v9
iput v8, v13, Lorg/jbox2d/common/Vec2;->x:F
.line 791
iget v8, v13, Lorg/jbox2d/common/Vec2;->y:F
mul-float v9, v17, v4
sub-float/2addr v8, v9
iput v8, v13, Lorg/jbox2d/common/Vec2;->y:F
.line 792
mul-float v7, v7, v19
sub-float v7, v14, v7
.line 793
iget v8, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float v3, v3, v18
add-float/2addr v3, v8
iput v3, v15, Lorg/jbox2d/common/Vec2;->x:F
.line 794
iget v3, v15, Lorg/jbox2d/common/Vec2;->y:F
mul-float v4, v4, v18
add-float/2addr v3, v4
iput v3, v15, Lorg/jbox2d/common/Vec2;->y:F
.line 795
mul-float v3, v20, v6
add-float v3, v3, v16
.line 798
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 v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexA:I
aget-object v4, v4, v6
iput v7, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 800
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 v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v4, v4, v6
iput v3, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 802
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x7
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 803
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec3(I)V
.line 804
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x2
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 806
sget v3, Lorg/jbox2d/common/Settings;->linearSlop:F
cmpg-float v3, v5, v3
if-gtz v3, :cond_34e
sget v3, Lorg/jbox2d/common/Settings;->angularSlop:F
cmpg-float v3, v24, v3
if-gtz v3, :cond_34e
const/4 v3, 0x1
:goto_299
return v3
.line 720
:cond_29a
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
move/from16 v25, v0
cmpg-float v25, v7, v25
if-gtz v25, :cond_2c9
.line 722
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
sub-float v3, v7, v3
sget v4, Lorg/jbox2d/common/Settings;->linearSlop:F
add-float/2addr v3, v4
sget v4, Lorg/jbox2d/common/Settings;->maxLinearCorrection:F
neg-float v4, v4
const/16 v25, 0x0
move/from16 v0, v25
invoke-static {v3, v4, v0}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v3
.line 725
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_lowerTranslation:F
sub-float/2addr v4, v7
invoke-static {v5, v4}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v5
.line 726
const/4 v4, 0x1
move/from16 v30, v3
move v3, v4
move/from16 v4, v30
goto/16 :goto_179
.line 727
:cond_2c9
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
move/from16 v25, v0
cmpl-float v25, v7, v25
if-ltz v25, :cond_351
.line 729
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
sub-float v3, v7, v3
sget v4, Lorg/jbox2d/common/Settings;->linearSlop:F
sub-float/2addr v3, v4
const/4 v4, 0x0
sget v25, Lorg/jbox2d/common/Settings;->maxLinearCorrection:F
move/from16 v0, v25
invoke-static {v3, v4, v0}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v3
.line 732
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_upperTranslation:F
sub-float v4, v7, v4
invoke-static {v5, v4}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v5
.line 733
const/4 v4, 0x1
move/from16 v30, v3
move v3, v4
move/from16 v4, v30
goto/16 :goto_179
.line 763
:cond_2f7
add-float v3, v17, v18
mul-float v4, v19, v23
mul-float v4, v4, v23
add-float/2addr v3, v4
mul-float v4, v20, v6
mul-float/2addr v4, v6
add-float/2addr v4, v3
.line 764
mul-float v3, v19, v23
mul-float v7, v20, v6
add-float/2addr v7, v3
.line 765
add-float v3, v19, v20
.line 766
const/16 v25, 0x0
cmpl-float v25, v3, v25
if-nez v25, :cond_311
.line 767
const/high16 v3, 0x3f800000 # 1.0f
.line 770
:cond_311
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v25, v0
invoke-interface/range {v25 .. v25}, Lorg/jbox2d/pooling/IWorldPool;->popMat22()Lorg/jbox2d/common/Mat22;
move-result-object v25
.line 771
move-object/from16 v0, v25
iget-object v0, v0, Lorg/jbox2d/common/Mat22;->ex:Lorg/jbox2d/common/Vec2;
move-object/from16 v26, v0
move-object/from16 v0, v26
invoke-virtual {v0, v4, v7}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 772
move-object/from16 v0, v25
iget-object v4, v0, Lorg/jbox2d/common/Mat22;->ey:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v7, v3}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 775
invoke-virtual {v11}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v3
move-object/from16 v0, v25
invoke-virtual {v0, v3, v10}, Lorg/jbox2d/common/Mat22;->solveToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 776
invoke-virtual {v11}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 778
iget v3, v10, Lorg/jbox2d/common/Vec2;->x:F
iput v3, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 779
iget v3, v10, Lorg/jbox2d/common/Vec2;->y:F
iput v3, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 780
const/4 v3, 0x0
iput v3, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 782
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushMat22(I)V
goto/16 :goto_20b
.line 806
:cond_34e
const/4 v3, 0x0
goto/16 :goto_299
:cond_351
move/from16 v30, v3
move v3, v4
move/from16 v4, v30
goto/16 :goto_179
.end method
.method public solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 20
.prologue
.line 533
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/PrismaticJoint;->m_indexA:I
aget-object v1, v1, v2
iget-object v3, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 534
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/PrismaticJoint;->m_indexA:I
aget-object v1, v1, v2
iget v2, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 535
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 v4, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v1, v1, v4
iget-object v4, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 536
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 v5, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_indexB:I
aget-object v1, v1, v5
iget v1, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 538
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invMassB:F
.line 539
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invIA:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_invIB:F
.line 541
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 544
move-object/from16 v0, p0
iget-boolean v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableMotor:Z
if-eqz v10, :cond_e7
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v11, Lorg/jbox2d/dynamics/joints/LimitState;->EQUAL:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v10, v11, :cond_e7
.line 545
invoke-virtual {v9, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
invoke-virtual {v10, v3}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 546
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v10, v9}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v10
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v11, v1
add-float/2addr v10, v11
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v11, v2
sub-float/2addr v10, v11
.line 547
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorMass:F
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorSpeed:F
sub-float v10, v12, v10
mul-float/2addr v10, v11
.line 548
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
.line 549
move-object/from16 v0, p1
iget-object v12, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v12, v12, Lorg/jbox2d/dynamics/TimeStep;->dt:F
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_maxMotorForce:F
mul-float/2addr v12, v13
.line 550
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
add-float/2addr v10, v13
neg-float v13, v12
invoke-static {v10, v13, v12}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v10
move-object/from16 v0, p0
iput v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
.line 551
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_motorImpulse:F
sub-float/2addr v10, v11
.line 553
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 554
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v10}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 555
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v12, v10
.line 556
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v10, v13
.line 558
iget v13, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v14, v11, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v5
sub-float/2addr v13, v14
iput v13, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 559
iget v13, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v14, v11, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v5
sub-float/2addr v13, v14
iput v13, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 560
mul-float/2addr v12, v7
sub-float/2addr v2, v12
.line 562
iget v12, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v13, v11, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v6
add-float/2addr v12, v13
iput v12, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 563
iget v12, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v11, v11, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v11, v6
add-float/2addr v11, v12
iput v11, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 564
mul-float/2addr v10, v8
add-float/2addr v1, v10
.line 566
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v11, 0x1
invoke-interface {v10, v11}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 569
:cond_e7
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 570
invoke-virtual {v9, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-virtual {v11, v3}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 571
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-static {v11, v9}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v11
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v12, v1
add-float/2addr v11, v12
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v12, v2
sub-float/2addr v11, v12
iput v11, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 572
sub-float v11, v1, v2
iput v11, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 575
move-object/from16 v0, p0
iget-boolean v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_enableLimit:Z
if-eqz v11, :cond_2c0
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v11, v12, :cond_2c0
.line 578
invoke-virtual {v9, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-virtual {v11, v3}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 579
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-static {v11, v9}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v11
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v12, v1
add-float/2addr v11, v12
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v12, v2
sub-float/2addr v11, v12
.line 581
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v12
.line 582
iget v13, v10, Lorg/jbox2d/common/Vec2;->x:F
iget v14, v10, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v12, v13, v14, v11}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 584
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v11
.line 585
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v13}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v13
.line 587
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v11, v14}, Lorg/jbox2d/common/Vec3;->set(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
.line 588
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
invoke-virtual {v12}, Lorg/jbox2d/common/Vec3;->negateLocal()Lorg/jbox2d/common/Vec3;
move-result-object v12
invoke-virtual {v14, v12, v13}, Lorg/jbox2d/common/Mat33;->solve33ToOut(Lorg/jbox2d/common/Vec3;Lorg/jbox2d/common/Vec3;)V
.line 590
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v12, v13}, Lorg/jbox2d/common/Vec3;->addLocal(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
.line 592
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v14, Lorg/jbox2d/dynamics/joints/LimitState;->AT_LOWER:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v12, v14, :cond_2a5
.line 593
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v14, v14, Lorg/jbox2d/common/Vec3;->z:F
const/4 v15, 0x0
invoke-static {v14, v15}, Lorg/jbox2d/common/MathUtils;->max(FF)F
move-result v14
iput v14, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 600
:cond_18a
:goto_18a
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v12
.line 601
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v14}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v14
.line 603
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
iget-object v15, v15, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v15, v15, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget-object v0, v0, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget v0, v0, Lorg/jbox2d/common/Vec3;->y:F
move/from16 v16, v0
move/from16 v0, v16
invoke-virtual {v9, v15, v0}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
move-result-object v15
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
move-object/from16 v16, v0
move-object/from16 v0, v16
iget v0, v0, Lorg/jbox2d/common/Vec3;->z:F
move/from16 v16, v0
iget v0, v11, Lorg/jbox2d/common/Vec3;->z:F
move/from16 v17, v0
sub-float v16, v16, v17
invoke-virtual/range {v15 .. v16}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 604
invoke-virtual {v12, v10}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
invoke-virtual {v10}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v10
invoke-virtual {v10, v9}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 606
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
invoke-virtual {v10, v12, v14}, Lorg/jbox2d/common/Mat33;->solve22ToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 607
iget v10, v11, Lorg/jbox2d/common/Vec3;->x:F
iget v12, v11, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {v14, v10, v12}, Lorg/jbox2d/common/Vec2;->addLocal(FF)Lorg/jbox2d/common/Vec2;
.line 608
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v12, v14, Lorg/jbox2d/common/Vec2;->x:F
iput v12, v10, Lorg/jbox2d/common/Vec3;->x:F
.line 609
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v12, v14, Lorg/jbox2d/common/Vec2;->y:F
iput v12, v10, Lorg/jbox2d/common/Vec3;->y:F
.line 611
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v13, v10}, Lorg/jbox2d/common/Vec3;->set(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
move-result-object v10
invoke-virtual {v10, v11}, Lorg/jbox2d/common/Vec3;->subLocal(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
.line 613
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 614
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_axis:Lorg/jbox2d/common/Vec2;
invoke-virtual {v9, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
iget v12, v13, Lorg/jbox2d/common/Vec3;->z:F
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 615
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-virtual {v10, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
iget v12, v13, Lorg/jbox2d/common/Vec3;->x:F
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-virtual {v11, v9}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 617
iget v9, v13, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v9, v11
iget v11, v13, Lorg/jbox2d/common/Vec3;->y:F
add-float/2addr v9, v11
iget v11, v13, Lorg/jbox2d/common/Vec3;->z:F
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a1:F
mul-float/2addr v11, v12
add-float/2addr v9, v11
.line 618
iget v11, v13, Lorg/jbox2d/common/Vec3;->x:F
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v11, v12
iget v12, v13, Lorg/jbox2d/common/Vec3;->y:F
add-float/2addr v11, v12
iget v12, v13, Lorg/jbox2d/common/Vec3;->z:F
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_a2:F
mul-float/2addr v12, v13
add-float/2addr v11, v12
.line 620
iget v12, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v13, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v5
sub-float/2addr v12, v13
iput v12, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 621
iget v12, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v13, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v13
sub-float v5, v12, v5
iput v5, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 622
mul-float v3, v7, v9
sub-float/2addr v2, v3
.line 624
iget v3, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v6
add-float/2addr v3, v5
iput v3, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 625
iget v3, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v6
add-float/2addr v3, v5
iput v3, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 626
mul-float v3, v8, v11
add-float/2addr v1, v3
.line 628
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x3
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 629
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x3
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec3(I)V
.line 656
:goto_284
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/PrismaticJoint;->m_indexA:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 658
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/PrismaticJoint;->m_indexB:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 660
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x2
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 661
return-void
.line 594
:cond_2a5
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v14, Lorg/jbox2d/dynamics/joints/LimitState;->AT_UPPER:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v12, v14, :cond_18a
.line 595
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v14, v14, Lorg/jbox2d/common/Vec3;->z:F
const/4 v15, 0x0
invoke-static {v14, v15}, Lorg/jbox2d/common/MathUtils;->min(FF)F
move-result v14
iput v14, v12, Lorg/jbox2d/common/Vec3;->z:F
goto/16 :goto_18a
.line 632
:cond_2c0
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 633
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_K:Lorg/jbox2d/common/Mat33;
invoke-virtual {v10}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v11, v12, v9}, Lorg/jbox2d/common/Mat33;->solve22ToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 634
invoke-virtual {v10}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 636
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v10, Lorg/jbox2d/common/Vec3;->x:F
iget v12, v9, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v11, v12
iput v11, v10, Lorg/jbox2d/common/Vec3;->x:F
.line 637
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v11, v10, Lorg/jbox2d/common/Vec3;->y:F
iget v12, v9, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v11, v12
iput v11, v10, Lorg/jbox2d/common/Vec3;->y:F
.line 639
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 640
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_perp:Lorg/jbox2d/common/Vec2;
invoke-virtual {v10, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
iget v12, v9, Lorg/jbox2d/common/Vec2;->x:F
invoke-virtual {v11, v12}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 641
iget v11, v9, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s1:F
mul-float/2addr v11, v12
iget v12, v9, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v11, v12
.line 642
iget v12, v9, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_s2:F
mul-float/2addr v12, v13
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v9, v12
.line 644
iget v12, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v13, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v5
sub-float/2addr v12, v13
iput v12, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 645
iget v12, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v13, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v13
sub-float v5, v12, v5
iput v5, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 646
mul-float v3, v7, v11
sub-float/2addr v2, v3
.line 648
iget v3, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v6
add-float/2addr v3, v5
iput v3, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 649
iget v3, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v6
add-float/2addr v3, v5
iput v3, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 650
mul-float v3, v8, v9
add-float/2addr v1, v3
.line 652
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x2
invoke-interface {v3, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_284
.end method