# Class PrismaticJoint

java.lang.Object
com.codename1.gaming.physics.box2d.dynamics.joints.Joint
com.codename1.gaming.physics.box2d.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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final Vec2`
  `m_localAnchorA`
  `protected final Vec2`
  `m_localAnchorB`
  `protected final Vec2`
  `m_localXAxisA`
  `protected final Vec2`
  `m_localYAxisA`
  `protected float`
  `m_referenceAngle`

  ### Fields inherited from class Joint

  `m_bodyA, m_bodyB, m_edgeA, m_edgeB, m_islandFlag, m_next, m_prev, m_userData, pool`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `PrismaticJoint(IWorldPool argWorld, PrismaticJointDef def)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `enableLimit(boolean flag)`
  Enable/disable the joint limit.
  `void`
  `enableMotor(boolean flag)`
  Enable/disable the joint motor.
  `void`
  `getAnchorA(Vec2 argOut)`
  get the anchor point on bodyA in world coordinates.
  `void`
  `getAnchorB(Vec2 argOut)`
  get the anchor point on bodyB in world coordinates.
  `float`
  `getJointSpeed()`
  Get the current joint translation, usually in meters.
  `float`
  `getJointTranslation()`
  `Vec2`
  `getLocalAnchorA()`
  `Vec2`
  `getLocalAnchorB()`
  `Vec2`
  `getLocalAxisA()`
  `float`
  `getLowerLimit()`
  Get the lower joint limit, usually in meters.
  `float`
  `getMaxMotorForce()`
  `float`
  `getMotorForce(float inv_dt)`
  Get the current motor force, usually in N.
  `float`
  `getMotorSpeed()`
  Get the motor speed, usually in meters per second.
  `void`
  `getReactionForce(float inv_dt, Vec2 argOut)`
  get the reaction force on body2 at the joint anchor in Newtons.
  `float`
  `getReactionTorque(float inv_dt)`
  get the reaction torque on body2 in N*m.
  `float`
  `getReferenceAngle()`
  `float`
  `getUpperLimit()`
  Get the upper joint limit, usually in meters.
  `void`
  `initVelocityConstraints(SolverData data)`
  `boolean`
  `isLimitEnabled()`
  Is the joint limit enabled?
  `boolean`
  `isMotorEnabled()`
  Is the joint motor enabled?
  `void`
  `setLimits(float lower, float upper)`
  Set the joint limits, usually in meters.
  `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.
  `boolean`
  `solvePositionConstraints(SolverData data)`
  This returns true if the position errors are within tolerance.
  `void`
  `solveVelocityConstraints(SolverData data)`

  ### Methods inherited from class Joint

  `create, destroy, destructor, getBodyA, getBodyB, getCollideConnected, getNext, getType, getUserData, isActive, setUserData`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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

- ## Constructor Details

  - ### PrismaticJoint

    protected PrismaticJoint(IWorldPool argWorld, PrismaticJointDef def)

- ## 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: