Box2D 2.4.1
A 2D physics engine for games
b2Joint Class Referenceabstract

#include <b2_joint.h>

Inheritance diagram for b2Joint:
b2DistanceJoint b2FrictionJoint b2GearJoint b2MotorJoint b2MouseJoint b2PrismaticJoint b2PulleyJoint b2RevoluteJoint b2WeldJoint b2WheelJoint

Public Member Functions

b2JointType GetType () const
 Get the type of the concrete joint.
 
b2BodyGetBodyA ()
 Get the first body attached to this joint.
 
b2BodyGetBodyB ()
 Get the second body attached to this joint.
 
virtual b2Vec2 GetAnchorA () const =0
 Get the anchor point on bodyA in world coordinates. More...
 
virtual b2Vec2 GetAnchorB () const =0
 Get the anchor point on bodyB in world coordinates. More...
 
virtual b2Vec2 GetReactionForce (float inv_dt) const =0
 Get the reaction force on bodyB at the joint anchor in Newtons. More...
 
virtual float GetReactionTorque (float inv_dt) const =0
 Get the reaction torque on bodyB in N*m. More...
 
b2JointGetNext ()
 Get the next joint the world joint list.
 
const b2JointGetNext () const
 
b2JointUserDataGetUserData ()
 Get the user data pointer.
 
bool IsEnabled () const
 Short-cut function to determine if either body is enabled.
 
bool GetCollideConnected () const
 
virtual void Dump ()
 Dump this joint to the log file. More...
 
virtual void ShiftOrigin (const b2Vec2 &newOrigin)
 Shift the origin for any points stored in world coordinates. More...
 
virtual void Draw (b2Draw *draw) const
 Debug draw this joint. More...
 

Protected Member Functions

 b2Joint (const b2JointDef *def)
 
virtual void InitVelocityConstraints (const b2SolverData &data)=0
 
virtual void SolveVelocityConstraints (const b2SolverData &data)=0
 
virtual bool SolvePositionConstraints (const b2SolverData &data)=0
 

Static Protected Member Functions

static b2JointCreate (const b2JointDef *def, b2BlockAllocator *allocator)
 
static void Destroy (b2Joint *joint, b2BlockAllocator *allocator)
 

Protected Attributes

b2JointType m_type
 
b2Jointm_prev
 
b2Jointm_next
 
b2JointEdge m_edgeA
 
b2JointEdge m_edgeB
 
b2Bodym_bodyA
 
b2Bodym_bodyB
 
int32 m_index
 
bool m_islandFlag
 
bool m_collideConnected
 
b2JointUserData m_userData
 

Friends

class b2World
 
class b2Body
 
class b2Island
 
class b2GearJoint
 

Detailed Description

The base joint class. Joints are used to constraint two bodies together in various fashions. Some joints also feature limits and motors.

Member Function Documentation

◆ Draw()

virtual void b2Joint::Draw ( b2Draw draw) const
virtual

Debug draw this joint.

Reimplemented in b2DistanceJoint, b2PrismaticJoint, b2RevoluteJoint, and b2WheelJoint.

◆ Dump()

virtual void b2Joint::Dump ( )
inlinevirtual

◆ GetAnchorA()

virtual b2Vec2 b2Joint::GetAnchorA ( ) const
pure virtual

Get the anchor point on bodyA in world coordinates.

Implemented in b2DistanceJoint, b2FrictionJoint, b2GearJoint, b2MotorJoint, b2MouseJoint, b2PrismaticJoint, b2PulleyJoint, b2RevoluteJoint, b2WeldJoint, and b2WheelJoint.

◆ GetAnchorB()

virtual b2Vec2 b2Joint::GetAnchorB ( ) const
pure virtual

Get the anchor point on bodyB in world coordinates.

Implemented in b2DistanceJoint, b2FrictionJoint, b2GearJoint, b2MotorJoint, b2MouseJoint, b2PrismaticJoint, b2PulleyJoint, b2RevoluteJoint, b2WeldJoint, and b2WheelJoint.

◆ GetCollideConnected()

bool b2Joint::GetCollideConnected ( ) const
inline

Get collide connected. Note: modifying the collide connect flag won't work correctly because the flag is only checked when fixture AABBs begin to overlap.

◆ GetReactionForce()

virtual b2Vec2 b2Joint::GetReactionForce ( float  inv_dt) const
pure virtual

Get the reaction force on bodyB at the joint anchor in Newtons.

Implemented in b2DistanceJoint, b2FrictionJoint, b2GearJoint, b2MotorJoint, b2MouseJoint, b2PrismaticJoint, b2PulleyJoint, b2RevoluteJoint, b2WeldJoint, and b2WheelJoint.

◆ GetReactionTorque()

virtual float b2Joint::GetReactionTorque ( float  inv_dt) const
pure virtual

◆ ShiftOrigin()

virtual void b2Joint::ShiftOrigin ( const b2Vec2 newOrigin)
inlinevirtual

Shift the origin for any points stored in world coordinates.

Reimplemented in b2MouseJoint, and b2PulleyJoint.


The documentation for this class was generated from the following file: