GearJoint.smali
.class public Lorg/jbox2d/dynamics/joints/GearJoint;
.super Lorg/jbox2d/dynamics/joints/Joint;
.source "GearJoint.java"
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field private final m_JvAC:Lorg/jbox2d/common/Vec2;
.field private final m_JvBD:Lorg/jbox2d/common/Vec2;
.field private m_JwA:F
.field private m_JwB:F
.field private m_JwC:F
.field private m_JwD:F
.field private final m_bodyC:Lorg/jbox2d/dynamics/Body;
.field private final m_bodyD:Lorg/jbox2d/dynamics/Body;
.field private m_constant:F
.field private m_iA:F
.field private m_iB:F
.field private m_iC:F
.field private m_iD:F
.field private m_impulse:F
.field private m_indexA:I
.field private m_indexB:I
.field private m_indexC:I
.field private m_indexD:I
.field private final m_joint1:Lorg/jbox2d/dynamics/joints/Joint;
.field private final m_joint2:Lorg/jbox2d/dynamics/joints/Joint;
.field private final m_lcA:Lorg/jbox2d/common/Vec2;
.field private final m_lcB:Lorg/jbox2d/common/Vec2;
.field private final m_lcC:Lorg/jbox2d/common/Vec2;
.field private final m_lcD:Lorg/jbox2d/common/Vec2;
.field private final m_localAnchorA:Lorg/jbox2d/common/Vec2;
.field private final m_localAnchorB:Lorg/jbox2d/common/Vec2;
.field private final m_localAnchorC:Lorg/jbox2d/common/Vec2;
.field private final m_localAnchorD:Lorg/jbox2d/common/Vec2;
.field private final m_localAxisC:Lorg/jbox2d/common/Vec2;
.field private final m_localAxisD:Lorg/jbox2d/common/Vec2;
.field private m_mA:F
.field private m_mB:F
.field private m_mC:F
.field private m_mD:F
.field private m_mass:F
.field private m_ratio:F
.field private m_referenceAngleA:F
.field private m_referenceAngleB:F
.field private final m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
.field private final m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 67
const-class v0, Lorg/jbox2d/dynamics/joints/GearJoint;
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/GearJoint;->$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/GearJointDef;)V
.registers 12
.prologue
const/4 v8, 0x2
.line 108
invoke-direct {p0, p1, p2}, Lorg/jbox2d/dynamics/joints/Joint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/JointDef;)V
.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/GearJoint;->m_localAnchorA: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/GearJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
.line 83
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
.line 84
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
.line 86
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
.line 87
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
.line 99
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcA:Lorg/jbox2d/common/Vec2;
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcB:Lorg/jbox2d/common/Vec2;
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcC:Lorg/jbox2d/common/Vec2;
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcD:Lorg/jbox2d/common/Vec2;
.line 103
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
new-instance v0, Lorg/jbox2d/common/Vec2;
invoke-direct {v0}, Lorg/jbox2d/common/Vec2;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
.line 110
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->joint1:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint1:Lorg/jbox2d/dynamics/joints/Joint;
.line 111
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->joint2:Lorg/jbox2d/dynamics/joints/Joint;
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint2:Lorg/jbox2d/dynamics/joints/Joint;
.line 113
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint1:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getType()Lorg/jbox2d/dynamics/joints/JointType;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
.line 114
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint2:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getType()Lorg/jbox2d/dynamics/joints/JointType;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
.line 116
sget-boolean v0, Lorg/jbox2d/dynamics/joints/GearJoint;->$assertionsDisabled:Z
if-nez v0, :cond_86
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v1, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-eq v0, v1, :cond_86
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v1, Lorg/jbox2d/dynamics/joints/JointType;->PRISMATIC:Lorg/jbox2d/dynamics/joints/JointType;
if-eq v0, v1, :cond_86
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 117
:cond_86
sget-boolean v0, Lorg/jbox2d/dynamics/joints/GearJoint;->$assertionsDisabled:Z
if-nez v0, :cond_9c
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v1, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-eq v0, v1, :cond_9c
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v1, Lorg/jbox2d/dynamics/joints/JointType;->PRISMATIC:Lorg/jbox2d/dynamics/joints/JointType;
if-eq v0, v1, :cond_9c
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 123
:cond_9c
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint1:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC:Lorg/jbox2d/dynamics/Body;
.line 124
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint1:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
.line 127
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v1, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
.line 128
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v2, v0, Lorg/jbox2d/common/Sweep;->a:F
.line 129
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC:Lorg/jbox2d/dynamics/Body;
iget-object v3, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
.line 130
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC:Lorg/jbox2d/dynamics/Body;
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v4, v0, Lorg/jbox2d/common/Sweep;->a:F
.line 132
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v5, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-ne v0, v5, :cond_13f
.line 133
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->joint1:Lorg/jbox2d/dynamics/joints/Joint;
check-cast v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;
.line 134
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 135
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v3}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 136
iget v0, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleA:F
.line 137
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 139
sub-float v0, v2, v4
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleA:F
sub-float/2addr v0, v1
move v1, v0
.line 157
:goto_e7
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint2:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyA()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD:Lorg/jbox2d/dynamics/Body;
.line 158
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint2:Lorg/jbox2d/dynamics/joints/Joint;
invoke-virtual {v0}, Lorg/jbox2d/dynamics/joints/Joint;->getBodyB()Lorg/jbox2d/dynamics/Body;
move-result-object v0
iput-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
.line 161
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v2, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
.line 162
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v3, v0, Lorg/jbox2d/common/Sweep;->a:F
.line 163
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD:Lorg/jbox2d/dynamics/Body;
iget-object v4, v0, Lorg/jbox2d/dynamics/Body;->m_xf:Lorg/jbox2d/common/Transform;
.line 164
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD:Lorg/jbox2d/dynamics/Body;
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_sweep:Lorg/jbox2d/common/Sweep;
iget v5, v0, Lorg/jbox2d/common/Sweep;->a:F
.line 166
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v6, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-ne v0, v6, :cond_193
.line 167
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->joint2:Lorg/jbox2d/dynamics/joints/Joint;
check-cast v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;
.line 168
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 169
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v4}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 170
iget v0, v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;->m_referenceAngle:F
iput v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleB:F
.line 171
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
invoke-virtual {v0}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 173
sub-float v0, v3, v5
iget v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleB:F
sub-float/2addr v0, v2
.line 191
:goto_131
iget v2, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->ratio:F
iput v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
.line 193
iget v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
mul-float/2addr v0, v2
add-float/2addr v0, v1
iput v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_constant:F
.line 195
const/4 v0, 0x0
iput v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
.line 196
return-void
.line 141
:cond_13f
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v2
.line 142
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v4
.line 143
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->joint1:Lorg/jbox2d/dynamics/joints/Joint;
check-cast v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;
.line 144
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v6}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 145
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
iget-object v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v6}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 146
iget v5, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_referenceAngle:F
iput v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleA:F
.line 147
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 149
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
.line 150
iget-object v5, v1, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-static {v5, v6, v4}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 151
iget-object v1, v1, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v4, v1}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
iget-object v5, v3, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v5}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 152
iget-object v1, v3, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
invoke-static {v1, v4, v2}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 153
invoke-virtual {v2, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 154
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1, v8}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
move v1, v0
goto/16 :goto_e7
.line 175
:cond_193
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v3
.line 176
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v0}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v5
.line 177
iget-object v0, p2, Lorg/jbox2d/dynamics/joints/GearJointDef;->joint2:Lorg/jbox2d/dynamics/joints/Joint;
check-cast v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;
.line 178
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v6, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 179
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v6, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 180
iget v6, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_referenceAngle:F
iput v6, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleB:F
.line 181
iget-object v6, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;->m_localXAxisA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v6, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 183
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
.line 184
iget-object v6, v2, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
iget-object v7, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-static {v6, v7, v5}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 185
iget-object v2, v2, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v5, v2}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v2
iget-object v6, v4, Lorg/jbox2d/common/Transform;->p:Lorg/jbox2d/common/Vec2;
invoke-virtual {v2, v6}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 186
iget-object v2, v4, Lorg/jbox2d/common/Transform;->q:Lorg/jbox2d/common/Rot;
invoke-static {v2, v5, v3}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 187
invoke-virtual {v3, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
invoke-static {v0, v2}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v0
.line 188
iget-object v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2, v8}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_131
.end method
# virtual methods
.method public getAnchorA(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 200
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyA:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->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 201
return-void
.end method
.method public getAnchorB(Lorg/jbox2d/common/Vec2;)V
.registers 4
.prologue
.line 205
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyB:Lorg/jbox2d/dynamics/Body;
iget-object v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->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 206
return-void
.end method
.method public getJoint1()Lorg/jbox2d/dynamics/joints/Joint;
.registers 2
.prologue
.line 397
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint1:Lorg/jbox2d/dynamics/joints/Joint;
return-object v0
.end method
.method public getJoint2()Lorg/jbox2d/dynamics/joints/Joint;
.registers 2
.prologue
.line 401
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_joint2:Lorg/jbox2d/dynamics/joints/Joint;
return-object v0
.end method
.method public getRatio()F
.registers 2
.prologue
.line 225
iget v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
return v0
.end method
.method public getReactionForce(FLorg/jbox2d/common/Vec2;)V
.registers 5
.prologue
.line 210
iget-object v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
invoke-virtual {p2, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v0
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 211
invoke-virtual {p2, p1}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 212
return-void
.end method
.method public getReactionTorque(F)F
.registers 4
.prologue
.line 216
iget v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
mul-float/2addr v0, v1
.line 217
mul-float/2addr v0, p1
return v0
.end method
.method public initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 20
.prologue
.line 230
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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/GearJoint;->m_indexA:I
.line 231
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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/GearJoint;->m_indexB:I
.line 232
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC: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/GearJoint;->m_indexC:I
.line 233
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD: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/GearJoint;->m_indexD:I
.line 234
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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 235
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcB:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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 236
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcC:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC: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 237
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcD:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD: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 238
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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/GearJoint;->m_mA:F
.line 239
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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/GearJoint;->m_mB:F
.line 240
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC: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/GearJoint;->m_mC:F
.line 241
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD: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/GearJoint;->m_mD:F
.line 242
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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/GearJoint;->m_iA:F
.line 243
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->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/GearJoint;->m_iB:F
.line 244
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyC: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/GearJoint;->m_iC:F
.line 245
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_bodyD: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/GearJoint;->m_iD:F
.line 248
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/GearJoint;->m_indexA:I
aget-object v1, v1, v2
iget v1, v1, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 249
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/GearJoint;->m_indexA:I
aget-object v2, v2, v3
iget-object v6, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 250
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/GearJoint;->m_indexA:I
aget-object v2, v2, v3
iget v5, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 253
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/GearJoint;->m_indexB:I
aget-object v2, v2, v3
iget v7, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 254
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/GearJoint;->m_indexB:I
aget-object v2, v2, v3
iget-object v8, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 255
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexB:I
aget-object v2, v2, v3
iget v4, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 258
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/GearJoint;->m_indexC:I
aget-object v2, v2, v3
iget v9, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 259
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/GearJoint;->m_indexC:I
aget-object v2, v2, v3
iget-object v10, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 260
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/GearJoint;->m_indexC:I
aget-object v2, v2, v3
iget v3, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 263
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 v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v2, v2, v11
iget v11, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 264
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 v12, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v2, v2, v12
iget-object v12, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 265
move-object/from16 v0, p1
iget-object v2, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v2, v2, v13
iget v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 267
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v13}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v13
move-object/from16 v0, p0
iget-object v14, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v14}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v14
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v15}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v15
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v16, v0
invoke-interface/range {v16 .. v16}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v16
.line 268
invoke-virtual {v13, v1}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 269
invoke-virtual {v14, v7}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 270
invoke-virtual {v15, v9}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 271
move-object/from16 v0, v16
invoke-virtual {v0, v11}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 273
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
.line 275
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v1}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v1
.line 277
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v9, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-ne v7, v9, :cond_32e
.line 278
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
invoke-virtual {v7}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 279
const/high16 v7, 0x3f800000 # 1.0f
move-object/from16 v0, p0
iput v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
.line 280
const/high16 v7, 0x3f800000 # 1.0f
move-object/from16 v0, p0
iput v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
.line 281
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
add-float/2addr v9, v11
add-float/2addr v7, v9
move-object/from16 v0, p0
iput v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
.line 294
:goto_1ae
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v9, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-ne v7, v9, :cond_3c9
.line 295
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 296
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
.line 297
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
.line 298
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
mul-float/2addr v7, v9
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
add-float/2addr v9, v11
mul-float/2addr v7, v9
add-float/2addr v1, v7
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
.line 314
:goto_1e9
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
const/4 v7, 0x0
cmpl-float v1, v1, v7
if-lez v1, :cond_47f
const/high16 v1, 0x3f800000 # 1.0f
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
div-float/2addr v1, v7
:goto_1f9
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
.line 316
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_482
.line 317
iget v1, v6, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v7, v9
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v7, v9
add-float/2addr v1, v7
iput v1, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 318
iget v1, v6, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v7, v9
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v7, v9
add-float/2addr v1, v7
iput v1, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 319
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v1, v6
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
mul-float/2addr v1, v6
add-float/2addr v5, v1
.line 321
iget v1, v8, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v6, v7
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v7
add-float/2addr v1, v6
iput v1, v8, Lorg/jbox2d/common/Vec2;->x:F
.line 322
iget v1, v8, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v6, v7
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v7
add-float/2addr v1, v6
iput v1, v8, Lorg/jbox2d/common/Vec2;->y:F
.line 323
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v1, v6
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
mul-float/2addr v1, v6
add-float/2addr v4, v1
.line 325
iget v1, v10, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v6, v7
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v7
sub-float/2addr v1, v6
iput v1, v10, Lorg/jbox2d/common/Vec2;->x:F
.line 326
iget v1, v10, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v6, v7
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v7
sub-float/2addr v1, v6
iput v1, v10, Lorg/jbox2d/common/Vec2;->y:F
.line 327
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v1, v6
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
mul-float/2addr v1, v6
sub-float/2addr v3, v1
.line 329
iget v1, v12, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v6, v7
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v6, v7
sub-float/2addr v1, v6
iput v1, v12, Lorg/jbox2d/common/Vec2;->x:F
.line 330
iget v1, v12, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v6, v7
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v7, v7, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v6, v7
sub-float/2addr v1, v6
iput v1, v12, Lorg/jbox2d/common/Vec2;->y:F
.line 331
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
mul-float/2addr v1, v6
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
mul-float/2addr v1, v6
sub-float v1, v2, v1
move v2, v3
move v3, v4
move v4, v5
.line 335
:goto_2ed
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v6, 0x1
invoke-interface {v5, v6}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 336
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v6, 0x4
invoke-interface {v5, v6}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 339
move-object/from16 v0, p1
iget-object v5, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexA:I
aget-object v5, v5, v6
iput v4, v5, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 341
move-object/from16 v0, p1
iget-object v4, v0, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexB:I
aget-object v4, v4, v5
iput v3, v4, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 343
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/GearJoint;->m_indexC:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 345
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/GearJoint;->m_indexD:I
aget-object v2, v2, v3
iput v1, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 346
return-void
.line 283
:cond_32e
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v7}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v7
.line 284
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 285
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
move-object/from16 v0, v17
invoke-static {v15, v11, v0}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 286
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcC:Lorg/jbox2d/common/Vec2;
move-object/from16 v17, v0
move-object/from16 v0, v17
invoke-virtual {v11, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-static {v15, v11, v7}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 287
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v11}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
move-object/from16 v0, p0
iget-object v15, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcA:Lorg/jbox2d/common/Vec2;
invoke-virtual {v11, v15}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v11
invoke-static {v13, v11, v9}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 288
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
invoke-static {v7, v11}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v7
move-object/from16 v0, p0
iput v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
.line 289
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
invoke-static {v9, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v7
move-object/from16 v0, p0
iput v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
.line 290
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
add-float/2addr v9, v11
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
mul-float/2addr v11, v13
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
mul-float/2addr v11, v13
add-float/2addr v9, v11
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
mul-float/2addr v11, v13
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
mul-float/2addr v11, v13
add-float/2addr v9, v11
add-float/2addr v7, v9
move-object/from16 v0, p0
iput v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
.line 291
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v9, 0x2
invoke-interface {v7, v9}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_1ae
.line 300
:cond_3c9
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v7}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v7
.line 301
move-object/from16 v0, p0
iget-object v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 302
move-object/from16 v0, p0
iget-object v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v11}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v11
.line 303
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, v16
invoke-static {v0, v13, v7}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 304
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, 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 v15, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcD:Lorg/jbox2d/common/Vec2;
invoke-virtual {v13, v15}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v13
move-object/from16 v0, v16
invoke-static {v0, v13, v9}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 305
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v13}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
move-object/from16 v0, p0
iget-object v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcB:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v13}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
invoke-static {v14, v1, v11}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 306
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
invoke-virtual {v1, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v1
move-object/from16 v0, p0
iget v13, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
invoke-virtual {v1, v13}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 307
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
invoke-static {v9, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v9
mul-float/2addr v1, v9
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
.line 308
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
invoke-static {v11, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v7
mul-float/2addr v1, v7
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
.line 309
move-object/from16 v0, p0
iget v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
mul-float/2addr v7, v9
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
add-float/2addr v9, v11
mul-float/2addr v7, v9
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
mul-float/2addr v9, v11
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
mul-float/2addr v9, v11
add-float/2addr v7, v9
move-object/from16 v0, p0
iget v9, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
mul-float/2addr v9, v11
move-object/from16 v0, p0
iget v11, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
mul-float/2addr v9, v11
add-float/2addr v7, v9
add-float/2addr v1, v7
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
.line 310
move-object/from16 v0, p0
iget-object v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v7, 0x3
invoke-interface {v1, v7}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_1e9
.line 314
:cond_47f
const/4 v1, 0x0
goto/16 :goto_1f9
.line 333
:cond_482
const/4 v1, 0x0
move-object/from16 v0, p0
iput v1, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
move v1, v2
move v2, v3
move v3, v4
move v4, v5
goto/16 :goto_2ed
.end method
.method public setRatio(F)V
.registers 2
.prologue
.line 221
iput p1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
.line 222
return-void
.end method
.method public solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
.registers 29
.prologue
.line 406
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/GearJoint;->m_indexA:I
aget-object v2, v2, v3
iget-object v9, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.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 v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexA:I
aget-object v2, v2, v3
iget v10, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.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 v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexB:I
aget-object v2, v2, v3
iget-object v11, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 409
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/GearJoint;->m_indexB:I
aget-object v2, v2, v3
iget v12, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 410
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/GearJoint;->m_indexC:I
aget-object v2, v2, v3
iget-object v13, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 411
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/GearJoint;->m_indexC:I
aget-object v2, v2, v3
iget v14, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 412
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/GearJoint;->m_indexD:I
aget-object v2, v2, v3
iget-object v15, v2, Lorg/jbox2d/dynamics/contacts/Position;->c:Lorg/jbox2d/common/Vec2;
.line 413
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/GearJoint;->m_indexD:I
aget-object v2, v2, v3
iget v0, v2, Lorg/jbox2d/dynamics/contacts/Position;->a:F
move/from16 v16, v0
.line 415
move-object/from16 v0, p0
iget-object v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v2}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v2
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v6
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v5
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popRot()Lorg/jbox2d/common/Rot;
move-result-object v8
.line 416
invoke-virtual {v2, v10}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 417
invoke-virtual {v6, v12}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 418
invoke-virtual {v5, v14}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 419
move/from16 v0, v16
invoke-virtual {v8, v0}, Lorg/jbox2d/common/Rot;->set(F)Lorg/jbox2d/common/Rot;
.line 421
const/16 v17, 0x0
.line 425
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v18
.line 426
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v19
.line 427
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v20
.line 429
const/4 v7, 0x0
.line 431
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeA:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v4, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
if-ne v3, v4, :cond_204
.line 432
invoke-virtual/range {v19 .. v19}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 433
const/high16 v4, 0x3f800000 # 1.0f
.line 434
const/high16 v3, 0x3f800000 # 1.0f
.line 435
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
add-float/2addr v2, v5
add-float/2addr v2, v7
.line 437
sub-float v5, v10, v14
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleA:F
sub-float/2addr v5, v7
.line 456
:goto_cb
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_typeB:Lorg/jbox2d/dynamics/joints/JointType;
sget-object v21, Lorg/jbox2d/dynamics/joints/JointType;->REVOLUTE:Lorg/jbox2d/dynamics/joints/JointType;
move-object/from16 v0, v21
if-ne v7, v0, :cond_2db
.line 457
invoke-virtual/range {v20 .. v20}, Lorg/jbox2d/common/Vec2;->setZero()V
.line 458
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
.line 459
move-object/from16 v0, p0
iget v6, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
.line 460
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move/from16 v18, v0
mul-float v8, v8, v18
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
move/from16 v18, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
move/from16 v21, v0
add-float v18, v18, v21
mul-float v8, v8, v18
add-float/2addr v2, v8
.line 462
sub-float v8, v12, v16
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_referenceAngleB:F
move/from16 v18, v0
sub-float v8, v8, v18
.line 483
:goto_107
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move/from16 v18, v0
mul-float v8, v8, v18
add-float/2addr v5, v8
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_constant:F
sub-float v8, v5, v8
.line 485
const/4 v5, 0x0
.line 486
const/16 v18, 0x0
cmpl-float v18, v2, v18
if-lez v18, :cond_407
.line 487
neg-float v5, v8
div-float v2, v5, v2
.line 489
:goto_120
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v8, 0x3
invoke-interface {v5, v8}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 490
move-object/from16 v0, p0
iget-object v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v8, 0x4
invoke-interface {v5, v8}, Lorg/jbox2d/pooling/IWorldPool;->pushRot(I)V
.line 492
iget v5, v9, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
mul-float/2addr v8, v2
move-object/from16 v0, v19
iget v0, v0, Lorg/jbox2d/common/Vec2;->x:F
move/from16 v18, v0
mul-float v8, v8, v18
add-float/2addr v5, v8
iput v5, v9, Lorg/jbox2d/common/Vec2;->x:F
.line 493
iget v5, v9, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
mul-float/2addr v8, v2
move-object/from16 v0, v19
iget v0, v0, Lorg/jbox2d/common/Vec2;->y:F
move/from16 v18, v0
mul-float v8, v8, v18
add-float/2addr v5, v8
iput v5, v9, Lorg/jbox2d/common/Vec2;->y:F
.line 494
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
mul-float/2addr v5, v2
mul-float/2addr v4, v5
add-float/2addr v4, v10
.line 496
iget v5, v11, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
mul-float/2addr v8, v2
move-object/from16 v0, v20
iget v9, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v8, v9
add-float/2addr v5, v8
iput v5, v11, Lorg/jbox2d/common/Vec2;->x:F
.line 497
iget v5, v11, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
mul-float/2addr v8, v2
move-object/from16 v0, v20
iget v9, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v8, v9
add-float/2addr v5, v8
iput v5, v11, Lorg/jbox2d/common/Vec2;->y:F
.line 498
move-object/from16 v0, p0
iget v5, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
mul-float/2addr v5, v2
mul-float/2addr v5, v7
add-float/2addr v5, v12
.line 500
iget v7, v13, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
mul-float/2addr v8, v2
move-object/from16 v0, v19
iget v9, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v8, v9
sub-float/2addr v7, v8
iput v7, v13, Lorg/jbox2d/common/Vec2;->x:F
.line 501
iget v7, v13, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
mul-float/2addr v8, v2
move-object/from16 v0, v19
iget v9, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v8, v9
sub-float/2addr v7, v8
iput v7, v13, Lorg/jbox2d/common/Vec2;->y:F
.line 502
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
mul-float/2addr v7, v2
mul-float/2addr v3, v7
sub-float v3, v14, v3
.line 504
iget v7, v15, Lorg/jbox2d/common/Vec2;->x:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
mul-float/2addr v8, v2
move-object/from16 v0, v20
iget v9, v0, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v8, v9
sub-float/2addr v7, v8
iput v7, v15, Lorg/jbox2d/common/Vec2;->x:F
.line 505
iget v7, v15, Lorg/jbox2d/common/Vec2;->y:F
move-object/from16 v0, p0
iget v8, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
mul-float/2addr v8, v2
move-object/from16 v0, v20
iget v9, v0, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v8, v9
sub-float/2addr v7, v8
iput v7, v15, Lorg/jbox2d/common/Vec2;->y:F
.line 506
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
mul-float/2addr v2, v7
mul-float/2addr v2, v6
sub-float v2, v16, v2
.line 509
move-object/from16 v0, p1
iget-object v6, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexA:I
aget-object v6, v6, v7
iput v4, v6, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 511
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/GearJoint;->m_indexB:I
aget-object v4, v4, v6
iput v5, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 513
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/GearJoint;->m_indexC:I
aget-object v4, v4, v5
iput v3, v4, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 515
move-object/from16 v0, p1
iget-object v3, v0, Lorg/jbox2d/dynamics/SolverData;->positions:[Lorg/jbox2d/dynamics/contacts/Position;
move-object/from16 v0, p0
iget v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v3, v3, v4
iput v2, v3, Lorg/jbox2d/dynamics/contacts/Position;->a:F
.line 518
sget v2, Lorg/jbox2d/common/Settings;->linearSlop:F
cmpg-float v2, v17, v2
if-gez v2, :cond_404
const/4 v2, 0x1
:goto_203
return v2
.line 439
:cond_204
move-object/from16 v0, p0
iget-object v3, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v3}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v3
.line 440
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v21
.line 441
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v22
.line 442
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v4}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v23
.line 443
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, v19
invoke-static {v5, v4, v0}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 444
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, v18
invoke-virtual {v0, 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 v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcC:Lorg/jbox2d/common/Vec2;
move-object/from16 v24, v0
move-object/from16 v0, v24
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
invoke-static {v5, v4, v3}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 445
move-object/from16 v0, p0
iget-object v4, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorA:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, v18
invoke-virtual {v0, 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 v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcA:Lorg/jbox2d/common/Vec2;
move-object/from16 v24, v0
move-object/from16 v0, v24
invoke-virtual {v4, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v4
move-object/from16 v0, v21
invoke-static {v2, v4, v0}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 446
move-object/from16 v0, v19
invoke-static {v3, v0}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v3
.line 447
move-object/from16 v0, v21
move-object/from16 v1, v19
invoke-static {v0, v1}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v4
.line 448
move-object/from16 v0, p0
iget v2, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
move/from16 v24, v0
add-float v2, v2, v24
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
move/from16 v24, v0
mul-float v24, v24, v3
mul-float v24, v24, v3
add-float v2, v2, v24
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
move/from16 v24, v0
mul-float v24, v24, v4
mul-float v24, v24, v4
add-float v2, v2, v24
add-float/2addr v2, v7
.line 450
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorC:Lorg/jbox2d/common/Vec2;
move-object/from16 v0, v22
invoke-virtual {v0, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v7
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcC:Lorg/jbox2d/common/Vec2;
move-object/from16 v24, v0
move-object/from16 v0, v24
invoke-virtual {v7, v0}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 451
move-object/from16 v0, v18
move-object/from16 v1, v21
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v7
invoke-virtual {v7, v9}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v7
invoke-virtual {v7, v13}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v7
move-object/from16 v0, v23
invoke-static {v5, v7, v0}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 452
move-object/from16 v0, v23
move-object/from16 v1, v22
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v5
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisC:Lorg/jbox2d/common/Vec2;
invoke-static {v5, v7}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v5
.line 453
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/16 v21, 0x4
move/from16 v0, v21
invoke-interface {v7, v0}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_cb
.line 464
:cond_2db
move-object/from16 v0, p0
iget-object v7, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v7}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v7
.line 465
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v21, v0
invoke-interface/range {v21 .. v21}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v21
.line 466
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v22, v0
invoke-interface/range {v22 .. v22}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v22
.line 467
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v23, v0
invoke-interface/range {v23 .. v23}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v23
.line 468
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v24, v0
invoke-interface/range {v24 .. v24}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v24
.line 469
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
move-object/from16 v25, v0
move-object/from16 v0, v25
invoke-static {v8, v0, v7}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 470
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
move-object/from16 v25, v0
move-object/from16 v0, v18
move-object/from16 v1, v25
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v25
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcD:Lorg/jbox2d/common/Vec2;
move-object/from16 v26, v0
invoke-virtual/range {v25 .. v26}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v25
move-object/from16 v0, v25
move-object/from16 v1, v21
invoke-static {v8, v0, v1}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 471
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorB:Lorg/jbox2d/common/Vec2;
move-object/from16 v25, v0
move-object/from16 v0, v18
move-object/from16 v1, v25
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v25
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_lcB:Lorg/jbox2d/common/Vec2;
move-object/from16 v26, v0
invoke-virtual/range {v25 .. v26}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v25
move-object/from16 v0, v25
move-object/from16 v1, v22
invoke-static {v6, v0, v1}, Lorg/jbox2d/common/Rot;->mulToOutUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 472
move-object/from16 v0, v20
invoke-virtual {v0, v7}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v6
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move/from16 v25, v0
move/from16 v0, v25
invoke-virtual {v6, v0}, Lorg/jbox2d/common/Vec2;->mulLocal(F)Lorg/jbox2d/common/Vec2;
.line 473
move-object/from16 v0, v21
invoke-static {v0, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v6
.line 474
move-object/from16 v0, v22
invoke-static {v0, v7}, Lorg/jbox2d/common/Vec2;->cross(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v7
.line 475
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move/from16 v21, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_ratio:F
move/from16 v25, v0
mul-float v21, v21, v25
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
move/from16 v25, v0
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
move/from16 v26, v0
add-float v25, v25, v26
mul-float v21, v21, v25
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
move/from16 v25, v0
mul-float v25, v25, v6
mul-float v25, v25, v6
add-float v21, v21, v25
move-object/from16 v0, p0
iget v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
move/from16 v25, v0
mul-float v25, v25, v7
mul-float v25, v25, v7
add-float v21, v21, v25
add-float v2, v2, v21
.line 477
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAnchorD:Lorg/jbox2d/common/Vec2;
move-object/from16 v21, v0
move-object/from16 v0, v23
move-object/from16 v1, v21
invoke-virtual {v0, v1}, 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/GearJoint;->m_lcD:Lorg/jbox2d/common/Vec2;
move-object/from16 v25, v0
move-object/from16 v0, v21
move-object/from16 v1, v25
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
.line 478
move-object/from16 v0, v18
move-object/from16 v1, v22
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v18
move-object/from16 v0, v18
invoke-virtual {v0, v11}, Lorg/jbox2d/common/Vec2;->addLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v18
move-object/from16 v0, v18
invoke-virtual {v0, v15}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v18
move-object/from16 v0, v18
move-object/from16 v1, v24
invoke-static {v8, v0, v1}, Lorg/jbox2d/common/Rot;->mulTransUnsafe(Lorg/jbox2d/common/Rot;Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)V
.line 479
move-object/from16 v0, v24
move-object/from16 v1, v23
invoke-virtual {v0, v1}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v8
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_localAxisD:Lorg/jbox2d/common/Vec2;
move-object/from16 v18, v0
move-object/from16 v0, v18
invoke-static {v8, v0}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v8
.line 480
move-object/from16 v0, p0
iget-object v0, v0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
move-object/from16 v18, v0
const/16 v21, 0x5
move-object/from16 v0, v18
move/from16 v1, v21
invoke-interface {v0, v1}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
goto/16 :goto_107
.line 518
:cond_404
const/4 v2, 0x0
goto/16 :goto_203
:cond_407
move v2, v5
goto/16 :goto_120
.end method
.method public solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.registers 14
.prologue
.line 350
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexA:I
aget-object v0, v0, v1
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 351
iget-object v1, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexA:I
aget-object v1, v1, v2
iget v1, v1, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 352
iget-object v2, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v3, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexB:I
aget-object v2, v2, v3
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 353
iget-object v3, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v4, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexB:I
aget-object v3, v3, v4
iget v3, v3, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 354
iget-object v4, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexC:I
aget-object v4, v4, v5
iget-object v4, v4, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 355
iget-object v5, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v6, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexC:I
aget-object v5, v5, v6
iget v5, v5, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 356
iget-object v6, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v7, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v6, v6, v7
iget-object v6, v6, Lorg/jbox2d/dynamics/contacts/Velocity;->v:Lorg/jbox2d/common/Vec2;
.line 357
iget-object v7, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v8, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v7, v7, v8
iget v7, v7, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 359
iget-object v8, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v8}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v8
.line 360
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
invoke-interface {v9}, Lorg/jbox2d/pooling/IWorldPool;->popVec2()Lorg/jbox2d/common/Vec2;
move-result-object v9
.line 361
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
invoke-virtual {v8, v0}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v8
invoke-virtual {v8, v4}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v8
invoke-static {v10, v8}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v8
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
invoke-virtual {v9, v2}, Lorg/jbox2d/common/Vec2;->set(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v9
invoke-virtual {v9, v6}, Lorg/jbox2d/common/Vec2;->subLocal(Lorg/jbox2d/common/Vec2;)Lorg/jbox2d/common/Vec2;
move-result-object v9
invoke-static {v10, v9}, Lorg/jbox2d/common/Vec2;->dot(Lorg/jbox2d/common/Vec2;Lorg/jbox2d/common/Vec2;)F
move-result v9
add-float/2addr v8, v9
.line 363
iget v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
mul-float/2addr v9, v1
iget v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
mul-float/2addr v10, v5
sub-float/2addr v9, v10
iget v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
mul-float/2addr v10, v3
iget v11, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
mul-float/2addr v11, v7
sub-float/2addr v10, v11
add-float/2addr v9, v10
add-float/2addr v8, v9
.line 364
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->pool:Lorg/jbox2d/pooling/IWorldPool;
const/4 v10, 0x2
invoke-interface {v9, v10}, Lorg/jbox2d/pooling/IWorldPool;->pushVec2(I)V
.line 366
iget v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mass:F
neg-float v9, v9
mul-float/2addr v8, v9
.line 367
iget v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
add-float/2addr v9, v8
iput v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_impulse:F
.line 369
iget v9, v0, Lorg/jbox2d/common/Vec2;->x:F
iget v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
mul-float/2addr v10, v8
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v11, v11, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v10, v11
add-float/2addr v9, v10
iput v9, v0, Lorg/jbox2d/common/Vec2;->x:F
.line 370
iget v9, v0, Lorg/jbox2d/common/Vec2;->y:F
iget v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mA:F
mul-float/2addr v10, v8
iget-object v11, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v11, v11, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v10, v11
add-float/2addr v9, v10
iput v9, v0, Lorg/jbox2d/common/Vec2;->y:F
.line 371
iget v0, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iA:F
mul-float/2addr v0, v8
iget v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwA:F
mul-float/2addr v0, v9
add-float/2addr v0, v1
.line 373
iget v1, v2, Lorg/jbox2d/common/Vec2;->x:F
iget v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
mul-float/2addr v9, v8
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v9, v10
add-float/2addr v1, v9
iput v1, v2, Lorg/jbox2d/common/Vec2;->x:F
.line 374
iget v1, v2, Lorg/jbox2d/common/Vec2;->y:F
iget v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mB:F
mul-float/2addr v9, v8
iget-object v10, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v10, v10, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v9, v10
add-float/2addr v1, v9
iput v1, v2, Lorg/jbox2d/common/Vec2;->y:F
.line 375
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iB:F
mul-float/2addr v1, v8
iget v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwB:F
mul-float/2addr v1, v2
add-float/2addr v1, v3
.line 377
iget v2, v4, Lorg/jbox2d/common/Vec2;->x:F
iget v3, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
mul-float/2addr v3, v8
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v3, v9
sub-float/2addr v2, v3
iput v2, v4, Lorg/jbox2d/common/Vec2;->x:F
.line 378
iget v2, v4, Lorg/jbox2d/common/Vec2;->y:F
iget v3, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mC:F
mul-float/2addr v3, v8
iget-object v9, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvAC:Lorg/jbox2d/common/Vec2;
iget v9, v9, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v3, v9
sub-float/2addr v2, v3
iput v2, v4, Lorg/jbox2d/common/Vec2;->y:F
.line 379
iget v2, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iC:F
mul-float/2addr v2, v8
iget v3, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwC:F
mul-float/2addr v2, v3
sub-float v2, v5, v2
.line 381
iget v3, v6, Lorg/jbox2d/common/Vec2;->x:F
iget v4, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
mul-float/2addr v4, v8
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->x:F
mul-float/2addr v4, v5
sub-float/2addr v3, v4
iput v3, v6, Lorg/jbox2d/common/Vec2;->x:F
.line 382
iget v3, v6, Lorg/jbox2d/common/Vec2;->y:F
iget v4, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_mD:F
mul-float/2addr v4, v8
iget-object v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JvBD:Lorg/jbox2d/common/Vec2;
iget v5, v5, Lorg/jbox2d/common/Vec2;->y:F
mul-float/2addr v4, v5
sub-float/2addr v3, v4
iput v3, v6, Lorg/jbox2d/common/Vec2;->y:F
.line 383
iget v3, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_iD:F
mul-float/2addr v3, v8
iget v4, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_JwD:F
mul-float/2addr v3, v4
sub-float v3, v7, v3
.line 387
iget-object v4, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v5, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexA:I
aget-object v4, v4, v5
iput v0, v4, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 389
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v4, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexB:I
aget-object v0, v0, v4
iput v1, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 391
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexC:I
aget-object v0, v0, v1
iput v2, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 393
iget-object v0, p1, Lorg/jbox2d/dynamics/SolverData;->velocities:[Lorg/jbox2d/dynamics/contacts/Velocity;
iget v1, p0, Lorg/jbox2d/dynamics/joints/GearJoint;->m_indexD:I
aget-object v0, v0, v1
iput v3, v0, Lorg/jbox2d/dynamics/contacts/Velocity;->w:F
.line 394
return-void
.end method