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
 boolean m_enableLimit
           
 boolean m_enableMotor
           
 Vec3 m_impulse
           
 LimitState m_limitState
           
 Vec2 m_localAnchor1
           
 Vec2 m_localAnchor2
           
 float m_lowerAngle
           
 Mat33 m_mass
           
 float m_maxMotorTorque
           
 float m_motorImpulse
           
 float m_motorMass
           
 float m_motorSpeed
           
 float m_referenceAngle
           
 float m_upperAngle
           
 
Fields inherited from class org.jbox2d.dynamics.joints.Joint
m_bodyA, m_bodyB, m_collideConnected, m_edgeA, m_edgeB, m_islandFlag, m_next, m_prev, m_type, m_userData, pool
 
Constructor Summary
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()
           
 float getLowerLimit()
           
 float getMotorTorque()
           
 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 getUpperLimit()
           
 void initVelocityConstraints(TimeStep step)
           
 boolean isLimitEnabled()
           
 boolean isMotorEnabled()
           
 void setLimits(float lower, float upper)
           
 void setMaxMotorTorque(float torque)
           
 void setMotorSpeed(float speed)
           
 boolean solvePositionConstraints(float baumgarte)
          This returns true if the position errors are within tolerance.
 void solveVelocityConstraints(TimeStep step)
           
 
Methods inherited from class org.jbox2d.dynamics.joints.Joint
create, destroy, destructor, getBodyA, getBodyB, 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_localAnchor1

public final Vec2 m_localAnchor1

m_localAnchor2

public final Vec2 m_localAnchor2

m_impulse

public final Vec3 m_impulse

m_motorImpulse

public float m_motorImpulse

m_mass

public final Mat33 m_mass

m_motorMass

public float m_motorMass

m_enableMotor

public boolean m_enableMotor

m_maxMotorTorque

public float m_maxMotorTorque

m_motorSpeed

public float m_motorSpeed

m_enableLimit

public boolean m_enableLimit

m_referenceAngle

public float m_referenceAngle

m_lowerAngle

public float m_lowerAngle

m_upperAngle

public float m_upperAngle

m_limitState

public LimitState m_limitState
Constructor Detail

RevoluteJoint

public RevoluteJoint(IWorldPool argWorld,
                     RevoluteJointDef def)
Method Detail

initVelocityConstraints

public void initVelocityConstraints(TimeStep step)
Specified by:
initVelocityConstraints in class Joint

solveVelocityConstraints

public void solveVelocityConstraints(TimeStep step)
Specified by:
solveVelocityConstraints in class Joint

solvePositionConstraints

public boolean solvePositionConstraints(float baumgarte)
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:

getJointAngle

public float getJointAngle()

getJointSpeed

public float getJointSpeed()

isMotorEnabled

public boolean isMotorEnabled()

enableMotor

public void enableMotor(boolean flag)

getMotorTorque

public float getMotorTorque()

setMotorSpeed

public void setMotorSpeed(float speed)

setMaxMotorTorque

public void setMaxMotorTorque(float torque)

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 © 2012. All Rights Reserved.