Module org.dyn4j

Class WeldJoint<T extends PhysicsBody>

  • Type Parameters:
    T - the PhysicsBody type
    All Implemented Interfaces:
    DataContainer, Shiftable, Ownable

    public class WeldJoint<T extends PhysicsBody>
    extends Joint<T>
    implements Shiftable, DataContainer
    Implementation of a weld joint.

    A weld joint joins two bodies together as if they were a single body with two fixtures. Both their relative linear and angular motion are constrained to keep them attached to each other. The system as a whole can rotate and translate freely.

    Using a frequency greater than zero allows the joint to function as a torsion spring about the anchor point. A good starting point is a frequency of 8.0 and damping ratio of 0.3 then adjust as necessary.

    Since:
    1.0.0
    Version:
    4.0.0
    Author:
    William Bittle
    See Also:
    Documentation, Weld Constraint
    • Method Detail

      • initializeConstraints

        public void initializeConstraints​(TimeStep step,
                                          Settings settings)
        Description copied from class: Joint
        Performs any initialization of the velocity and position constraints.
        Specified by:
        initializeConstraints in class Joint<T extends PhysicsBody>
        Parameters:
        step - the time step information
        settings - the current world settings
      • solveVelocityConstraints

        public void solveVelocityConstraints​(TimeStep step,
                                             Settings settings)
        Description copied from class: Joint
        Solves the velocity constraints.
        Specified by:
        solveVelocityConstraints in class Joint<T extends PhysicsBody>
        Parameters:
        step - the time step information
        settings - the current world settings
      • solvePositionConstraints

        public boolean solvePositionConstraints​(TimeStep step,
                                                Settings settings)
        Description copied from class: Joint
        Solves the position constraints.
        Specified by:
        solvePositionConstraints in class Joint<T extends PhysicsBody>
        Parameters:
        step - the time step information
        settings - the current world settings
        Returns:
        boolean true if the position constraints were solved
      • getReactionForce

        public Vector2 getReactionForce​(double invdt)
        Description copied from class: Joint
        Returns the force applied to the PhysicsBodys in order to satisfy the constraint in newtons.
        Specified by:
        getReactionForce in class Joint<T extends PhysicsBody>
        Parameters:
        invdt - the inverse delta time
        Returns:
        Vector2
      • getReactionTorque

        public double getReactionTorque​(double invdt)
        Description copied from class: Joint
        Returns the torque applied to the PhysicsBodys in order to satisfy the constraint in newton-meters.
        Specified by:
        getReactionTorque in class Joint<T extends PhysicsBody>
        Parameters:
        invdt - the inverse delta time
        Returns:
        double
      • shift

        public void shift​(Vector2 shift)
        Description copied from interface: Shiftable
        Translates the object to match the given coordinate shift.
        Specified by:
        shift in interface Shiftable
        Parameters:
        shift - the amount to shift along the x and y axes
      • isSpring

        @Deprecated
        public boolean isSpring()
        Deprecated.
        Deprecated in 4.0.0. Use the isSpringEnabled() method instead.
        Returns true if this distance joint is a spring distance joint.
        Returns:
        boolean
        Since:
        3.0.1
      • isSpringDamper

        @Deprecated
        public boolean isSpringDamper()
        Deprecated.
        Deprecated in 4.0.0. Use the isSpringDamperEnabled() method instead.
        Returns true if this distance joint is a spring distance joint with damping.
        Returns:
        boolean
        Since:
        3.0.1
      • isSpringEnabled

        public boolean isSpringEnabled()
        Returns true if this distance joint is a spring distance joint.
        Returns:
        boolean
        Since:
        4.0.0
      • isSpringDamperEnabled

        public boolean isSpringDamperEnabled()
        Returns true if this distance joint is a spring distance joint with damping.
        Returns:
        boolean
        Since:
        4.0.0
      • getDampingRatio

        public double getDampingRatio()
        Returns the damping ratio.
        Returns:
        double
        Since:
        3.0.1
      • setDampingRatio

        public void setDampingRatio​(double dampingRatio)
        Sets the damping ratio.

        Larger values reduce the oscillation of the spring.

        Parameters:
        dampingRatio - the damping ratio; in the range [0, 1]
        Throws:
        IllegalArgumentException - if damping ration is less than zero or greater than 1
        Since:
        3.0.1
      • getFrequency

        public double getFrequency()
        Returns the spring frequency.
        Returns:
        double
        Since:
        3.0.1
      • setFrequency

        public void setFrequency​(double frequency)
        Sets the spring frequency.

        Larger values increase the stiffness of the spring.

        Parameters:
        frequency - the spring frequency in hz; must be greater than or equal to zero
        Throws:
        IllegalArgumentException - if frequency is less than zero
        Since:
        3.0.1
      • getReferenceAngle

        public double getReferenceAngle()
        Returns the reference angle.

        The reference angle is the angle calculated when the joint was created from the two joined bodies. The reference angle is the angular difference between the bodies.

        Returns:
        double
        Since:
        3.0.1
      • setReferenceAngle

        public void setReferenceAngle​(double angle)
        Sets the reference angle.

        This method can be used to set the reference angle to override the computed reference angle from the constructor. This is useful in recreating the joint from a current state.

        Parameters:
        angle - the reference angle in radians
        Since:
        3.0.1
        See Also:
        getReferenceAngle()