Class VehicleConstraint

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

public class VehicleConstraint extends Constraint
A special Constraint used in vehicle simulation.
  • Constructor Details

    • VehicleConstraint

      public VehicleConstraint(Body body, VehicleConstraintSettings settings)
      Instantiate a constraint for the specified body and settings.
      Parameters:
      body - the body to which the constraint will apply (not null)
      settings - the desired settings (not null, unaffected)
  • Method Details

    • countWheels

      public int countWheels()
      Count how many wheels the vehicle has. The constraint is unaffected.
      Returns:
      the count (≥0)
    • getController

      public VehicleController getController()
      Access the controller for this constraint.
      Returns:
      a new JVM object with the pre-existing native object assigned
    • getStepListener

      public VehicleStepListener getStepListener()
      Access the vehicle's PhysicsStepListener. Since Java doesn't allow multiple inheritance, the listener is managed like a contained object.
      Returns:
      a new JVM object with the pre-existing native object assigned
    • getVehicleBody

      public Body getVehicleBody()
      Access the vehicle body.
      Returns:
      a new JVM object with the pre-existing native object assigned
    • getVehicleCollisionTester

      public VehicleCollisionTester getVehicleCollisionTester()
      Access the underlying tester, if any.
      Returns:
      the pre-existing instance or null if none
    • getWheel

      public Wheel getWheel(int wheelIndex)
      Access the specified wheel.
      Parameters:
      wheelIndex - the index of the wheel to access (≥0)
      Returns:
      a new JVM object with the pre-existing native object assigned
    • getWheelWorldTransform

      public RMat44 getWheelWorldTransform(int wheelIndex, Vec3Arg right, Vec3Arg up)
      Copy the world transform of the specified wheel. The constraint is unaffected.
      Parameters:
      wheelIndex - the index of the wheel to query (≥0)
      right - the wheel's axis of rotation (a unit vector in the wheel's model space)
      up - the "up" direction (a unit vector in the wheel's model space)
      Returns:
      a new coordinate transform matrix
    • getWorldUp

      public Vec3 getWorldUp()
      Copy the "up" direction based on gravity. The constraint is unaffected.
      Returns:
      a new direction vector (in system coordinates)
    • overrideGravity

      public void overrideGravity(Vec3Arg acceleration)
      Override the vehicle's gravity vector.
      Parameters:
      acceleration - the desired acceleration vector (not null, unaffected)
    • resetGravityOverride

      public void resetGravityOverride()
      Remove the gravity override, if any.
    • setNumStepsBetweenCollisionTestActive

      public void setNumStepsBetweenCollisionTestActive(int numSteps)
      Alter the number of simulation steps between wheel-collision tests when the vehicle is active.
      Parameters:
      numSteps - the desired number of steps (0=never test, 1=test every step, 2=test every other step, default=1)
    • setNumStepsBetweenCollisionTestInactive

      public void setNumStepsBetweenCollisionTestInactive(int numSteps)
      Alter the number of simulation steps between wheel-collision tests when the vehicle is inactive.
      Parameters:
      numSteps - the desired number of steps (0=never, 1=every step, 2=every other step, default=1)
    • setVehicleCollisionTester

      public void setVehicleCollisionTester(VehicleCollisionTester tester)
      Replace the collision tester.
      Parameters:
      tester - the desired tester (not null, alias created)
    • toRef

      public VehicleConstraintRef toRef()
      Create a counted reference to the native VehicleConstraint.
      Specified by:
      toRef in interface RefTarget
      Overrides:
      toRef in class Constraint
      Returns:
      a new JVM object with a new native object assigned