Box2D
2.4.1
A 2D physics engine for games
|
#include <b2_revolute_joint.h>
Public Member Functions | |
b2Vec2 | GetAnchorA () const override |
Get the anchor point on bodyA in world coordinates. | |
b2Vec2 | GetAnchorB () const override |
Get the anchor point on bodyB in world coordinates. | |
const b2Vec2 & | GetLocalAnchorA () const |
The local anchor point relative to bodyA's origin. | |
const b2Vec2 & | GetLocalAnchorB () const |
The local anchor point relative to bodyB's origin. | |
float | GetReferenceAngle () const |
Get the reference angle. | |
float | GetJointAngle () const |
Get the current joint angle in radians. | |
float | GetJointSpeed () const |
Get the current joint angle speed in radians per second. | |
bool | IsLimitEnabled () const |
Is the joint limit enabled? | |
void | EnableLimit (bool flag) |
Enable/disable the joint limit. | |
float | GetLowerLimit () const |
Get the lower joint limit in radians. | |
float | GetUpperLimit () const |
Get the upper joint limit in radians. | |
void | SetLimits (float lower, float upper) |
Set the joint limits in radians. | |
bool | IsMotorEnabled () const |
Is the joint motor enabled? | |
void | EnableMotor (bool flag) |
Enable/disable the joint motor. | |
void | SetMotorSpeed (float speed) |
Set the motor speed in radians per second. | |
float | GetMotorSpeed () const |
Get the motor speed in radians per second. | |
void | SetMaxMotorTorque (float torque) |
Set the maximum motor torque, usually in N-m. | |
float | GetMaxMotorTorque () const |
b2Vec2 | GetReactionForce (float inv_dt) const override |
float | GetReactionTorque (float inv_dt) const override |
float | GetMotorTorque (float inv_dt) const |
void | Dump () override |
Dump to b2Log. | |
void | Draw (b2Draw *draw) const override |
Debug draw this joint. | |
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 |
b2JointUserData & | GetUserData () |
Get the user data pointer. | |
bool | IsEnabled () const |
Short-cut function to determine if either body is enabled. | |
bool | GetCollideConnected () const |
virtual void | ShiftOrigin (const b2Vec2 &newOrigin) |
Shift the origin for any points stored in world coordinates. | |
Protected Member Functions | |
b2RevoluteJoint (const b2RevoluteJointDef *def) | |
void | InitVelocityConstraints (const b2SolverData &data) override |
void | SolveVelocityConstraints (const b2SolverData &data) override |
bool | SolvePositionConstraints (const b2SolverData &data) override |
Protected Member Functions inherited from b2Joint | |
b2Joint (const b2JointDef *def) | |
Protected Attributes | |
b2Vec2 | m_localAnchorA |
b2Vec2 | m_localAnchorB |
b2Vec2 | m_impulse |
float | m_motorImpulse |
float | m_lowerImpulse |
float | m_upperImpulse |
bool | m_enableMotor |
float | m_maxMotorTorque |
float | m_motorSpeed |
bool | m_enableLimit |
float | m_referenceAngle |
float | m_lowerAngle |
float | m_upperAngle |
int32 | m_indexA |
int32 | m_indexB |
b2Vec2 | m_rA |
b2Vec2 | m_rB |
b2Vec2 | m_localCenterA |
b2Vec2 | m_localCenterB |
float | m_invMassA |
float | m_invMassB |
float | m_invIA |
float | m_invIB |
b2Mat22 | m_K |
float | m_angle |
float | m_axialMass |
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 |
b2JointUserData | m_userData |
Friends | |
class | b2Joint |
class | b2GearJoint |
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) |
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.
float b2RevoluteJoint::GetMotorTorque | ( | float | inv_dt | ) | const |
Get the current motor torque given the inverse time step. Unit is N*m.
|
overridevirtual |
Get the reaction force given the inverse time step. Unit is N.
Implements b2Joint.
|
overridevirtual |
Get the reaction torque due to the joint limit given the inverse time step. Unit is N*m.
Implements b2Joint.