19 #ifndef B2_PRISMATIC_JOINT_H
20 #define B2_PRISMATIC_JOINT_H
22 #include <Box2D/Dynamics/Joints/b2Joint.h>
34 type = e_prismaticJoint;
126 void SetLimits(float32 lower, float32 upper);
142 float32 GetMaxMotorForce()
const {
return m_maxMotorForce; }
156 void SolveVelocityConstraints(
const b2SolverData& data);
157 bool SolvePositionConstraints(
const b2SolverData& data);
164 float32 m_referenceAngle;
166 float32 m_motorImpulse;
167 float32 m_lowerTranslation;
168 float32 m_upperTranslation;
169 float32 m_maxMotorForce;
170 float32 m_motorSpeed;
173 b2LimitState m_limitState;
b2Vec2 GetReactionForce(float32 inv_dt) const
Get the reaction force on bodyB at the joint anchor in Newtons.
Definition: b2PrismaticJoint.cpp:494
const b2Vec2 & GetLocalAnchorB() const
The local anchor point relative to bodyB's origin.
Definition: b2PrismaticJoint.h:99
const b2Vec2 & GetLocalAnchorA() const
The local anchor point relative to bodyA's origin.
Definition: b2PrismaticJoint.h:96
void EnableMotor(bool flag)
Enable/disable the joint motor.
Definition: b2PrismaticJoint.cpp:580
A 2D column vector with 3 elements.
Definition: b2Math.h:144
bool enableMotor
Enable/disable the joint motor.
Definition: b2PrismaticJoint.h:73
float32 GetJointSpeed() const
Get the current joint translation speed, usually in meters per second.
Definition: b2PrismaticJoint.cpp:515
bool enableLimit
Enable/disable the joint limit.
Definition: b2PrismaticJoint.h:64
b2Body * bodyA
The first attached body.
Definition: b2Joint.h:92
b2Vec2 GetAnchorA() const
Get the anchor point on bodyA in world coordinates.
Definition: b2PrismaticJoint.cpp:484
A 3-by-3 matrix. Stored in column-major order.
Definition: b2Math.h:257
float32 lowerTranslation
The lower translation limit, usually in meters.
Definition: b2PrismaticJoint.h:67
float32 upperTranslation
The upper translation limit, usually in meters.
Definition: b2PrismaticJoint.h:70
float32 GetJointTranslation() const
Get the current joint translation, usually in meters.
Definition: b2PrismaticJoint.cpp:504
Definition: b2PrismaticJoint.h:30
b2Body * bodyB
The second attached body.
Definition: b2Joint.h:95
void SetMotorSpeed(float32 speed)
Set the motor speed, usually in meters per second.
Definition: b2PrismaticJoint.cpp:587
b2Vec2 GetAnchorB() const
Get the anchor point on bodyB in world coordinates.
Definition: b2PrismaticJoint.cpp:489
void SetLimits(float32 lower, float32 upper)
Set the joint limits, usually in meters.
Definition: b2PrismaticJoint.cpp:562
Definition: b2Joint.h:103
b2Vec2 localAxisA
The local translation unit axis in bodyA.
Definition: b2PrismaticJoint.h:58
Definition: b2PrismaticJoint.h:86
const b2Vec2 & GetLocalAxisA() const
The local joint axis relative to bodyA.
Definition: b2PrismaticJoint.h:102
float32 GetReactionTorque(float32 inv_dt) const
Get the reaction torque on bodyB in N*m.
Definition: b2PrismaticJoint.cpp:499
void Set(float32 x_, float32 y_)
Set this vector to some specified coordinates.
Definition: b2Math.h:65
float32 motorSpeed
The desired motor speed in radians per second.
Definition: b2PrismaticJoint.h:79
void SetZero()
Set this vector to all zeros.
Definition: b2Math.h:62
float32 maxMotorForce
The maximum motor torque, usually in N-m.
Definition: b2PrismaticJoint.h:76
bool IsLimitEnabled() const
Is the joint limit enabled?
Definition: b2PrismaticJoint.cpp:536
Definition: b2GearJoint.h:56
b2JointType type
The joint type is set automatically for concrete joint types.
Definition: b2Joint.h:86
Solver Data.
Definition: b2TimeStep.h:63
float32 GetLowerLimit() const
Get the lower joint limit, usually in meters.
Definition: b2PrismaticJoint.cpp:552
b2Vec2 localAnchorA
The local anchor point relative to bodyA's origin.
Definition: b2PrismaticJoint.h:52
b2Vec2 localAnchorB
The local anchor point relative to bodyB's origin.
Definition: b2PrismaticJoint.h:55
Joint definitions are used to construct joints.
Definition: b2Joint.h:74
A rigid body. These are created via b2World::CreateBody.
Definition: b2Body.h:126
float32 referenceAngle
The constrained angle between the bodies: bodyB_angle - bodyA_angle.
Definition: b2PrismaticJoint.h:61
float32 GetReferenceAngle() const
Get the reference angle.
Definition: b2PrismaticJoint.h:105
void Dump()
Dump to b2Log.
Definition: b2PrismaticJoint.cpp:606
void EnableLimit(bool flag)
Enable/disable the joint limit.
Definition: b2PrismaticJoint.cpp:541
A 2D column vector.
Definition: b2Math.h:53
void Initialize(b2Body *bodyA, b2Body *bodyB, const b2Vec2 &anchor, const b2Vec2 &axis)
Definition: b2PrismaticJoint.cpp:90
bool IsMotorEnabled() const
Is the joint motor enabled?
Definition: b2PrismaticJoint.cpp:575
float32 GetMotorForce(float32 inv_dt) const
Get the current motor force given the inverse time step, usually in N.
Definition: b2PrismaticJoint.cpp:601
float32 GetUpperLimit() const
Get the upper joint limit, usually in meters.
Definition: b2PrismaticJoint.cpp:557
float32 GetMotorSpeed() const
Get the motor speed, usually in meters per second.
Definition: b2PrismaticJoint.h:191
void SetMaxMotorForce(float32 force)
Set the maximum motor force, usually in N.
Definition: b2PrismaticJoint.cpp:594