Box2D
2.3.0
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. | |
float32 | GetCurrentLengthA () const |
Get the current length of the segment attached to bodyA. | |
float32 | GetCurrentLengthB () const |
Get the current length of the segment attached to bodyB. | |
void | Dump () |
Dump joint to dmLog. | |
void | ShiftOrigin (const b2Vec2 &newOrigin) |
Implement b2Joint::ShiftOrigin. | |
Public Member Functions inherited from b2Joint | |
b2JointType | GetType () const |
Get the type of the concrete joint. | |
b2Body * | GetBodyA () |
Get the first body attached to this joint. | |
b2Body * | GetBodyB () |
Get the second body attached to this joint. | |
b2Joint * | GetNext () |
Get the next joint the world joint list. | |
const b2Joint * | GetNext () const |
void * | GetUserData () const |
Get the user data pointer. | |
void | SetUserData (void *data) |
Set the user data pointer. | |
bool | IsActive () const |
Short-cut function to determine if either body is inactive. | |
bool | GetCollideConnected () const |
Protected Member Functions | |
b2PulleyJoint (const b2PulleyJointDef *data) | |
void | InitVelocityConstraints (const b2SolverData &data) |
void | SolveVelocityConstraints (const b2SolverData &data) |
bool | SolvePositionConstraints (const b2SolverData &data) |
Protected Member Functions inherited from b2Joint | |
b2Joint (const b2JointDef *def) | |
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 |
Protected Attributes inherited from b2Joint | |
b2JointType | m_type |
b2Joint * | m_prev |
b2Joint * | m_next |
b2JointEdge | m_edgeA |
b2JointEdge | m_edgeB |
b2Body * | m_bodyA |
b2Body * | m_bodyB |
int32 | m_index |
bool | m_islandFlag |
bool | m_collideConnected |
void * | m_userData |
Friends | |
class | b2Joint |
Additional Inherited Members | |
Static Protected Member Functions inherited from b2Joint | |
static b2Joint * | Create (const b2JointDef *def, b2BlockAllocator *allocator) |
static void | Destroy (b2Joint *joint, b2BlockAllocator *allocator) |
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.