Class 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 Detail

      • 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_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
    • Method Detail

      • 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
      • 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
        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()
      • 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: