Class RopeJoint


  • public class RopeJoint
    extends Joint
    A rope joint enforces a maximum distance between two points on two bodies. It has no other effect. Warning: if you attempt to change the maximum length during the simulation you will get some non-physical behavior. A model that would allow you to dynamically modify the length would have some sponginess, so I chose not to implement it that way. See DistanceJoint if you want to dynamically control length.
    • Field Detail

      • m_localAnchorA

        private final Vec2 m_localAnchorA
      • m_localAnchorB

        private final Vec2 m_localAnchorB
      • m_maxLength

        private float m_maxLength
      • m_length

        private float m_length
      • m_impulse

        private float m_impulse
      • m_indexA

        private int m_indexA
      • m_indexB

        private int m_indexB
      • m_u

        private final Vec2 m_u
      • 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

      • 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:
      • 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:
      • getLocalAnchorA

        public Vec2 getLocalAnchorA()
      • getLocalAnchorB

        public Vec2 getLocalAnchorB()
      • getMaxLength

        public float getMaxLength()
      • setMaxLength

        public void setMaxLength​(float maxLength)
      • getLimitState

        public LimitState getLimitState()