org.jbox2d.dynamics.joints
Class PulleyJoint

java.lang.Object
  extended by org.jbox2d.dynamics.joints.Joint
      extended by org.jbox2d.dynamics.joints.PulleyJoint

public class PulleyJoint
extends Joint

The pulley joint is connected to two bodies and two fixed ground points. The pulley supports a ratio such that: length1 + ratio * length2 <= constant Yes, the force transmitted is scaled by the ratio. Warning: the pulley joint can get a bit squirrelly by itself. They often work better when combined with prismatic joints. You should also cover the the anchor points with static shapes to prevent one side from going to zero length.

Author:
Daniel Murphy

Field Summary
 Vec2 m_groundAnchorA
           
 Vec2 m_groundAnchorB
           
 int m_indexA
           
 int m_indexB
           
 float m_invIA
           
 float m_invIB
           
 float m_invMassA
           
 float m_invMassB
           
 Vec2 m_localAnchorA
           
 Vec2 m_localAnchorB
           
 Vec2 m_rA
           
 Vec2 m_rB
           
static float MIN_PULLEY_LENGTH
           
 
Fields inherited from class org.jbox2d.dynamics.joints.Joint
m_bodyA, m_bodyB, m_collideConnected, m_edgeA, m_edgeB, m_index, m_islandFlag, m_next, m_prev, m_type, m_userData, pool
 
Constructor Summary
PulleyJoint(IWorldPool argWorldPool, PulleyJointDef def)
           
 
Method Summary
 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 getCurrentLengthA()
           
 float getCurrentLengthB()
           
 Vec2 getGroundAnchorA()
           
 Vec2 getGroundAnchorB()
           
 float getLength1()
           
 float getLength2()
           
 float getLengthA()
           
 float getLengthB()
           
 float getRatio()
           
 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.
 void initVelocityConstraints(SolverData data)
           
 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

MIN_PULLEY_LENGTH

public static final float MIN_PULLEY_LENGTH
See Also:
Constant Field Values

m_groundAnchorA

public final Vec2 m_groundAnchorA

m_groundAnchorB

public final Vec2 m_groundAnchorB

m_localAnchorA

public final Vec2 m_localAnchorA

m_localAnchorB

public final Vec2 m_localAnchorB

m_indexA

public int m_indexA

m_indexB

public int m_indexB

m_rA

public final Vec2 m_rA

m_rB

public final Vec2 m_rB

m_invMassA

public float m_invMassA

m_invMassB

public float m_invMassB

m_invIA

public float m_invIA

m_invIB

public float m_invIB
Constructor Detail

PulleyJoint

public PulleyJoint(IWorldPool argWorldPool,
                   PulleyJointDef def)
Parameters:
argWorldPool -
def -
Method Detail

getLengthA

public float getLengthA()

getLengthB

public float getLengthB()

getCurrentLengthA

public float getCurrentLengthA()

getCurrentLengthB

public float getCurrentLengthB()

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:

getGroundAnchorA

public Vec2 getGroundAnchorA()

getGroundAnchorB

public Vec2 getGroundAnchorB()

getLength1

public float getLength1()

getLength2

public float getLength2()

getRatio

public float getRatio()

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:


Copyright © 2012. All Rights Reserved.