public class RevoluteJoint

  1. Object
  2. Joint
  3. RevoluteJoint
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.

Fields

protected final Vec2 m_localAnchorA
protected final Vec2 m_localAnchorB
protected float m_referenceAngle

Constructors

protected RevoluteJoint(IWorldPool argWorld, RevoluteJointDef def)

Methods

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

Inherited fields

Inherited methods

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)

solveVelocityConstraints

public void solveVelocityConstraints(SolverData data)

solvePositionConstraints

public boolean solvePositionConstraints(SolverData data)
This returns true if the position errors are within tolerance.

getLocalAnchorA

public Vec2 getLocalAnchorA()

getLocalAnchorB

public Vec2 getLocalAnchorB()

getReferenceAngle

public float getReferenceAngle()

getAnchorA

public void getAnchorA(Vec2 argOut)
get the anchor point on bodyA in world coordinates.

getAnchorB

public void getAnchorB(Vec2 argOut)
get the anchor point on bodyB in world coordinates.

getReactionForce

public void getReactionForce(float inv_dt, Vec2 argOut)
get the reaction force on body2 at the joint anchor in Newtons.

getReactionTorque

public float getReactionTorque(float inv_dt)
get the reaction torque on body2 in N*m.

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)