org.jbox2d.dynamics.joints
Class RevoluteJoint

java.lang.Object
  extended by org.jbox2d.dynamics.joints.Joint
      extended by 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.

Author:
Daniel Murphy

Field Summary
protected  Vec2 m_localAnchorA
           
protected  Vec2 m_localAnchorB
           
protected  float m_referenceAngle
           
 
Fields inherited from class org.jbox2d.dynamics.joints.Joint
m_bodyA, m_bodyB, m_edgeA, m_edgeB, m_islandFlag, m_next, m_prev, m_userData, pool
 
Constructor Summary
protected RevoluteJoint(IWorldPool argWorld, RevoluteJointDef def)
           
 
Method Summary
 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 org.jbox2d.dynamics.joints.Joint
create, destroy, destructor, getBodyA, getBodyB, getCollideConnected, getNext, getType, getUserData, isActive, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_localAnchorA

protected final Vec2 m_localAnchorA

m_localAnchorB

protected final Vec2 m_localAnchorB

m_referenceAngle

protected float m_referenceAngle
Constructor Detail

RevoluteJoint

protected RevoluteJoint(IWorldPool argWorld,
                        RevoluteJointDef def)
Method Detail

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

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:

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)


Copyright © 2013. All Rights Reserved.