23#ifndef B2_REVOLUTE_JOINT_H 
   24#define B2_REVOLUTE_JOINT_H 
   43        type = e_revoluteJoint;
 
   44        localAnchorA.Set(0.0f, 0.0f);
 
   45        localAnchorB.Set(0.0f, 0.0f);
 
   46        referenceAngle = 0.0f;
 
   49        maxMotorTorque = 0.0f;
 
  140    float GetMotorSpeed() 
const;
 
  144    float GetMaxMotorTorque()
 const { 
return m_maxMotorTorque; }
 
  171    void InitVelocityConstraints(
const b2SolverData& data) 
override;
 
  172    void SolveVelocityConstraints(
const b2SolverData& data) 
override;
 
  173    bool SolvePositionConstraints(
const b2SolverData& data) 
override;
 
  179    float m_motorImpulse;
 
  180    float m_lowerImpulse;
 
  181    float m_upperImpulse;
 
  183    float m_maxMotorTorque;
 
  186    float m_referenceAngle;
 
A rigid body. These are created via b2World::CreateBody.
Definition: b2_body.h:129
 
Definition: b2_gear_joint.h:62
 
Definition: b2_joint.h:111
 
Definition: b2_revolute_joint.h:95
 
float GetJointAngle() const
Get the current joint angle in radians.
 
const b2Vec2 & GetLocalAnchorB() const
The local anchor point relative to bodyB's origin.
Definition: b2_revolute_joint.h:104
 
bool IsMotorEnabled() const
Is the joint motor enabled?
 
void Dump() override
Dump to b2Log.
 
float GetUpperLimit() const
Get the upper joint limit in radians.
 
void EnableLimit(bool flag)
Enable/disable the joint limit.
 
float GetMotorTorque(float inv_dt) const
 
const b2Vec2 & GetLocalAnchorA() const
The local anchor point relative to bodyA's origin.
Definition: b2_revolute_joint.h:101
 
void SetMotorSpeed(float speed)
Set the motor speed in radians per second.
 
float GetMotorSpeed() const
Get the motor speed in radians per second.
Definition: b2_revolute_joint.h:206
 
b2Vec2 GetReactionForce(float inv_dt) const override
 
void SetMaxMotorTorque(float torque)
Set the maximum motor torque, usually in N-m.
 
float GetJointSpeed() const
Get the current joint angle speed in radians per second.
 
void EnableMotor(bool flag)
Enable/disable the joint motor.
 
float GetReferenceAngle() const
Get the reference angle.
Definition: b2_revolute_joint.h:107
 
bool IsLimitEnabled() const
Is the joint limit enabled?
 
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.
 
float GetReactionTorque(float inv_dt) const override
 
void Draw(b2Draw *draw) const override
Debug draw this joint.
 
void SetLimits(float lower, float upper)
Set the joint limits in radians.
 
float GetLowerLimit() const
Get the lower joint limit in radians.
 
Joint definitions are used to construct joints.
Definition: b2_joint.h:73
 
A 2-by-2 matrix. Stored in column-major order.
Definition: b2_math.h:172
 
Definition: b2_revolute_joint.h:40
 
float lowerAngle
The lower angle for the joint limit (radians).
Definition: b2_revolute_joint.h:72
 
bool enableLimit
A flag to enable joint limits.
Definition: b2_revolute_joint.h:69
 
float motorSpeed
The desired motor speed. Usually in radians per second.
Definition: b2_revolute_joint.h:81
 
b2Vec2 localAnchorB
The local anchor point relative to bodyB's origin.
Definition: b2_revolute_joint.h:63
 
float upperAngle
The upper angle for the joint limit (radians).
Definition: b2_revolute_joint.h:75
 
void Initialize(b2Body *bodyA, b2Body *bodyB, const b2Vec2 &anchor)
 
b2Vec2 localAnchorA
The local anchor point relative to bodyA's origin.
Definition: b2_revolute_joint.h:60
 
float referenceAngle
The bodyB angle minus bodyA angle in the reference state (radians).
Definition: b2_revolute_joint.h:66
 
bool enableMotor
A flag to enable the joint motor.
Definition: b2_revolute_joint.h:78
 
float maxMotorTorque
Definition: b2_revolute_joint.h:85
 
Solver Data.
Definition: b2_time_step.h:68
 
A 2D column vector.
Definition: b2_math.h:42