Class PrismaticJoint

java.lang.Object
org.jbox2d.dynamics.joints.Joint
org.jbox2d.dynamics.joints.PrismaticJoint

public class PrismaticJoint extends Joint
A prismatic joint. This joint provides one degree of freedom: translation along an axis fixed in bodyA. Relative rotation is prevented. You can use a joint limit to restrict the range of motion and a joint motor to drive the motion or to model joint friction.
  • Field Details

    • m_localAnchorA

      protected final Vec2 m_localAnchorA
    • m_localAnchorB

      protected final Vec2 m_localAnchorB
    • m_localXAxisA

      protected final Vec2 m_localXAxisA
    • m_localYAxisA

      protected final Vec2 m_localYAxisA
    • m_referenceAngle

      protected float m_referenceAngle
    • m_impulse

      private final Vec3 m_impulse
    • m_motorImpulse

      private float m_motorImpulse
    • m_lowerTranslation

      private float m_lowerTranslation
    • m_upperTranslation

      private float m_upperTranslation
    • m_maxMotorForce

      private float m_maxMotorForce
    • m_motorSpeed

      private float m_motorSpeed
    • m_enableLimit

      private boolean m_enableLimit
    • m_enableMotor

      private boolean m_enableMotor
    • m_limitState

      private LimitState m_limitState
    • m_indexA

      private int m_indexA
    • m_indexB

      private int m_indexB
    • m_localCenterA

      private final Vec2 m_localCenterA
    • m_localCenterB

      private final Vec2 m_localCenterB
    • m_invMassA

      private float m_invMassA
    • m_invMassB

      private float m_invMassB
    • m_invIA

      private float m_invIA
    • m_invIB

      private float m_invIB
    • m_axis

      private final Vec2 m_axis
    • m_perp

      private final Vec2 m_perp
    • m_s1

      private float m_s1
    • m_s2

      private float m_s2
    • m_a1

      private float m_a1
    • m_a2

      private float m_a2
    • m_K

      private final Mat33 m_K
    • m_motorMass

      private float m_motorMass
  • Constructor Details

  • Method Details

    • getLocalAnchorA

      public Vec2 getLocalAnchorA()
    • getLocalAnchorB

      public Vec2 getLocalAnchorB()
    • getAnchorA

      public void getAnchorA(Vec2 argOut)
      Description copied from class: Joint
      get the anchor point on bodyA in world coordinates.
      Specified by:
      getAnchorA in class Joint
    • getAnchorB

      public void getAnchorB(Vec2 argOut)
      Description copied from class: Joint
      get the anchor point on bodyB in world coordinates.
      Specified by:
      getAnchorB in class Joint
    • getReactionForce

      public void getReactionForce(float inv_dt, Vec2 argOut)
      Description copied from class: Joint
      get the reaction force on body2 at the joint anchor in Newtons.
      Specified by:
      getReactionForce in class Joint
      Parameters:
      inv_dt -
    • getReactionTorque

      public float getReactionTorque(float inv_dt)
      Description copied from class: Joint
      get the reaction torque on body2 in N*m.
      Specified by:
      getReactionTorque in class Joint
      Parameters:
      inv_dt -
      Returns:
    • getJointSpeed

      public float getJointSpeed()
      Get the current joint translation, usually in meters.
    • getJointTranslation

      public float getJointTranslation()
    • isLimitEnabled

      public boolean isLimitEnabled()
      Is the joint limit enabled?
      Returns:
    • enableLimit

      public void enableLimit(boolean flag)
      Enable/disable the joint limit.
      Parameters:
      flag -
    • getLowerLimit

      public float getLowerLimit()
      Get the lower joint limit, usually in meters.
      Returns:
    • getUpperLimit

      public float getUpperLimit()
      Get the upper joint limit, usually in meters.
      Returns:
    • setLimits

      public void setLimits(float lower, float upper)
      Set the joint limits, usually in meters.
      Parameters:
      lower -
      upper -
    • isMotorEnabled

      public boolean isMotorEnabled()
      Is the joint motor enabled?
      Returns:
    • enableMotor

      public void enableMotor(boolean flag)
      Enable/disable the joint motor.
      Parameters:
      flag -
    • setMotorSpeed

      public void setMotorSpeed(float speed)
      Set the motor speed, usually in meters per second.
      Parameters:
      speed -
    • getMotorSpeed

      public float getMotorSpeed()
      Get the motor speed, usually in meters per second.
      Returns:
    • setMaxMotorForce

      public void setMaxMotorForce(float force)
      Set the maximum motor force, usually in N.
      Parameters:
      force -
    • getMotorForce

      public float getMotorForce(float inv_dt)
      Get the current motor force, usually in N.
      Parameters:
      inv_dt -
      Returns:
    • getMaxMotorForce

      public float getMaxMotorForce()
    • getReferenceAngle

      public float getReferenceAngle()
    • getLocalAxisA

      public Vec2 getLocalAxisA()
    • initVelocityConstraints

      public void initVelocityConstraints(SolverData data)
      Specified by:
      initVelocityConstraints in class Joint
    • solveVelocityConstraints

      public void solveVelocityConstraints(SolverData data)
      Specified by:
      solveVelocityConstraints in class Joint
    • solvePositionConstraints

      public boolean solvePositionConstraints(SolverData data)
      Description copied from class: Joint
      This returns true if the position errors are within tolerance.
      Specified by:
      solvePositionConstraints in class Joint
      Returns: