Class SixDofConstraint

All Implemented Interfaces:
ConstConstraint, ConstJoltPhysicsObject, ConstTwoBodyConstraint, RefTarget, AutoCloseable, Comparable<JoltPhysicsObject>

public class SixDofConstraint extends TwoBodyConstraint
A TwoBodyConstraint that can constrain all 6 degrees of freedom. (native type: SixDOFConstraint)
  • Method Details

    • getLimitsMax

      public float getLimitsMax(EAxis dof)
      Return the upper limit of the specified degree of freedom. The constraint is unaffected.
      Parameters:
      dof - which DOF to query (not null)
      Returns:
      the limit value
    • getLimitsMin

      public float getLimitsMin(EAxis dof)
      Return the lower limit of the specified degree of freedom. The constraint is unaffected.
      Parameters:
      dof - which DOF to query (not null)
      Returns:
      the limit value
    • getLimitsSpringSettings

      public ConstSpringSettings getLimitsSpringSettings(EAxis dof)
      Access the spring settings of the specified degree of freedom. The constraint is unaffected.
      Parameters:
      dof - which degree of freedom to query (not null)
      Returns:
      a new JVM object with the pre-existing native object assigned
    • getMaxFriction

      public float getMaxFriction(EAxis dof)
      Return the maximum friction of the specified degree of freedom. The constraint is unaffected.
      Parameters:
      dof - which DPF to alter (not null)
      Returns:
      the friction value
    • getMotorSettings

      public MotorSettings getMotorSettings(EAxis dof)
      Access the motor settings of the specified degree of freedom.
      Parameters:
      dof - which degree of freedom to query (not null)
      Returns:
      a new JVM object with the pre-existing native object assigned
    • getMotorState

      public EMotorState getMotorState(EAxis dof)
      Return the motor state of the specified degree of freedom. The constraint is unaffected.
      Parameters:
      dof - which DOF to alter (not null)
      Returns:
      an enum value (not null)
    • getRotationInConstraintSpace

      public Quat getRotationInConstraintSpace()
      Copy the rotation of the constraint. The constraint is unaffected.
      Returns:
      a new rotation quaternion
    • getRotationInConstraintSpace

      public void getRotationInConstraintSpace(Quat storeResult)
      Copy the rotation of the constraint. The constraint is unaffected.
      Parameters:
      storeResult - storage for the rotation (not null, modified)
    • getRotationLimitsMax

      public Vec3 getRotationLimitsMax()
      Copy the rotation upper limits. The constraint is unaffected.
      Returns:
      the upper limit for each axis (not null)
    • getRotationLimitsMax

      public void getRotationLimitsMax(Vec3 storeResult)
      Copy the rotation upper limits. The constraint is unaffected.
      Parameters:
      storeResult - storage for the limits (not null, modified)
    • getRotationLimitsMin

      public Vec3 getRotationLimitsMin()
      Copy the rotation lower limits. The constraint is unaffected.
      Returns:
      the lower limit for each axis (not null)
    • getRotationLimitsMin

      public void getRotationLimitsMin(Vec3 storeResult)
      Copy the rotation lower limits. The constraint is unaffected.
      Parameters:
      storeResult - storage for the limits (not null, modified)
    • getTargetAngularVelocityCs

      public Vec3 getTargetAngularVelocityCs()
      Copy the target velocities of the angular motors. The constraint is unaffected. (native function: GetTargetAngularVelocityCS)
      Returns:
      a new angular velocity vector (radians per second in body 2 constraint space)
    • getTargetAngularVelocityCs

      public void getTargetAngularVelocityCs(Vec3 storeResult)
      Copy the target velocities of the angular motors. The constraint is unaffected. (native function: GetTargetAngularVelocityCS)
      Parameters:
      storeResult - storage for the velocity (radians per second in body 2 constraint space, not null, modified)
    • getTargetPositionCs

      public Vec3 getTargetPositionCs()
      Copy the target position of the linear motors. The constraint is unaffected. (native function: GetTargetPositionCS)
      Returns:
      a new offset vector (meters in body 1 constraint space)
    • getTargetPositionCs

      public void getTargetPositionCs(Vec3 storeResult)
      Copy the target position of the linear motors. The constraint is unaffected. (native function: GetTargetPositionCS)
      Parameters:
      storeResult - storage for the offset (meters in body 1 constraint space, not null, modified)
    • getTargetOrientationCs

      public Quat getTargetOrientationCs()
      Copy the target orientation of the angular motors. The constraint is unaffected. (native function: GetTargetOrientationCS)
      Returns:
      the target orientation (in constraint space)
    • getTargetOrientationCs

      public void getTargetOrientationCs(Quat storeResult)
      Copy the target orientation of the angular motors. The constraint is unaffected. (native function: GetTargetOrientationCS)
      Parameters:
      storeResult - storage for the orientation (in body 1 constraint space, not null, modified)
    • getTargetVelocityCs

      public Vec3 getTargetVelocityCs()
      Copy the target velocities of the linear motors. The constraint is unaffected. (native function: GetTargetVelocityCS)
      Returns:
      a new linear velocity vector (meters per second in body 1 constraint space)
    • getTargetVelocityCs

      public void getTargetVelocityCs(Vec3 storeResult)
      Copy the target velocities of the linear motors. The constraint is unaffected. (native function: GetTargetVelocityCS)
      Parameters:
      storeResult - storage for the velocity (meters per second in body 1 constraint space, not null, modified)
    • getTranslationLimitsMax

      public Vec3 getTranslationLimitsMax()
      Copy the translation upper limits. The constraint is unaffected.
      Returns:
      the upper limit for each axis (not null)
    • getTranslationLimitsMax

      public void getTranslationLimitsMax(Vec3 storeResult)
      Copy the translation upper limits. The constraint is unaffected.
      Parameters:
      storeResult - storage for the limits (not null, modified)
    • getTranslationLimitsMin

      public Vec3 getTranslationLimitsMin()
      Copy the translation lower limits. The constraint is unaffected.
      Returns:
      the lower limit for each axis (not null)
    • getTranslationLimitsMin

      public void getTranslationLimitsMin(Vec3 storeResult)
      Copy the translation lower limits. The constraint is unaffected.
      Parameters:
      storeResult - storage for the limits (not null, modified)
    • isFixedAxis

      public boolean isFixedAxis(EAxis dof)
      Test whether the specified degree of freedom is fixed. The constraint is unaffected.
      Parameters:
      dof - which DOF to query (not null)
      Returns:
      true if fixed, otherwise false
    • isFreeAxis

      public boolean isFreeAxis(EAxis dof)
      Test whether the specified degree of freedom is free. The constraint is unaffected.
      Parameters:
      dof - which DOF to query (not null)
      Returns:
      true if free, otherwise false
    • setLimitsSpringSettings

      public void setLimitsSpringSettings(EAxis dof, ConstSpringSettings springSettings)
      Alter the spring settings of the specified degree of freedom.
      Parameters:
      dof - which DOF to alter (not null)
      springSettings - the desired settings (not null, unaffected)
    • setMaxFriction

      public void setMaxFriction(EAxis dof, float friction)
      Alter the maximum friction of the specified degree of freedom.
      Parameters:
      dof - which DOF to alter (not null)
      friction - the desired value
    • setMotorState

      public void setMotorState(EAxis dof, EMotorState state)
      Alter the motor state of the specified degree of freedom.
      Parameters:
      dof - which DOF to alter (not null)
      state - the desired state (not null)
    • setRotationLimits

      public void setRotationLimits(float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
      Alter the rotation limits.
      Parameters:
      minX - the lower limit on the X axis
      minY - the lower limit on the Y axis
      minZ - the lower limit on the Z axis
      maxX - the upper limit on the X axis
      maxY - the upper limit on the Y axis
      maxZ - the upper limit on the Z axis
    • setRotationLimits

      public void setRotationLimits(Vec3Arg min, Vec3Arg max)
      Alter the rotation limits.
      Parameters:
      min - the lower limit for each axis (not null, unaffected)
      max - the upper limit for each axis (not null, unaffected)
    • setTargetVelocityCs

      public void setTargetVelocityCs(float vx, float vy, float vz)
      Alter the target velocities of the linear motors. (native function: SetTargetVelocityCS)
      Parameters:
      vx - the desired X component of the velocity (meters per second in body 1 constraint space)
      vy - the desired Y component of the velocity (meters per second in body 1 constraint space)
      vz - the desired Z component of the velocity (meters per second in body 1 constraint space)
    • setTargetVelocityCs

      public void setTargetVelocityCs(Vec3Arg velocity)
      Alter the target velocities of the linear motors. (native function: SetTargetVelocityCS)
      Parameters:
      velocity - the desired linear velocity (meters per second in body 1 constraint space, not null)
    • setTargetAngularVelocityCs

      public void setTargetAngularVelocityCs(float wx, float wy, float wz)
      Alter the target velocities of the angular motors. (native function: SetTargetAngularVelocityCS)
      Parameters:
      wx - the desired X component of the angular velocity (radians per second in body 2 constraint space)
      wy - the desired Y component of the angular velocity (radians per second in body 2 constraint space)
      wz - the desired Z component of the angular velocity (radians per second in body 2 constraint space)
    • setTargetAngularVelocityCs

      public void setTargetAngularVelocityCs(Vec3Arg omega)
      Alter the target velocities of the angular motors. (native function: SetTargetAngularVelocityCS)
      Parameters:
      omega - the desired angular velocity (radians per second in body 2 constraint space, not null)
    • setTargetPositionCs

      public void setTargetPositionCs(float x, float y, float z)
      Alter the target position of the linear motors. (native function: SetTargetPositionCS)
      Parameters:
      x - the desired X offset (meters in body 1 constraint space)
      y - the desired Y offset (meters in body 1 constraint space)
      z - the desired Z offset (meters in body 1 constraint space)
    • setTargetPositionCs

      public void setTargetPositionCs(Vec3Arg offsets)
      Alter the target position of the linear motors. (native function: SetTargetPositionCS)
      Parameters:
      offsets - the desired offsets (meters in body 1 constraint space)
    • setTargetOrientationBs

      public void setTargetOrientationBs(float qx, float qy, float qz, float qw)
      Alter the target orientation of the angular motors in body space. (native function: SetTargetOrientationBS)
      Parameters:
      qx - the X component of the desired orientation
      qy - the Y component of the desired orientation
      qz - the Z component of the desired orientation
      qw - the W component of the desired orientation
    • setTargetOrientationBs

      public void setTargetOrientationBs(QuatArg orientation)
      Alter the target orientation of the angular motors in body space. (native function: SetTargetOrientationBS)
      Parameters:
      orientation - the desired targetVa orientation (not null, unaffected)
    • setTargetOrientationCs

      public void setTargetOrientationCs(float qx, float qy, float qz, float qw)
      Alter the target orientation of the angular motors. (native function: SetTargetOrientationCS)
      Parameters:
      qx - the X component of the desired orientation
      qy - the Y component of the desired orientation
      qz - the Z component of the desired orientation
      qw - the W component of the desired orientation
    • setTargetOrientationCs

      public void setTargetOrientationCs(QuatArg orientation)
      Alter the target orientation of the angular motors. (native function: SetTargetOrientationCS)
      Parameters:
      orientation - the desired orientation (in body 1 constraint space)
    • setTranslationLimits

      public void setTranslationLimits(float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
      Alter the translation limits.
      Parameters:
      minX - the lower limit on the X axis
      minY - the lower limit on the Y axis
      minZ - the lower limit on the Z axis
      maxX - the upper limit on the X axis
      maxY - the upper limit on the Y axis
      maxZ - the upper limit on the Z axis
    • setTranslationLimits

      public void setTranslationLimits(Vec3Arg min, Vec3Arg max)
      Alter the translation limits.
      Parameters:
      min - the lower limit for each axis (not null, unaffected)
      max - the upper limit for each axis (not null, unaffected)