Package com.github.stephengold.joltjni
Interface CharacterContactListener
- All Superinterfaces:
Comparable<ConstJoltPhysicsObject>,ConstJoltPhysicsObject
- All Known Implementing Classes:
CustomCharacterContactListener
Receive callbacks when a virtual character collides with something.
-
Method Summary
Modifier and TypeMethodDescriptionvoidonAdjustBodyVelocity(long characterVa, long body2Va, float[] velocities) Callback invoked (by native code) to adjust the velocity of the specified body as seen by the specified character.voidonCharacterContactAdded(long characterVa, long otherCharacterVa, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, long settingsVa) Callback invoked (by native code) whenever 2 characters collide.voidonCharacterContactSolve(long characterVa, long otherCharacterVa, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, float contactVelocityX, float contactVelocityY, float contactVelocityZ, long materialVa, float characterVelocityX, float characterVelocityY, float characterVelocityZ, float[] newCharacterVelocity) Callback invoked (by native code) whenever a character-versus-character contact is being solved.booleanonCharacterContactValidate(long characterVa, long otherCharacterVa, long subShapeId2Va) Callback invoked (by native code) to test whether the specified characters can collide.voidonContactAdded(long characterVa, long bodyId2Va, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, long settingsVa) Callback invoked (by native code) whenever a character collides with a body.voidonContactSolve(long characterVa, long bodyId2Va, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, float contactVelocityX, float contactVelocityY, float contactVelocityZ, long materialVa, float characterVelocityX, float characterVelocityY, float characterVelocityZ, float[] newCharacterVelocity) Callback invoked (by native code) whenever a character-versus-body contact is being solved.booleanonContactValidate(long characterVa, long bodyId2Va, long subShapeId2Va) Callback invoked (by native code) to test whether the specified character can collide with the specified body.Methods inherited from interface java.lang.Comparable
compareToMethods inherited from interface com.github.stephengold.joltjni.readonly.ConstJoltPhysicsObject
close, hasAssignedNativeObject, ownsNativeObject, va
-
Method Details
-
onAdjustBodyVelocity
void onAdjustBodyVelocity(long characterVa, long body2Va, float[] velocities) Callback invoked (by native code) to adjust the velocity of the specified body as seen by the specified character.- Parameters:
characterVa- the virtual address of theConstCharacterVirtual(not zero)body2Va- the virtual address of theConstBody(not zero)velocities- the components of the linear and angular velocities (length≥6, may be modified)
-
onCharacterContactAdded
void onCharacterContactAdded(long characterVa, long otherCharacterVa, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, long settingsVa) Callback invoked (by native code) whenever 2 characters collide.- Parameters:
characterVa- the virtual address of theConstCharacterVirtualbeing solved (not zero)otherCharacterVa- the virtual address of the otherConstCharacterVirtual(not zero)subShapeId2Va- the virtual address of theConstSubShapeIdof the shape that is being hit (not zero)contactLocationX- the X component of the contact location (in system coordinates)contactLocationY- the Y component of the contact location (in system coordinates)contactLocationZ- the Z component of the contact location (in system coordinates)contactNormalX- the X component of the contact normal (in system coordinates)contactNormalY- the Y component of the contact normal (in system coordinates)contactNormalZ- the Z component of the contact normal (in system coordinates)settingsVa- the virtual address of theCharacterContactSettingsfor storing the desired behavior
-
onCharacterContactSolve
void onCharacterContactSolve(long characterVa, long otherCharacterVa, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, float contactVelocityX, float contactVelocityY, float contactVelocityZ, long materialVa, float characterVelocityX, float characterVelocityY, float characterVelocityZ, float[] newCharacterVelocity) Callback invoked (by native code) whenever a character-versus-character contact is being solved.- Parameters:
characterVa- the virtual address of theConstCharacterVirtualbeing solved (not zero)otherCharacterVa- the virtual address of the otherConstCharacterVirtual(not zero)subShapeId2Va- the virtual address of theConstSubShapeIdof the shape that is being hit (not zero)contactLocationX- the X component of the contact location (in system coordinates)contactLocationY- the Y component of the contact location (in system coordinates)contactLocationZ- the Z component of the contact location (in system coordinates)contactNormalX- the X component of the contact normal (in system coordinates)contactNormalY- the Y component of the contact normal (in system coordinates)contactNormalZ- the Z component of the contact normal (in system coordinates)contactVelocityX- the X component of the velocity of the contact point (meters per second in system coordinates)contactVelocityY- the Y component of the velocity of the contact point (meters per second in system coordinates)contactVelocityZ- the Z component of the velocity of the contact point (meters per second in system coordinates)materialVa- the virtual address of theConstPhysicsMaterialat the contact point (not zero)characterVelocityX- the X component of the character's prior velocity (in system coordinates)characterVelocityY- the Y component of the character's prior velocity (in system coordinates)characterVelocityZ- the Z component of the character's prior velocity (in system coordinates)newCharacterVelocity- storage for the new velocity vector (in system coordinates, length≥3)
-
onCharacterContactValidate
boolean onCharacterContactValidate(long characterVa, long otherCharacterVa, long subShapeId2Va) Callback invoked (by native code) to test whether the specified characters can collide.- Parameters:
characterVa- the virtual address of theConstCharacterVirtualbeing solved (not zero)otherCharacterVa- the virtual address of the otherConstCharacterVirtual(not zero)subShapeId2Va- the virtual address of theConstSubShapeIdof the shape that is being hit (not zero)- Returns:
- true if the contact is valid, otherwise false
-
onContactAdded
void onContactAdded(long characterVa, long bodyId2Va, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, long settingsVa) Callback invoked (by native code) whenever a character collides with a body.- Parameters:
characterVa- the virtual address of theConstCharacterVirtualbeing solved (not zero)bodyId2Va- the virtual address of theConstBodybeing solved (not zero)subShapeId2Va- the virtual address of theConstSubShapeIdof the shape that is being hit (not zero)contactLocationX- the X component of the contact location (in system coordinates)contactLocationY- the Y component of the contact location (in system coordinates)contactLocationZ- the Z component of the contact location (in system coordinates)contactNormalX- the X component of the contact normal (in system coordinates)contactNormalY- the Y component of the contact normal (in system coordinates)contactNormalZ- the Z component of the contact normal (in system coordinates)settingsVa- the virtual address of theCharacterContactSettingsfor storing the desired behavior
-
onContactSolve
void onContactSolve(long characterVa, long bodyId2Va, long subShapeId2Va, double contactLocationX, double contactLocationY, double contactLocationZ, float contactNormalX, float contactNormalY, float contactNormalZ, float contactVelocityX, float contactVelocityY, float contactVelocityZ, long materialVa, float characterVelocityX, float characterVelocityY, float characterVelocityZ, float[] newCharacterVelocity) Callback invoked (by native code) whenever a character-versus-body contact is being solved.- Parameters:
characterVa- the virtual address of theConstCharacterVirtualbeing solved (not zero)bodyId2Va- the virtual address of theConstBodybeing solved (not zero)subShapeId2Va- the virtual address of theConstSubShapeIdof the shape that is being hit (not zero)contactLocationX- the X component of the contact location (in system coordinates)contactLocationY- the Y component of the contact location (in system coordinates)contactLocationZ- the Z component of the contact location (in system coordinates)contactNormalX- the X component of the contact normal (in system coordinates)contactNormalY- the Y component of the contact normal (in system coordinates)contactNormalZ- the Z component of the contact normal (in system coordinates)contactVelocityX- the X component of the velocity of the contact point (meters per second in system coordinates)contactVelocityY- the Y component of the velocity of the contact point (meters per second in system coordinates)contactVelocityZ- the Z component of the velocity of the contact point (meters per second in system coordinates)materialVa- the virtual address of theConstPhysicsMaterialat the contact point (not zero)characterVelocityX- the X component of the character's prior velocity (meters per second in system coordinates)characterVelocityY- the Y component of the character's prior velocity (meters per second in system coordinates)characterVelocityZ- the Z component of the character's prior velocity (meters per second in system coordinates)newCharacterVelocity- storage for the new velocity vector (in system coordinates, length≥3)
-
onContactValidate
boolean onContactValidate(long characterVa, long bodyId2Va, long subShapeId2Va) Callback invoked (by native code) to test whether the specified character can collide with the specified body.- Parameters:
characterVa- the virtual address of theConstCharacterVirtualbeing solved (not zero)bodyId2Va- the virtual address of theConstBodybeing solved (not zero)subShapeId2Va- the virtual address of theConstSubShapeIdof the shape that is being hit (not zero)- Returns:
- true if the contact is valid, otherwise false
-