RevoluteJoint.smali
.class public Lorg/jbox2d/dynamics/joints/RevoluteJoint;
.super Lorg/jbox2d/dynamics/joints/Joint;
.source "RevoluteJoint.java"
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.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 private m_lowerAngle:F
.field private final m_mass:Lorg/jbox2d/common/Mat33;
.field private m_maxMotorTorque:F
.field private m_motorImpulse:F
.field private m_motorMass:F
.field private m_motorSpeed:F
.field private final m_rA:Lorg/jbox2d/common/Vec2;
.field private final m_rB:Lorg/jbox2d/common/Vec2;
.field protected m_referenceAngle:F
.field private m_upperAngle:F
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 59
const-class v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;
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/RevoluteJoint;->$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/RevoluteJointDef;)V
.registers 5
.prologue
.line 92
invoke-direct {p0, p1, p2}, Lorg/jbox2d/dynamics/joints/Joint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/JointDef;)V
.line 62
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
.line 63
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
.line 64
new-instance v0, Lorg/jbox2d/common/Vec3;
invoke-direct {v0}, Lorg/jbox2d/common/Vec3;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
.line 79
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
.line 80
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
.line 81
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
.line 82
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
.line 87
new-instance v0, Lorg/jbox2d/common/Mat33;
invoke-direct {v0}, Lorg/jbox2d/common/Mat33;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
.line 93
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 94
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
iget-object v1, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 95
iget v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->referenceAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
.line 97
const/4 v0, 0x0
iput v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
.line 99
iget v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->lowerAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
.line 100
iget v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->upperAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
.line 101
iget v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->maxMotorTorque:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_maxMotorTorque:F
.line 102
iget v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->motorSpeed:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorSpeed:F
.line 103
iget-boolean v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->enableLimit:Z
iput-boolean v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
.line 104
iget-boolean v0, p2, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;->enableMotor:Z
iput-boolean v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableMotor:Z
.line 105
sget-object v0, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 106
return-void
.end method
# virtual methods
.method public enableLimit(Z)V
.registers 4
.prologue
const/4 v1, 0x1
.line 528
iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
if-eq p1, v0, :cond_16
.line 529
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 530
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 531
iput-boolean p1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
.line 532
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v1, 0x0
iput v1, v0, Lorg/jbox2d/common/Vec3;->z:F
.line 534
:cond_16
return-void
.end method
.method public enableMotor(Z)V
.registers 4
.prologue
const/4 v1, 0x1
.line 494
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 495
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 496
iput-boolean p1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableMotor:Z
.line 497
return-void
.end method
.method public getAnchorA(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 459
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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 460
return-void
.end method
.method public getAnchorB(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 464
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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 465
return-void
.end method
.method public getJointAngle()F
.registers 3
.prologue
.line 478
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
.line 479
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
.line 480
iget-object v1, v1, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v1, v1, Lorg/jbox2d/common/Sweep;->a:F
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v0, v0, Lorg/jbox2d/common/Sweep;->a:F
sub-float v0, v1, v0
iget v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
sub-float/2addr v0, v1
return v0
.end method
.method public getJointSpeed()F
.registers 3
.prologue
.line 484
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
.line 485
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
.line 486
iget v1, v1, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
iget v0, v0, Lorg/jbox2d/dynamics/Body;->m_angularVelocity:F
sub-float v0, v1, v0
return v0
.end method
.method public getLocalAnchorA()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 446
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLocalAnchorB()Lorg/jbox2d/common/Vec2;
.registers 2
.prologue
.line 450
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
return-object v0
.end method
.method public getLowerLimit()F
.registers 2
.prologue
.line 537
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
return v0
.end method
.method public getMaxMotorTorque()F
.registers 2
.prologue
.line 520
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_maxMotorTorque:F
return v0
.end method
.method public getMotorSpeed()F
.registers 2
.prologue
.line 516
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorSpeed:F
return v0
.end method
.method public getMotorTorque(F)F
.registers 3
.prologue
.line 500
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
mul-float/2addr v0, p1
return v0
.end method
.method public getReactionForce(FLorg/jbox2d/common/Vec2;)V
.registers 5
.prologue
.line 469
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->x:F
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v1, v1, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {p2, v0, v1}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v0, p1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 470
return-void
.end method
.method public getReactionTorque(F)F
.registers 3
.prologue
.line 474
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->z:F
mul-float/2addr v0, p1
return v0
.end method
.method public getReferenceAngle()F
.registers 2
.prologue
.line 454
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
return v0
.end method
.method public getUpperLimit()F
.registers 2
.prologue
.line 541
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
return v0
.end method
.method public initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 18
.prologue
.line 110
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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/RevoluteJoint;->m_indexA:I
.line 111
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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/RevoluteJoint;->m_indexB:I
.line 112
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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 113
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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 114
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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/RevoluteJoint;->m_invMassA:F
.line 115
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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/RevoluteJoint;->m_invMassB:F
.line 116
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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/RevoluteJoint;->m_invIA:F
.line 117
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->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/RevoluteJoint;->m_invIB:F
.line 120
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/RevoluteJoint;->m_indexA:I
aget-object v1, v1, v2
iget v4, v1, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 121
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/RevoluteJoint;->m_indexA:I
aget-object v1, v1, v2
iget-object v5, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 122
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/RevoluteJoint;->m_indexA:I
aget-object v1, v1, v2
iget v3, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 125
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/RevoluteJoint;->m_indexB:I
aget-object v1, v1, v2
iget v6, v1, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 126
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/RevoluteJoint;->m_indexB:I
aget-object v1, v1, v2
iget-object v7, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 127
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/RevoluteJoint;->m_indexB:I
aget-object v1, v1, v2
iget v2, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 128
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v1
.line 129
move-object/from16 v0, p0
iget-object v8, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v8}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v8
.line 130
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 132
invoke-virtual {v1, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 133
invoke-virtual {v8, v6}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 136
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v9, v10}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v10, v11}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v10
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v10, v11}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 137
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v9, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v9}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v8, v1, v9}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 148
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invMassB:F
.line 149
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIA:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIB:F
.line 151
add-float v1, v10, v11
const/4 v12, 0x0
cmpl-float v1, v1, v12
if-nez v1, :cond_302
const/4 v1, 0x1
.line 153
:goto_106
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
add-float v13, v8, v9
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v15
mul-float/2addr v14, v10
add-float/2addr v13, v14
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v15
mul-float/2addr v14, v11
add-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 154
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v13, v13, Lorg/jbox2d/common/Vec2;->y:F
neg-float v13, v13
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v14
mul-float/2addr v13, v10
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v15
mul-float/2addr v14, v11
sub-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 155
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v13, v13, Lorg/jbox2d/common/Vec2;->y:F
neg-float v13, v13
mul-float/2addr v13, v10
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v14, v11
sub-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->x:F
.line 156
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v13, v13, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->x:F
iput v13, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 157
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
add-float v13, v8, v9
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v15
mul-float/2addr v14, v10
add-float/2addr v13, v14
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v15, v15, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v15
mul-float/2addr v14, v11
add-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 158
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
iget v13, v13, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v13, v10
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
iget v14, v14, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v14, v11
add-float/2addr v13, v14
iput v13, v12, Lorg/jbox2d/common/Vec3;->y:F
.line 159
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ex:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v13, v13, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->x:F
iput v13, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 160
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ey:Lorg/jbox2d/common/Vec3;
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v13, v13, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->y:F
iput v13, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 161
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
add-float v13, v10, v11
iput v13, v12, Lorg/jbox2d/common/Vec3;->z:F
.line 163
add-float v12, v10, v11
move-object/from16 v0, p0
iput v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
.line 164
move-object/from16 v0, p0
iget v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
const/4 v13, 0x0
cmpl-float v12, v12, v13
if-lez v12, :cond_1ff
.line 165
const/high16 v12, 0x3f800000 # 1.0f
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
div-float/2addr v12, v13
move-object/from16 v0, p0
iput v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
.line 168
:cond_1ff
move-object/from16 v0, p0
iget-boolean v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableMotor:Z
if-eqz v12, :cond_207
if-eqz v1, :cond_20c
.line 169
:cond_207
const/4 v12, 0x0
move-object/from16 v0, p0
iput v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
.line 172
:cond_20c
move-object/from16 v0, p0
iget-boolean v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
if-eqz v12, :cond_352
if-nez v1, :cond_352
.line 173
sub-float v1, v6, v4
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
sub-float/2addr v1, v4
.line 174
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
sub-float/2addr v4, v6
invoke-static {v4}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v4
const/high16 v6, 0x40000000 # 2.0f
sget v12, Lorg/jbox2d/common/Settings;->angularSlop:F
mul-float/2addr v6, v12
cmpg-float v4, v4, v6
if-gez v4, :cond_305
.line 175
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/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 194
:goto_237
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_35a
.line 195
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v1
.line 197
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v6, v4, Lorg/jbox2d/common/Vec3;->x:F
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;->dtRatio:F
mul-float/2addr v6, v12
iput v6, v4, Lorg/jbox2d/common/Vec3;->x:F
.line 198
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v6, v4, Lorg/jbox2d/common/Vec3;->y:F
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;->dtRatio:F
mul-float/2addr v6, v12
iput v6, v4, Lorg/jbox2d/common/Vec3;->y:F
.line 199
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
move-object/from16 v0, p1
iget-object v6, v0, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v6, v6, Lorg/jbox2d/dynamics/TimeStep;->dtRatio:F
mul-float/2addr v4, v6
move-object/from16 v0, p0
iput v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
.line 201
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v4, v4, Lorg/jbox2d/common/Vec3;->x:F
iput v4, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 202
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v4, v4, Lorg/jbox2d/common/Vec3;->y:F
iput v4, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 204
iget v4, v5, Lorg/jbox2d/common/Vec2;->x:F
iget v6, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v8
sub-float/2addr v4, v6
iput v4, v5, Lorg/jbox2d/common/Vec2;->x:F
.line 205
iget v4, v5, Lorg/jbox2d/common/Vec2;->y:F
iget v6, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v8
sub-float/2addr v4, v6
iput v4, v5, Lorg/jbox2d/common/Vec2;->y:F
.line 206
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v4
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
add-float/2addr v4, v5
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v5, v5, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v4, v5
mul-float/2addr v4, v10
sub-float/2addr v3, v4
.line 208
iget v4, v7, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v1, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v5, v9
add-float/2addr v4, v5
iput v4, v7, Lorg/jbox2d/common/Vec2;->x:F
.line 209
iget v4, v7, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v1, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v9
add-float/2addr v4, v5
iput v4, v7, Lorg/jbox2d/common/Vec2;->y:F
.line 210
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v4, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v1
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
add-float/2addr v1, v4
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v4, v4, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v1, v4
mul-float/2addr v1, v11
add-float/2addr v1, v2
.line 211
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x1
invoke-interface {v2, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
move v2, v3
.line 217
:goto_2d9
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/RevoluteJoint;->m_indexA:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 219
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/RevoluteJoint;->m_indexB:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 221
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x1
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 222
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v2, 0x2
invoke-interface {v1, v2}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 223
return-void
.line 151
:cond_302
const/4 v1, 0x0
goto/16 :goto_106
.line 176
:cond_305
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
cmpg-float v4, v1, v4
if-gtz v4, :cond_324
.line 177
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v4, Lorg/jbox2d/dynamics/joints/LimitState;->AT_LOWER:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v1, v4, :cond_31c
.line 178
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v4, 0x0
iput v4, v1, Lorg/jbox2d/common/Vec3;->z:F
.line 180
:cond_31c
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/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
goto/16 :goto_237
.line 181
:cond_324
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
cmpl-float v1, v1, v4
if-ltz v1, :cond_343
.line 182
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v4, Lorg/jbox2d/dynamics/joints/LimitState;->AT_UPPER:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v1, v4, :cond_33b
.line 183
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v4, 0x0
iput v4, v1, Lorg/jbox2d/common/Vec3;->z:F
.line 185
:cond_33b
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/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
goto/16 :goto_237
.line 187
:cond_343
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/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
.line 188
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v4, 0x0
iput v4, v1, Lorg/jbox2d/common/Vec3;->z:F
goto/16 :goto_237
.line 191
:cond_352
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/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
goto/16 :goto_237
.line 213
:cond_35a
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec3;->setZero()V
.line 214
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
move v1, v2
move v2, v3
goto/16 :goto_2d9
.end method
.method public isLimitEnabled()Z
.registers 2
.prologue
.line 524
iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
return v0
.end method
.method public isMotorEnabled()Z
.registers 2
.prologue
.line 490
iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableMotor:Z
return v0
.end method
.method public setLimits(FF)V
.registers 5
.prologue
const/4 v1, 0x1
.line 545
sget-boolean v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->$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 546
:cond_f
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
cmpl-float v0, p1, v0
if-nez v0, :cond_1b
iget v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
cmpl-float v0, p2, v0
if-eqz v0, :cond_2e
.line 547
:cond_1b
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 548
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 549
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v1, 0x0
iput v1, v0, Lorg/jbox2d/common/Vec3;->z:F
.line 550
iput p1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
.line 551
iput p2, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
.line 553
:cond_2e
return-void
.end method
.method public setMaxMotorTorque(F)V
.registers 4
.prologue
const/4 v1, 0x1
.line 510
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 511
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 512
iput p1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_maxMotorTorque:F
.line 513
return-void
.end method
.method public setMotorSpeed(F)V
.registers 4
.prologue
const/4 v1, 0x1
.line 504
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 505
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
invoke-virtual {v0, v1}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 506
iput p1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorSpeed:F
.line 507
return-void
.end method
.method public solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
.registers 23
.prologue
.line 352
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v6
.line 353
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v7
.line 354
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/RevoluteJoint;->m_indexA:I
aget-object v2, v2, v3
iget-object v8, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 355
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/RevoluteJoint;->m_indexA:I
aget-object v2, v2, v3
iget v5, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 356
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/RevoluteJoint;->m_indexB:I
aget-object v2, v2, v3
iget-object v9, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 357
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/RevoluteJoint;->m_indexB:I
aget-object v2, v2, v3
iget v4, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 359
invoke-virtual {v6, v5}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 360
invoke-virtual {v7, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 362
const/4 v3, 0x0
.line 365
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIA:F
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIB:F
add-float/2addr v2, v10
const/4 v10, 0x0
cmpl-float v2, v2, v10
if-nez v2, :cond_225
const/4 v2, 0x1
.line 368
:goto_56
move-object/from16 v0, p0
iget-boolean v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
if-eqz v10, :cond_26d
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v11, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v10, v11, :cond_26d
if-nez v2, :cond_26d
.line 369
sub-float v2, v4, v5
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
sub-float v10, v2, v10
.line 370
const/4 v2, 0x0
.line 372
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->EQUAL:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v11, v12, :cond_228
.line 374
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
sub-float v2, v10, v2
sget v3, Lorg/jbox2d/common/Settings;->maxAngularCorrection:F
neg-float v3, v3
sget v10, Lorg/jbox2d/common/Settings;->maxAngularCorrection:F
invoke-static {v2, v3, v10}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v3
.line 377
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
neg-float v2, v2
mul-float/2addr v2, v3
.line 378
invoke-static {v3}, Lorg/jbox2d/common/MathUtils;->abs(F)F
move-result v3
.line 395
:cond_90
:goto_90
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIA:F
mul-float/2addr v10, v2
sub-float/2addr v5, v10
.line 396
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIB:F
mul-float/2addr v2, v10
add-float/2addr v2, v4
move v4, v5
.line 400
:goto_9d
invoke-virtual {v6, v4}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 401
invoke-virtual {v7, v2}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 403
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v5}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v5
.line 404
move-object/from16 v0, p0
iget-object v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 405
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 406
move-object/from16 v0, p0
iget-object v12, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v12}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v12
.line 408
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v13}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v13
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v13, v14}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v13
invoke-static {v6, v13, v5}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 409
move-object/from16 v0, p0
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v6}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v6
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localCenterB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v6, v13}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v6
invoke-static {v7, v6, v10}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 410
invoke-virtual {v11, v9}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v6
invoke-virtual {v6, v10}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v6
invoke-virtual {v6, v8}, Lorg/jbox2d/common/Vec2;->subLocal(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 411
invoke-virtual {v11}, Lorg/jbox2d/common/Vec2;->length()F
move-result v6
.line 413
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invMassA:F
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invMassB:F
.line 414
move-object/from16 v0, p0
iget v14, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIA:F
move-object/from16 v0, p0
iget v15, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIB:F
.line 416
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v16, v0
invoke-interface/range {v16 .. v16}, Lorg/jbox2d/pooling/IWorldPool;->popMat22()Lorg/jbox2d/common/Mat22;
move-result-object v16
.line 417
move-object/from16 v0, v16
iget-object v0, v0, Lorg/jbox2d/common/Mat22;->ex:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
add-float v18, v7, v13
iget v0, v5, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
mul-float v19, v19, v14
iget v0, v5, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v20, v0
mul-float v19, v19, v20
add-float v18, v18, v19
iget v0, v10, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
mul-float v19, v19, v15
iget v0, v10, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v20, v0
mul-float v19, v19, v20
add-float v18, v18, v19
move/from16 v0, v18
move-object/from16 v1, v17
iput v0, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 418
move-object/from16 v0, v16
iget-object v0, v0, Lorg/jbox2d/common/Mat22;->ex:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
neg-float v0, v14
move/from16 v18, v0
iget v0, v5, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v18, v18, v19
iget v0, v5, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v19, v0
mul-float v18, v18, v19
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v19, v19, v15
iget v0, v10, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v20, v0
mul-float v19, v19, v20
sub-float v18, v18, v19
move/from16 v0, v18
move-object/from16 v1, v17
iput v0, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 419
move-object/from16 v0, v16
iget-object v0, v0, Lorg/jbox2d/common/Mat22;->ey:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
move-object/from16 v0, v16
iget-object v0, v0, Lorg/jbox2d/common/Mat22;->ex:Lorg/jbox2d/common/Vec2;
move-object/from16 v18, v0
move-object/from16 v0, v18
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v18, v0
move/from16 v0, v18
move-object/from16 v1, v17
iput v0, v1, Lorg/jbox2d/common/Vec2;->x:F
.line 420
move-object/from16 v0, v16
iget-object v0, v0, Lorg/jbox2d/common/Mat22;->ey:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
add-float v18, v7, v13
iget v0, v5, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v19, v19, v14
iget v0, v5, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v20, v0
mul-float v19, v19, v20
add-float v18, v18, v19
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v19, v0
mul-float v19, v19, v15
iget v0, v10, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v20, v0
mul-float v19, v19, v20
add-float v18, v18, v19
move/from16 v0, v18
move-object/from16 v1, v17
iput v0, v1, Lorg/jbox2d/common/Vec2;->y:F
.line 421
move-object/from16 v0, v16
invoke-virtual {v0, v11, v12}, Lorg/jbox2d/common/Mat22;->solveToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 422
invoke-virtual {v12}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
.line 424
iget v11, v8, Lorg/jbox2d/common/Vec2;->x:F
iget v0, v12, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v16, v0
mul-float v16, v16, v7
sub-float v11, v11, v16
iput v11, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 425
iget v11, v8, Lorg/jbox2d/common/Vec2;->y:F
iget v0, v12, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v16, v0
mul-float v7, v7, v16
sub-float v7, v11, v7
iput v7, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 426
invoke-static {v5, v12}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v5
mul-float/2addr v5, v14
sub-float/2addr v4, v5
.line 428
iget v5, v9, Lorg/jbox2d/common/Vec2;->x:F
iget v7, v12, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v13
add-float/2addr v5, v7
iput v5, v9, Lorg/jbox2d/common/Vec2;->x:F
.line 429
iget v5, v9, Lorg/jbox2d/common/Vec2;->y:F
iget v7, v12, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v13
add-float/2addr v5, v7
iput v5, v9, Lorg/jbox2d/common/Vec2;->y:F
.line 430
invoke-static {v10, v12}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v5
mul-float/2addr v5, v15
add-float/2addr v2, v5
.line 432
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v7, 0x4
invoke-interface {v5, v7}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 433
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v7, 0x1
invoke-interface {v5, v7}, Lorg/jbox2d/pooling/IWorldPool;->pushMat22(I)V
.line 436
move-object/from16 v0, p1
iget-object v5, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexA:I
aget-object v5, v5, v7
iput v4, v5, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 438
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexB:I
aget-object v4, v4, v5
iput v2, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 440
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v4, 0x2
invoke-interface {v2, v4}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 442
sget v2, Lorg/jbox2d/common/Settings;->linearSlop:F
cmpg-float v2, v6, v2
if-gtz v2, :cond_26b
sget v2, Lorg/jbox2d/common/Settings;->angularSlop:F
cmpg-float v2, v3, v2
if-gtz v2, :cond_26b
const/4 v2, 0x1
:goto_224
return v2
.line 365
:cond_225
const/4 v2, 0x0
goto/16 :goto_56
.line 379
:cond_228
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->AT_LOWER:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v11, v12, :cond_24a
.line 380
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_lowerAngle:F
sub-float v2, v10, v2
.line 381
neg-float v3, v2
.line 384
sget v10, Lorg/jbox2d/common/Settings;->angularSlop:F
add-float/2addr v2, v10
sget v10, Lorg/jbox2d/common/Settings;->maxAngularCorrection:F
neg-float v10, v10
const/4 v11, 0x0
invoke-static {v2, v10, v11}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v2
.line 385
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
neg-float v10, v10
mul-float/2addr v2, v10
.line 386
goto/16 :goto_90
:cond_24a
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->AT_UPPER:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v11, v12, :cond_90
.line 387
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_upperAngle:F
sub-float v3, v10, v2
.line 391
sget v2, Lorg/jbox2d/common/Settings;->angularSlop:F
sub-float v2, v3, v2
const/4 v10, 0x0
sget v11, Lorg/jbox2d/common/Settings;->maxAngularCorrection:F
invoke-static {v2, v10, v11}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v2
.line 392
move-object/from16 v0, p0
iget v10, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
neg-float v10, v10
mul-float/2addr v2, v10
goto/16 :goto_90
.line 442
:cond_26b
const/4 v2, 0x0
goto :goto_224
:cond_26d
move v2, v4
move v4, v5
goto/16 :goto_9d
.end method
.method public solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 16
.prologue
.line 227
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexA:I
aget-object v0, v0, v1
iget-object v3, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 228
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexA:I
aget-object v0, v0, v1
iget v2, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 229
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexB:I
aget-object v0, v0, v1
iget-object v4, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 230
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexB:I
aget-object v0, v0, v1
iget v1, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 232
iget v5, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invMassA:F
iget v6, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invMassB:F
.line 233
iget v7, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIA:F
iget v8, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_invIB:F
.line 235
add-float v0, v7, v8
const/4 v9, 0x0
cmpl-float v0, v0, v9
if-nez v0, :cond_11d
const/4 v0, 0x1
.line 238
:goto_30
iget-boolean v9, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableMotor:Z
if-eqz v9, :cond_60
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v10, Lorg/jbox2d/dynamics/joints/LimitState;->EQUAL:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v9, v10, :cond_60
if-nez v0, :cond_60
.line 239
sub-float v9, v1, v2
iget v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorSpeed:F
sub-float/2addr v9, v10
.line 240
iget v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorMass:F
neg-float v10, v10
mul-float/2addr v9, v10
.line 241
iget v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
.line 242
iget-object v11, p1, Lorg/jbox2d/dynamics/SolverData;->step:Lorg/jbox2d/dynamics/TimeStep;
iget v11, v11, Lorg/jbox2d/dynamics/TimeStep;->dt:F
iget v12, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_maxMotorTorque:F
mul-float/2addr v11, v12
.line 243
iget v12, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
add-float/2addr v9, v12
neg-float v12, v11
invoke-static {v9, v12, v11}, Lorg/jbox2d/common/MathUtils;->clamp(FFF)F
move-result v9
iput v9, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
.line 244
iget v9, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_motorImpulse:F
sub-float/2addr v9, v10
.line 246
mul-float v10, v7, v9
sub-float/2addr v2, v10
.line 247
mul-float/2addr v9, v8
add-float/2addr v1, v9
.line 249
:cond_60
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 252
iget-boolean v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_enableLimit:Z
if-eqz v10, :cond_1fa
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v11, Lorg/jbox2d/dynamics/joints/LimitState;->INACTIVE:Lorg/jbox2d/dynamics/joints/LimitState;
if-eq v10, v11, :cond_1fa
if-nez v0, :cond_1fa
.line 254
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v0
.line 255
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v10
.line 258
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v2, v11, v9}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 259
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v11, v0}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 260
invoke-virtual {v0, v4}, Lorg/jbox2d/common/Vec2;->addLocal(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;
move-result-object v11
invoke-virtual {v11, v9}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 261
sub-float v11, v1, v2
.line 262
iget v12, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v13, v0, Lorg/jbox2d/common/Vec2;->y:F
invoke-virtual {v10, v12, v13, v11}, Lorg/jbox2d/common/Vec3;->set(FFF)Lorg/jbox2d/common/Vec3;
.line 264
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec3()Lorg/jbox2d/common/Vec3;
move-result-object v11
.line 265
iget-object v12, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-virtual {v12, v10, v11}, Lorg/jbox2d/common/Mat33;->solve33ToOut(Lorg/jbox2d/common/Vec3;Lorg/jbox2d/common/Vec3;)V
.line 266
invoke-virtual {v11}, Lorg/jbox2d/common/Vec3;->negateLocal()Lorg/jbox2d/common/Vec3;
.line 268
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->EQUAL:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v10, v12, :cond_120
.line 269
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v0, v11}, Lorg/jbox2d/common/Vec3;->addLocal(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
.line 303
:cond_b5
:goto_b5
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v0
.line 305
iget v9, v11, Lorg/jbox2d/common/Vec3;->x:F
iget v10, v11, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {v0, v9, v10}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
.line 307
iget v9, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v10, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v10, v5
sub-float/2addr v9, v10
iput v9, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 308
iget v9, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v10, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v10
sub-float v5, v9, v5
iput v5, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 309
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v3, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v3
iget v5, v11, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v3, v5
mul-float/2addr v3, v7
sub-float/2addr v2, v3
.line 311
iget v3, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v5, v0, 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 312
iget v3, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v5, v0, 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 313
iget-object v3, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v3, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
iget v3, v11, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v0, v3
mul-float/2addr v0, v8
add-float/2addr v0, v1
.line 315
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v3, 0x2
invoke-interface {v1, v3}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 316
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v3, 0x2
invoke-interface {v1, v3}, Lorg/jbox2d/pooling/IWorldPool;->pushVec3(I)V
move v1, v2
.line 343
:goto_106
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexA:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 345
iget-object v1, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v2, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_indexB:I
aget-object v1, v1, v2
iput v0, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 347
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v1, 0x1
invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 348
return-void
.line 235
:cond_11d
const/4 v0, 0x0
goto/16 :goto_30
.line 270
:cond_120
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->AT_LOWER:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v10, v12, :cond_18d
.line 271
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v10, v10, Lorg/jbox2d/common/Vec3;->z:F
iget v12, v11, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v10, v12
.line 272
const/4 v12, 0x0
cmpg-float v10, v10, v12
if-gez v10, :cond_186
.line 273
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 274
iget-object v12, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v12, v12, Lorg/jbox2d/common/Vec3;->x:F
iget-object v13, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v13, v13, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {v10, v12, v13}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
move-result-object v12
iget-object v13, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->z:F
invoke-virtual {v12, v13}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 275
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-virtual {v0, v10, v9}, Lorg/jbox2d/common/Mat33;->solve22ToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 276
iget v0, v9, Lorg/jbox2d/common/Vec2;->x:F
iput v0, v11, Lorg/jbox2d/common/Vec3;->x:F
.line 277
iget v0, v9, Lorg/jbox2d/common/Vec2;->y:F
iput v0, v11, Lorg/jbox2d/common/Vec3;->y:F
.line 278
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->z:F
neg-float v0, v0
iput v0, v11, Lorg/jbox2d/common/Vec3;->z:F
.line 279
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v10, v0, Lorg/jbox2d/common/Vec3;->x:F
iget v12, v9, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v10, v12
iput v10, v0, Lorg/jbox2d/common/Vec3;->x:F
.line 280
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v10, v0, Lorg/jbox2d/common/Vec3;->y:F
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v9, v10
iput v9, v0, Lorg/jbox2d/common/Vec3;->y:F
.line 281
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v9, 0x0
iput v9, v0, Lorg/jbox2d/common/Vec3;->z:F
.line 282
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v9, 0x1
invoke-interface {v0, v9}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_b5
.line 284
:cond_186
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v0, v11}, Lorg/jbox2d/common/Vec3;->addLocal(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
goto/16 :goto_b5
.line 286
:cond_18d
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_limitState:Lorg/jbox2d/dynamics/joints/LimitState;
sget-object v12, Lorg/jbox2d/dynamics/joints/LimitState;->AT_UPPER:Lorg/jbox2d/dynamics/joints/LimitState;
if-ne v10, v12, :cond_b5
.line 287
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v10, v10, Lorg/jbox2d/common/Vec3;->z:F
iget v12, v11, Lorg/jbox2d/common/Vec3;->z:F
add-float/2addr v10, v12
.line 288
const/4 v12, 0x0
cmpl-float v10, v10, v12
if-lez v10, :cond_1f3
.line 289
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 290
iget-object v12, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v12, v12, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v12, v12, Lorg/jbox2d/common/Vec3;->x:F
iget-object v13, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
iget-object v13, v13, Lorg/jbox2d/common/Mat33;->ez:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->y:F
invoke-virtual {v10, v12, v13}, Lorg/jbox2d/common/Vec2;->set(FF)Lorg/jbox2d/common/Vec2;
move-result-object v12
iget-object v13, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v13, v13, Lorg/jbox2d/common/Vec3;->z:F
invoke-virtual {v12, v13}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
move-result-object v12
invoke-virtual {v12, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 291
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-virtual {v0, v10, v9}, Lorg/jbox2d/common/Mat33;->solve22ToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 292
iget v0, v9, Lorg/jbox2d/common/Vec2;->x:F
iput v0, v11, Lorg/jbox2d/common/Vec3;->x:F
.line 293
iget v0, v9, Lorg/jbox2d/common/Vec2;->y:F
iput v0, v11, Lorg/jbox2d/common/Vec3;->y:F
.line 294
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v0, v0, Lorg/jbox2d/common/Vec3;->z:F
neg-float v0, v0
iput v0, v11, Lorg/jbox2d/common/Vec3;->z:F
.line 295
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v10, v0, Lorg/jbox2d/common/Vec3;->x:F
iget v12, v9, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v10, v12
iput v10, v0, Lorg/jbox2d/common/Vec3;->x:F
.line 296
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v10, v0, Lorg/jbox2d/common/Vec3;->y:F
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v9, v10
iput v9, v0, Lorg/jbox2d/common/Vec3;->y:F
.line 297
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
const/4 v9, 0x0
iput v9, v0, Lorg/jbox2d/common/Vec3;->z:F
.line 298
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v9, 0x1
invoke-interface {v0, v9}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_b5
.line 300
:cond_1f3
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
invoke-virtual {v0, v11}, Lorg/jbox2d/common/Vec3;->addLocal(Lorg/jbox2d/common/Vec3;)Lorg/jbox2d/common/Vec3;
goto/16 :goto_b5
.line 320
:cond_1fa
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v0
.line 321
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v10}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v10
.line 323
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v2, v11, v9}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 324
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v1, v11, v0}, Lorg/jbox2d/common/Vec2;->crossToOutUnsafe(FLorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 325
invoke-virtual {v0, v4}, Lorg/jbox2d/common/Vec2;->addLocal(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;
move-result-object v11
invoke-virtual {v11, v9}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 326
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_mass:Lorg/jbox2d/common/Mat33;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->negateLocal()Lorg/jbox2d/common/Vec2;
move-result-object v0
invoke-virtual {v9, v0, v10}, Lorg/jbox2d/common/Mat33;->solve22ToOut(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 328
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v9, v0, Lorg/jbox2d/common/Vec3;->x:F
iget v11, v10, Lorg/jbox2d/common/Vec2;->x:F
add-float/2addr v9, v11
iput v9, v0, Lorg/jbox2d/common/Vec3;->x:F
.line 329
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_impulse:Lorg/jbox2d/common/Vec3;
iget v9, v0, Lorg/jbox2d/common/Vec3;->y:F
iget v11, v10, Lorg/jbox2d/common/Vec2;->y:F
add-float/2addr v9, v11
iput v9, v0, Lorg/jbox2d/common/Vec3;->y:F
.line 331
iget v0, v3, Lorg/jbox2d/common/Vec2;->x:F
iget v9, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v9, v5
sub-float/2addr v0, v9
iput v0, v3, Lorg/jbox2d/common/Vec2;->x:F
.line 332
iget v0, v3, Lorg/jbox2d/common/Vec2;->y:F
iget v9, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v5, v9
sub-float/2addr v0, v5
iput v0, v3, Lorg/jbox2d/common/Vec2;->y:F
.line 333
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rA:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
mul-float/2addr v0, v7
sub-float/2addr v2, v0
.line 335
iget v0, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v3, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v3, v6
add-float/2addr v0, v3
iput v0, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 336
iget v0, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v3, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v3, v6
add-float/2addr v0, v3
iput v0, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 337
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_rB:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v10}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
mul-float/2addr v0, v8
add-float/2addr v0, v1
.line 339
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v3, 0x2
invoke-interface {v1, v3}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
move v1, v2
goto/16 :goto_106
.end method