Class 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 <= 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 Detail

      • 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
    • Method Detail

      • 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
      • 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
        Returns:
      • getGroundAnchorA

        public Vec2 getGroundAnchorA()
      • getGroundAnchorB

        public Vec2 getGroundAnchorB()
      • getLength1

        public float getLength1()
      • getLength2

        public float getLength2()
      • getRatio

        public float getRatio()
      • 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: