Class ContactSettings

java.lang.Object
com.github.stephengold.joltjni.JoltPhysicsObject
com.github.stephengold.joltjni.ContactSettings
All Implemented Interfaces:
ConstContactSettings, ConstJoltPhysicsObject, AutoCloseable, Comparable<JoltPhysicsObject>

public class ContactSettings extends JoltPhysicsObject implements ConstContactSettings
Properties of a contact constraint that can be overridden during certain ContactListener callbacks.
  • Constructor Details

    • ContactSettings

      public ContactSettings()
      Instantiate the default settings for testing.
    • ContactSettings

      public ContactSettings(long settingsVa)
      Instantiate settings with the specified native object assigned but not owned.
      Parameters:
      settingsVa - the virtual address of the native object to assign (not zero)
  • Method Details

    • setCombinedFriction

      public void setCombinedFriction(float friction)
      Alter the combined friction for the body pair. (native attribute: mCombinedFriction)
      Parameters:
      friction - the desired combined friction (default=0)
    • setCombinedRestitution

      public void setCombinedRestitution(float restitution)
      Alter the combined restitution for the body pair. (native attribute: mCombinedRestitution)
      Parameters:
      restitution - the desired combined restitution (default=0)
    • setInvInertiaScale1

      public void setInvInertiaScale1(float factor)
      Alter the scale factor for the inverse inertia of body 1. (native attribute: mInvInertiaScale1)
      Parameters:
      factor - the factor (0 = infinite inertia, 1 = use original inertia, default=1)
    • setInvInertiaScale2

      public void setInvInertiaScale2(float factor)
      Alter the scale factor for the inverse inertia of body 2. (native attribute: mInvInertiaScale2)
      Parameters:
      factor - the factor (0 = infinite inertia, 1 = use original inertia, default=1)
    • setInvMassScale1

      public void setInvMassScale1(float factor)
      Alter the scale factor for the inverse mass of body 1. (native attribute: mInvMassScale1)
      Parameters:
      factor - the factor (0 = infinite mass, 1 = use original mass, default=1)
    • setInvMassScale2

      public void setInvMassScale2(float factor)
      Alter the scale factor for the inverse mass of body 2. (native attribute: mInvMassScale2)
      Parameters:
      factor - the factor (0 = infinite mass, 1 = use original mass, default=1)
    • setIsSensor

      public void setIsSensor(boolean setting)
      Alter whether the contact should be treated as a sensor (no collision response). (native attribute: mIsSensor)
      Parameters:
      setting - true to treat as a sensor, otherwise false (default=false)
    • setRelativeAngularSurfaceVelocity

      public void setRelativeAngularSurfaceVelocity(Vec3Arg omega)
      Alter the relative angular velocity (body 2 minus body 1). (native attribute: mRelativeAngularSurfaceVelocity)
      Parameters:
      omega - the desired angular velocity (radians per second in system coordinates, default=(0,0,0))
    • setRelativeLinearSurfaceVelocity

      public void setRelativeLinearSurfaceVelocity(Vec3Arg velocity)
      Alter the relative linear velocity (body 2 minus body 1). (native attribute: mRelativeLinearSurfaceVelocity)
      Parameters:
      velocity - the desired velocity (meters per second in system coordinates, default=(0,0,0))
    • getCombinedFriction

      public float getCombinedFriction()
      Return the combined friction for the body pair. The settings are unaffected. (native attribute: mCombinedFriction)
      Specified by:
      getCombinedFriction in interface ConstContactSettings
      Returns:
      the combined friction
    • getCombinedRestitution

      public float getCombinedRestitution()
      Return the combined restitution for the body pair. The settings are unaffected. (native attribute: mCombinedRestitution)
      Specified by:
      getCombinedRestitution in interface ConstContactSettings
      Returns:
      the combined restitution
    • getInvInertiaScale1

      public float getInvInertiaScale1()
      Return the scale factor for the inverse inertia of body 1. The settings are unaffected. (native attribute: mInvInertiaScale1)
      Specified by:
      getInvInertiaScale1 in interface ConstContactSettings
      Returns:
      the factor (0 = infinite inertia, 1 = use original inertia)
    • getInvInertiaScale2

      public float getInvInertiaScale2()
      Return the scale factor for the inverse inertia of body 2. The settings are unaffected. (native attribute: mInvInertiaScale2)
      Specified by:
      getInvInertiaScale2 in interface ConstContactSettings
      Returns:
      the factor (0 = infinite inertia, 1 = use original inertia)
    • getInvMassScale1

      public float getInvMassScale1()
      Return the scale factor for the inverse mass of body 1. The settings are unaffected. (native attribute: mInvMassScale1)
      Specified by:
      getInvMassScale1 in interface ConstContactSettings
      Returns:
      the factor (0 = infinite mass, 1 = use original mass)
    • getInvMassScale2

      public float getInvMassScale2()
      Return the scale factor for the inverse mass of body 2. The settings are unaffected. (native attribute: mInvMassScale2)
      Specified by:
      getInvMassScale2 in interface ConstContactSettings
      Returns:
      the factor (0 = infinite mass, 1 = use original mass)
    • getIsSensor

      public boolean getIsSensor()
      Test whether the contact should be treated as a sensor (no collision response). The settings are unaffected. (native attribute: mIsSensor)
      Specified by:
      getIsSensor in interface ConstContactSettings
      Returns:
      true if treated as a sensor, otherwise false
    • getRelativeAngularSurfaceVelocity

      public Vec3 getRelativeAngularSurfaceVelocity()
      Copy the relative angular velocity (body 2 minus body 1). The settings are unaffected. (native attribute: mRelativeAngularSurfaceVelocity)
      Specified by:
      getRelativeAngularSurfaceVelocity in interface ConstContactSettings
      Returns:
      a new velocity vector (radians per second in system coordinates)
    • getRelativeLinearSurfaceVelocity

      public Vec3 getRelativeLinearSurfaceVelocity()
      Copy the relative linear velocity (body 2 minus body 1). The settings are unaffected. (native attribute: mRelativeLinearSurfaceVelocity)
      Specified by:
      getRelativeLinearSurfaceVelocity in interface ConstContactSettings
      Returns:
      a new velocity vector (meters per second in system coordinates)