![]() |
Box2D
2.2.1
A 2D Physics Engine for Games
|
#include <b2PulleyJoint.h>
Public Member Functions | |
b2Vec2 | GetAnchorA () const |
Get the anchor point on bodyA in world coordinates. | |
b2Vec2 | GetAnchorB () const |
Get the anchor point on bodyB in world coordinates. | |
b2Vec2 | GetReactionForce (float32 inv_dt) const |
Get the reaction force on bodyB at the joint anchor in Newtons. | |
float32 | GetReactionTorque (float32 inv_dt) const |
Get the reaction torque on bodyB in N*m. | |
b2Vec2 | GetGroundAnchorA () const |
Get the first ground anchor. | |
b2Vec2 | GetGroundAnchorB () const |
Get the second ground anchor. | |
float32 | GetLengthA () const |
Get the current length of the segment attached to bodyA. | |
float32 | GetLengthB () const |
Get the current length of the segment attached to bodyB. | |
float32 | GetRatio () const |
Get the pulley ratio. | |
void | Dump () |
Dump joint to dmLog. | |
Protected Member Functions | |
b2PulleyJoint (const b2PulleyJointDef *data) | |
void | InitVelocityConstraints (const b2SolverData &data) |
void | SolveVelocityConstraints (const b2SolverData &data) |
bool | SolvePositionConstraints (const b2SolverData &data) |
Protected Attributes | |
b2Vec2 | m_groundAnchorA |
b2Vec2 | m_groundAnchorB |
float32 | m_lengthA |
float32 | m_lengthB |
b2Vec2 | m_localAnchorA |
b2Vec2 | m_localAnchorB |
float32 | m_constant |
float32 | m_ratio |
float32 | m_impulse |
int32 | m_indexA |
int32 | m_indexB |
b2Vec2 | m_uA |
b2Vec2 | m_uB |
b2Vec2 | m_rA |
b2Vec2 | m_rB |
b2Vec2 | m_localCenterA |
b2Vec2 | m_localCenterB |
float32 | m_invMassA |
float32 | m_invMassB |
float32 | m_invIA |
float32 | m_invIB |
float32 | m_mass |
Friends | |
class | b2Joint |
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.