# Class RevoluteJoint

java.lang.Object
com.codename1.gaming.physics.box2d.dynamics.joints.Joint
com.codename1.gaming.physics.box2d.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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final Vec2`
  `m_localAnchorA`
  `protected final Vec2`
  `m_localAnchorB`
  `protected float`
  `m_referenceAngle`

  ### Fields inherited from class Joint

  `m_bodyA, m_bodyB, m_edgeA, m_edgeB, m_islandFlag, m_next, m_prev, m_userData, pool`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `RevoluteJoint(IWorldPool argWorld, RevoluteJointDef def)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `enableLimit(boolean flag)`
  `void`
  `enableMotor(boolean flag)`
  `void`
  `getAnchorA(Vec2 argOut)`
  get the anchor point on bodyA in world coordinates.
  `void`
  `getAnchorB(Vec2 argOut)`
  get the anchor point on bodyB in world coordinates.
  `float`
  `getJointAngle()`
  `float`
  `getJointSpeed()`
  `Vec2`
  `getLocalAnchorA()`
  `Vec2`
  `getLocalAnchorB()`
  `float`
  `getLowerLimit()`
  `float`
  `getMaxMotorTorque()`
  `float`
  `getMotorSpeed()`
  `float`
  `getMotorTorque(float inv_dt)`
  `void`
  `getReactionForce(float inv_dt, Vec2 argOut)`
  get the reaction force on body2 at the joint anchor in Newtons.
  `float`
  `getReactionTorque(float inv_dt)`
  get the reaction torque on body2 in N*m.
  `float`
  `getReferenceAngle()`
  `float`
  `getUpperLimit()`
  `void`
  `initVelocityConstraints(SolverData data)`
  `boolean`
  `isLimitEnabled()`
  `boolean`
  `isMotorEnabled()`
  `void`
  `setLimits(float lower, float upper)`
  `void`
  `setMaxMotorTorque(float torque)`
  `void`
  `setMotorSpeed(float speed)`
  `boolean`
  `solvePositionConstraints(SolverData data)`
  This returns true if the position errors are within tolerance.
  `void`
  `solveVelocityConstraints(SolverData data)`

  ### Methods inherited from class Joint

  `create, destroy, destructor, getBodyA, getBodyB, getCollideConnected, getNext, getType, getUserData, isActive, setUserData`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### m_localAnchorA

    protected final Vec2 m_localAnchorA

  - ### m_localAnchorB

    protected final Vec2 m_localAnchorB

  - ### m_referenceAngle

    protected float m_referenceAngle

- ## Constructor Details

  - ### RevoluteJoint

    protected RevoluteJoint(IWorldPool argWorld, RevoluteJointDef def)

- ## 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)