23#ifndef B2_PRISMATIC_JOINT_H
24#define B2_PRISMATIC_JOINT_H
39 type = e_prismaticJoint;
40 localAnchorA.SetZero();
41 localAnchorB.SetZero();
42 localAxisA.Set(1.0f, 0.0f);
43 referenceAngle = 0.0f;
45 lowerTranslation = 0.0f;
46 upperTranslation = 0.0f;
143 float GetMotorSpeed()
const;
147 float GetMaxMotorForce()
const {
return m_maxMotorForce; }
163 void InitVelocityConstraints(
const b2SolverData& data)
override;
164 void SolveVelocityConstraints(
const b2SolverData& data)
override;
165 bool SolvePositionConstraints(
const b2SolverData& data)
override;
171 float m_referenceAngle;
173 float m_motorImpulse;
174 float m_lowerImpulse;
175 float m_upperImpulse;
176 float m_lowerTranslation;
177 float m_upperTranslation;
178 float m_maxMotorForce;
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_prismatic_joint.h:92
bool IsMotorEnabled() const
Is the joint motor enabled?
float GetReactionTorque(float inv_dt) const override
Get the reaction torque on bodyB in N*m.
float GetMotorSpeed() const
Get the motor speed, usually in meters per second.
Definition: b2_prismatic_joint.h:200
void SetLimits(float lower, float upper)
Set the joint limits, usually in meters.
b2Vec2 GetReactionForce(float inv_dt) const override
Get the reaction force on bodyB at the joint anchor in Newtons.
bool IsLimitEnabled() const
Is the joint limit enabled?
float GetReferenceAngle() const
Get the reference angle.
Definition: b2_prismatic_joint.h:110
void Draw(b2Draw *draw) const override
Debug draw this joint.
void EnableMotor(bool flag)
Enable/disable the joint motor.
void EnableLimit(bool flag)
Enable/disable the joint limit.
float GetUpperLimit() const
Get the upper joint limit, usually in meters.
float GetMotorForce(float inv_dt) const
Get the current motor force given the inverse time step, usually in N.
b2Vec2 GetAnchorB() const override
Get the anchor point on bodyB in world coordinates.
void Dump() override
Dump to b2Log.
float GetJointSpeed() const
Get the current joint translation speed, usually in meters per second.
const b2Vec2 & GetLocalAnchorA() const
The local anchor point relative to bodyA's origin.
Definition: b2_prismatic_joint.h:101
void SetMaxMotorForce(float force)
Set the maximum motor force, usually in N.
void SetMotorSpeed(float speed)
Set the motor speed, usually in meters per second.
float GetLowerLimit() const
Get the lower joint limit, usually in meters.
b2Vec2 GetAnchorA() const override
Get the anchor point on bodyA in world coordinates.
const b2Vec2 & GetLocalAnchorB() const
The local anchor point relative to bodyB's origin.
Definition: b2_prismatic_joint.h:104
const b2Vec2 & GetLocalAxisA() const
The local joint axis relative to bodyA.
Definition: b2_prismatic_joint.h:107
float GetJointTranslation() const
Get the current joint translation, usually in meters.
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_prismatic_joint.h:36
float lowerTranslation
The lower translation limit, usually in meters.
Definition: b2_prismatic_joint.h:72
bool enableMotor
Enable/disable the joint motor.
Definition: b2_prismatic_joint.h:78
float motorSpeed
The desired motor speed in radians per second.
Definition: b2_prismatic_joint.h:84
b2Vec2 localAnchorB
The local anchor point relative to bodyB's origin.
Definition: b2_prismatic_joint.h:60
float upperTranslation
The upper translation limit, usually in meters.
Definition: b2_prismatic_joint.h:75
bool enableLimit
Enable/disable the joint limit.
Definition: b2_prismatic_joint.h:69
b2Vec2 localAnchorA
The local anchor point relative to bodyA's origin.
Definition: b2_prismatic_joint.h:57
float referenceAngle
The constrained angle between the bodies: bodyB_angle - bodyA_angle.
Definition: b2_prismatic_joint.h:66
void Initialize(b2Body *bodyA, b2Body *bodyB, const b2Vec2 &anchor, const b2Vec2 &axis)
b2Vec2 localAxisA
The local translation unit axis in bodyA.
Definition: b2_prismatic_joint.h:63
float maxMotorForce
The maximum motor torque, usually in N-m.
Definition: b2_prismatic_joint.h:81
Solver Data.
Definition: b2_time_step.h:68
A 2D column vector.
Definition: b2_math.h:42