Joint.smali

.class public abstract Lorg/jbox2d/dynamics/joints/Joint;
.super Ljava/lang/Object;
.source "Joint.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/jbox2d/dynamics/joints/Joint$1;
    }
.end annotation


# static fields
.field static final synthetic $assertionsDisabled:Z


# instance fields
.field protected m_bodyA:Lorg/jbox2d/dynamics/Body;

.field protected m_bodyB:Lorg/jbox2d/dynamics/Body;

.field private m_collideConnected:Z

.field public m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;

.field public m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;

.field public m_islandFlag:Z

.field public m_next:Lorg/jbox2d/dynamics/joints/Joint;

.field public m_prev:Lorg/jbox2d/dynamics/joints/Joint;

.field private final m_type:Lorg/jbox2d/dynamics/joints/JointType;

.field public m_userData:Ljava/lang/Object;

.field protected pool:Lorg/jbox2d/pooling/IWorldPool;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 39
    const-class v0, Lorg/jbox2d/dynamics/joints/Joint;

    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/Joint;->$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/JointDef;)V
    .registers 6

    .prologue
    const/4 v2, 0x0

    .line 98
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 99
    sget-boolean v0, Lorg/jbox2d/dynamics/joints/Joint;->$assertionsDisabled:Z

    if-nez v0, :cond_14

    iget-object v0, p2, Lorg/jbox2d/dynamics/joints/JointDef;->bodyA:Lorg/jbox2d/dynamics/Body;

    iget-object v1, p2, Lorg/jbox2d/dynamics/joints/JointDef;->bodyB:Lorg/jbox2d/dynamics/Body;

    if-ne v0, v1, :cond_14

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 101
    :cond_14
    iput-object p1, p0, Lorg/jbox2d/dynamics/joints/Joint;->pool:Lorg/jbox2d/pooling/IWorldPool;

    .line 102
    iget-object v0, p2, Lorg/jbox2d/dynamics/joints/JointDef;->type:Lorg/jbox2d/dynamics/joints/JointType;

    iput-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_type:Lorg/jbox2d/dynamics/joints/JointType;

    .line 103
    iput-object v2, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_prev:Lorg/jbox2d/dynamics/joints/Joint;

    .line 104
    iput-object v2, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;

    .line 105
    iget-object v0, p2, Lorg/jbox2d/dynamics/joints/JointDef;->bodyA:Lorg/jbox2d/dynamics/Body;

    iput-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_bodyA:Lorg/jbox2d/dynamics/Body;

    .line 106
    iget-object v0, p2, Lorg/jbox2d/dynamics/joints/JointDef;->bodyB:Lorg/jbox2d/dynamics/Body;

    iput-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_bodyB:Lorg/jbox2d/dynamics/Body;

    .line 107
    iget-boolean v0, p2, Lorg/jbox2d/dynamics/joints/JointDef;->collideConnected:Z

    iput-boolean v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_collideConnected:Z

    .line 108
    const/4 v0, 0x0

    iput-boolean v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_islandFlag:Z

    .line 109
    iget-object v0, p2, Lorg/jbox2d/dynamics/joints/JointDef;->userData:Ljava/lang/Object;

    iput-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_userData:Ljava/lang/Object;

    .line 111
    new-instance v0, Lorg/jbox2d/dynamics/joints/JointEdge;

    invoke-direct {v0}, Lorg/jbox2d/dynamics/joints/JointEdge;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 112
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;

    .line 113
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->other:Lorg/jbox2d/dynamics/Body;

    .line 114
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 115
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeA:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 117
    new-instance v0, Lorg/jbox2d/dynamics/joints/JointEdge;

    invoke-direct {v0}, Lorg/jbox2d/dynamics/joints/JointEdge;-><init>()V

    iput-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 118
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->joint:Lorg/jbox2d/dynamics/joints/Joint;

    .line 119
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->other:Lorg/jbox2d/dynamics/Body;

    .line 120
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->prev:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 121
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_edgeB:Lorg/jbox2d/dynamics/joints/JointEdge;

    iput-object v2, v0, Lorg/jbox2d/dynamics/joints/JointEdge;->next:Lorg/jbox2d/dynamics/joints/JointEdge;

    .line 125
    return-void
