Class PulleyJoint

java.lang.Object
org.jbox2d.dynamics.joints.Joint
org.jbox2d.dynamics.joints.PulleyJoint

public class PulleyJoint extends Joint
The pulley joint is connected to two bodies and two fixed ground points. The pulley supports a ratio such that: length1 + ratio * length2 invalid input: '<'= constant Yes, the force transmitted is scaled by the ratio. Warning: the pulley joint can get a bit squirrelly by itself. They often work better when combined with prismatic joints. You should also cover the the anchor points with static shapes to prevent one side from going to zero length.
  • Field Details

    • MIN_PULLEY_LENGTH

      public static final float MIN_PULLEY_LENGTH
      See Also:
    • m_groundAnchorA

      private final Vec2 m_groundAnchorA
    • m_groundAnchorB

      private final Vec2 m_groundAnchorB
    • m_lengthA

      private float m_lengthA
    • m_lengthB

      private float m_lengthB
    • m_localAnchorA

      private final Vec2 m_localAnchorA
    • m_localAnchorB

      private final Vec2 m_localAnchorB
    • m_constant

      private float m_constant
    • m_ratio

      private float m_ratio
    • m_impulse

      private float m_impulse
    • m_indexA

      private int m_indexA
    • m_indexB

      private int m_indexB
    • m_uA

      private final Vec2 m_uA
    • m_uB

      private final Vec2 m_uB
    • m_rA

      private final Vec2 m_rA
    • m_rB

      private final Vec2 m_rB
    • m_localCenterA

      private final Vec2 m_localCenterA
    • m_localCenterB

      private final Vec2 m_localCenterB
    • m_invMassA

      private float m_invMassA
    • m_invMassB

      private float m_invMassB
    • m_invIA

      private float m_invIA
    • m_invIB

      private float m_invIB
    • m_mass

      private float m_mass
  • Constructor Details

  • Method Details

    • getLengthA

      public float getLengthA()
    • getLengthB

      public float getLengthB()
    • getCurrentLengthA

      public float getCurrentLengthA()
    • getCurrentLengthB

      public float getCurrentLengthB()
    • getLocalAnchorA

      public Vec2 getLocalAnchorA()
    • getLocalAnchorB

      public Vec2 getLocalAnchorB()
    • getAnchorA

      public void getAnchorA(Vec2 argOut)
      Description copied from class: Joint
      get the anchor point on bodyA in world coordinates.
      Specified by:
      getAnchorA in class Joint
    • getAnchorB

      public void getAnchorB(Vec2 argOut)
      Description copied from class: Joint
      get the anchor point on bodyB in world coordinates.
      Specified by:
      getAnchorB in class Joint
    • getReactionForce

      public void getReactionForce(float inv_dt, Vec2 argOut)
      Description copied from class: Joint
      get the reaction force on body2 at the joint anchor in Newtons.
      Specified by:
      getReactionForce in class Joint
      Parameters:
      inv_dt -
    • getReactionTorque

      public float getReactionTorque(float inv_dt)
      Description copied from class: Joint
      get the reaction torque on body2 in N*m.
      Specified by:
      getReactionTorque in class Joint
      Parameters:
      inv_dt -
      Returns:
    • getGroundAnchorA

      public Vec2 getGroundAnchorA()
    • getGroundAnchorB

      public Vec2 getGroundAnchorB()
    • getLength1

      public float getLength1()
    • getLength2

      public float getLength2()
    • getRatio

      public float getRatio()
    • initVelocityConstraints

      public void initVelocityConstraints(SolverData data)
      Specified by:
      initVelocityConstraints in class Joint
    • solveVelocityConstraints

      public void solveVelocityConstraints(SolverData data)
      Specified by:
      solveVelocityConstraints in class Joint
    • solvePositionConstraints

      public boolean solvePositionConstraints(SolverData data)
      Description copied from class: Joint
      This returns true if the position errors are within tolerance.
      Specified by:
      solvePositionConstraints in class Joint
      Returns: