Class RevoluteJoint

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

public class RevoluteJoint extends Joint
A revolute joint constrains two bodies to share a common point while they are free to rotate about the point. The relative rotation about the shared point is the joint angle. You can limit the relative rotation with a joint limit that specifies a lower and upper angle. You can use a motor to drive the relative rotation about the shared point. A maximum motor torque is provided so that infinite forces are not generated.
  • Field Details

    • m_localAnchorA

      protected final Vec2 m_localAnchorA
    • m_localAnchorB

      protected final Vec2 m_localAnchorB
    • m_impulse

      private final Vec3 m_impulse
    • m_motorImpulse

      private float m_motorImpulse
    • m_enableMotor

      private boolean m_enableMotor
    • m_maxMotorTorque

      private float m_maxMotorTorque
    • m_motorSpeed

      private float m_motorSpeed
    • m_enableLimit

      private boolean m_enableLimit
    • m_referenceAngle

      protected float m_referenceAngle
    • m_lowerAngle

      private float m_lowerAngle
    • m_upperAngle

      private float m_upperAngle
    • m_indexA

      private int m_indexA
    • m_indexB

      private int m_indexB
    • 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 final Mat33 m_mass
    • m_motorMass

      private float m_motorMass
    • m_limitState

      private LimitState m_limitState
  • Constructor Details

  • Method Details

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

      public Vec2 getLocalAnchorA()
    • getLocalAnchorB

      public Vec2 getLocalAnchorB()
    • getReferenceAngle

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

      public float getJointAngle()
    • getJointSpeed

      public float getJointSpeed()
    • isMotorEnabled

      public boolean isMotorEnabled()
    • enableMotor

      public void enableMotor(boolean flag)
    • getMotorTorque

      public float getMotorTorque(float inv_dt)
    • setMotorSpeed

      public void setMotorSpeed(float speed)
    • setMaxMotorTorque

      public void setMaxMotorTorque(float torque)
    • getMotorSpeed

      public float getMotorSpeed()
    • getMaxMotorTorque

      public float getMaxMotorTorque()
    • isLimitEnabled

      public boolean isLimitEnabled()
    • enableLimit

      public void enableLimit(boolean flag)
    • getLowerLimit

      public float getLowerLimit()
    • getUpperLimit

      public float getUpperLimit()
    • setLimits

      public void setLimits(float lower, float upper)