.end method

.method public static create(Lorg/jbox2d/dynamics/World;Lorg/jbox2d/dynamics/joints/JointDef;)Lorg/jbox2d/dynamics/joints/Joint;
    .registers 4

    .prologue
    .line 43
    sget-object v0, Lorg/jbox2d/dynamics/joints/Joint$1;->$SwitchMap$org$jbox2d$dynamics$joints$JointType:[I

    iget-object v1, p1, Lorg/jbox2d/dynamics/joints/JointDef;->type:Lorg/jbox2d/dynamics/joints/JointType;

    invoke-virtual {v1}, Lorg/jbox2d/dynamics/joints/JointType;->ordinal()I

    move-result v1

    aget v0, v0, v1

    packed-switch v0, :pswitch_data_9c

    .line 70
    const/4 v0, 0x0

    :goto_e
    return-object v0

    .line 45
    :pswitch_f
    new-instance v0, Lorg/jbox2d/dynamics/joints/MouseJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/MouseJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/MouseJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/MouseJointDef;)V

    goto :goto_e

    .line 47
    :pswitch_1b
    new-instance v0, Lorg/jbox2d/dynamics/joints/DistanceJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/DistanceJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/DistanceJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/DistanceJointDef;)V

    goto :goto_e

    .line 49
    :pswitch_27
    new-instance v0, Lorg/jbox2d/dynamics/joints/PrismaticJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/PrismaticJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/PrismaticJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/PrismaticJointDef;)V

    goto :goto_e

    .line 51
    :pswitch_33
    new-instance v0, Lorg/jbox2d/dynamics/joints/RevoluteJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/RevoluteJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/RevoluteJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/RevoluteJointDef;)V

    goto :goto_e

    .line 53
    :pswitch_3f
    new-instance v0, Lorg/jbox2d/dynamics/joints/WeldJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/WeldJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/WeldJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/WeldJointDef;)V

    goto :goto_e

    .line 55
    :pswitch_4b
    new-instance v0, Lorg/jbox2d/dynamics/joints/FrictionJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/FrictionJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/FrictionJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/FrictionJointDef;)V

    goto :goto_e

    .line 57
    :pswitch_57
    new-instance v0, Lorg/jbox2d/dynamics/joints/WheelJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/WheelJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/WheelJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/WheelJointDef;)V

    goto :goto_e

    .line 59
    :pswitch_63
    new-instance v0, Lorg/jbox2d/dynamics/joints/GearJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/GearJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/GearJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/GearJointDef;)V

    goto :goto_e

    .line 61
    :pswitch_6f
    new-instance v0, Lorg/jbox2d/dynamics/joints/PulleyJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/PulleyJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/PulleyJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/PulleyJointDef;)V

    goto :goto_e

    .line 63
    :pswitch_7b
    new-instance v0, Lorg/jbox2d/dynamics/joints/ConstantVolumeJoint;

    check-cast p1, Lorg/jbox2d/dynamics/joints/ConstantVolumeJointDef;

    invoke-direct {v0, p0, p1}, Lorg/jbox2d/dynamics/joints/ConstantVolumeJoint;-><init>(Lorg/jbox2d/dynamics/World;Lorg/jbox2d/dynamics/joints/ConstantVolumeJointDef;)V

    goto :goto_e

    .line 65
    :pswitch_83
    new-instance v0, Lorg/jbox2d/dynamics/joints/RopeJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/RopeJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/RopeJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/RopeJointDef;)V

    goto :goto_e

    .line 67
    :pswitch_8f
    new-instance v0, Lorg/jbox2d/dynamics/joints/MotorJoint;

    invoke-virtual {p0}, Lorg/jbox2d/dynamics/World;->getPool()Lorg/jbox2d/pooling/IWorldPool;

    move-result-object v1

    check-cast p1, Lorg/jbox2d/dynamics/joints/MotorJointDef;

    invoke-direct {v0, v1, p1}, Lorg/jbox2d/dynamics/joints/MotorJoint;-><init>(Lorg/jbox2d/pooling/IWorldPool;Lorg/jbox2d/dynamics/joints/MotorJointDef;)V

    goto/16 :goto_e

    .line 43
    :pswitch_data_9c
    .packed-switch 0x1
        :pswitch_f
        :pswitch_1b
        :pswitch_27
        :pswitch_33
        :pswitch_3f
        :pswitch_4b
        :pswitch_57
        :pswitch_63
        :pswitch_6f
        :pswitch_7b
        :pswitch_83
        :pswitch_8f
    .end packed-switch
.end method

.method public static destroy(Lorg/jbox2d/dynamics/joints/Joint;)V
    .registers 1

    .prologue
    .line 75
    invoke-virtual {p0}, Lorg/jbox2d/dynamics/joints/Joint;->destructor()V

    .line 76
    return-void
.end method


# virtual methods
.method public destructor()V
    .registers 1

    .prologue
    .line 234
    return-void
.end method

.method public abstract getAnchorA(Lorg/jbox2d/common/Vec2;)V
.end method

.method public abstract getAnchorB(Lorg/jbox2d/common/Vec2;)V
.end method

.method public final getBodyA()Lorg/jbox2d/dynamics/Body;
    .registers 2

    .prologue
    .line 140
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_bodyA:Lorg/jbox2d/dynamics/Body;

    return-object v0
.end method

.method public final getBodyB()Lorg/jbox2d/dynamics/Body;
    .registers 2

    .prologue
    .line 149
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_bodyB:Lorg/jbox2d/dynamics/Body;

    return-object v0
.end method

.method public final getCollideConnected()Z
    .registers 2

    .prologue
    .line 208
    iget-boolean v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_collideConnected:Z

    return v0
.end method

.method public getNext()Lorg/jbox2d/dynamics/joints/Joint;
    .registers 2

    .prologue
    .line 186
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_next:Lorg/jbox2d/dynamics/joints/Joint;

    return-object v0
.end method

.method public abstract getReactionForce(FLorg/jbox2d/common/Vec2;)V
.end method

.method public abstract getReactionTorque(F)F
.end method

.method public getType()Lorg/jbox2d/dynamics/joints/JointType;
    .registers 2

    .prologue
    .line 133
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_type:Lorg/jbox2d/dynamics/joints/JointType;

    return-object v0
.end method

.method public getUserData()Ljava/lang/Object;
    .registers 2

    .prologue
    .line 193
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_userData:Ljava/lang/Object;

    return-object v0
.end method

.method public abstract initVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.end method

.method public isActive()Z
    .registers 2

    .prologue
    .line 217
    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_bodyA:Lorg/jbox2d/dynamics/Body;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->isActive()Z

    move-result v0

    if-eqz v0, :cond_12

    iget-object v0, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_bodyB:Lorg/jbox2d/dynamics/Body;

    invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->isActive()Z

    move-result v0

    if-eqz v0, :cond_12

    const/4 v0, 0x1

    :goto_11
    return v0

    :cond_12
    const/4 v0, 0x0

    goto :goto_11
.end method

.method public setUserData(Ljava/lang/Object;)V
    .registers 2

    .prologue
    .line 200
    iput-object p1, p0, Lorg/jbox2d/dynamics/joints/Joint;->m_userData:Ljava/lang/Object;

    .line 201
    return-void
.end method

.method public abstract solvePositionConstraints(Lorg/jbox2d/dynamics/SolverData;)Z
.end method

.method public abstract solveVelocityConstraints(Lorg/jbox2d/dynamics/SolverData;)V
.end method