Releases: stephengold/jolt-jni
5.1.0
-
Bugfix: logic error in
VehicleTransmissionSettings.setClutchReleaseTime() -
Bugfix: unsatisfied link in
RackAndPinionConstraintSettings -
Added
set()copying methods to 83 classes. -
Added 5 read-only interfaces:
ConstMotorcycleControllerSettingsConstTrackedVehicleControllerSettingsConstVehicleDifferentialSettingsConstVehicleTrackSettingsConstWheeledVehicleControllerSettings
-
Added getters and setters for 6 attributes of the
MotorcycleControllerSettingsclass. -
Added accessors for 3 attributes of the
VehicleCollisionTesterclass. -
Added
isEqual()methods to 5 classes. -
Added 3 public setters to the
VehicleTrackSettingsclass. -
Added copy constructors for the
CollisionGroupandIndexedTriangleNoMaterialclasses. -
Added accessors for the
mLeftRightSplitattribute ofVehicleDifferentialSettingsobjects. -
Added getters for the engine and transmission of
TrackedVehicleControllerSettingsobjects. -
Added accessors for the slip ratio of a
WheeledVehicleControllerSettings. -
Added the
getRotationAngle()method to theQuatArginterface. -
Added constant values
cBroadPhaseLayerInvalidandcObjectLayerInvalidto theJoltclass. -
Overrode various
equals(),hashCode(), andtoString()methods. -
Updated the Jolt-Physics source and assets to sg260518 (=153fd6f).
-
Began building with Vulkan SDK v1.4.350 and Xcode v26.5.0 .
-
Updated the OSHI library to v7.2.1 .
5.0.0
-
API changes:
- Deleted 2 deprecated public methods:
BodyCreationSettings.getNumPositionStepsOverride()BodyCreationSettings.getNumVelocityStepsOverride()
- Renamed 2 interfaces and 2 classes:
ConstContact->ConstCharacterContactConstContactKey->ConstCharacterContactKeyContact->CharacterContactContactKey->CharacterContactKey
- Various
CharacterContactListenercallbacks now receive a completeCharacterContactorCharacterContactSettingsin place of fine-grained parameters.
- Deleted 2 deprecated public methods:
-
Added a utility class
NativeLibraryLoader(PR #47) -
Added copy constructors to 6 soft-body classes:
EdgeFaceSoftBodyVertexVertexVertexAttributesVolume
-
Added new methods:
CharacterBase.setSupportingVolume()CharacterRef.setSupportingVolume()CharacterVirtualRef.setSupportingVolume()ConstCharacterBase.getSupportingVolume()ConstCharacterContact.getIsBackFacingContact()ConstSoftBodyVertex.getPreviousPosition()SoftBodyVertex.setHasContact()SoftBodyVertex.setPreviousPosition()
-
Overrode 4 existing public methods:
Face.toString()Plane.equals()Plane.hashCode()Vertex.toString()
-
Began building Windows native libraries using Visual Studio 2026 (instead of Visual Studio 2022).
-
Began building Linux_ARM64 native libraries using GCC v11.4 (instead of v10).
-
Began compiling Linux and Windows native libraries with v1.4.350.0 Vulkan header files (instead of v1.4.341.1).
-
Recompiled the compute shaders using Vulkan SDK v1.4.350.0 (instead of v1.4.341.1).
-
Updated the Jolt-Physics source and assets to sg260506 (=cd591a9).
4.3.0
-
Bugfixes:
- unsatisfied link during
BodyIdVector.createCopy() - unsatisfied link during
Character.getCharacterSettings() - assertion failure during
Contact.getCharacterB() Mat44.setElement()andRMat44.setElement()are ineffective (PR #46)
- unsatisfied link during
-
Added classes and interfaces:
ConstJointStateConstSkeletonPoseConstVehicleTransmissionSettingsContactSet
-
Added methods:
Body.applyBodyCreationSettings()Body.applySoftBodyCreationSettings()ConstBodyCreationSettings.isEqual()ConstCollisionGroup.isEqual()ConstMathProperties.isEqual()ContactKey.toString()CustomLoader.newLoader()JointState.set()JphMath.sqrt()Ragdoll.driveToPoseUsingMotors()Ragdoll.getConstraint()RagdollRef.driveToPoseUsingMotors()RagdollRef.getConstraint()RagdollSettings.getConstraintIndexForBodyIndex()RagdollSettingsRef.getConstraintIndexForBodyIndex()StateRecorder.read(ContactSet)StateRecorder.write(ContactSet)Vec3Arg.copyTo()[2 additional signatures]VehicleEngineSettings.restoreBinaryState()VehicleEngineSettings.saveBinaryState()VehicleTransmissionSettings.restoreBinaryState()VehicleTransmissionSettings.saveBinaryState()
-
Publicized a
PhysicsMaterialconstructor. -
Updated the Jolt-Physics source and assets to sg260504 (=4b2f349).
-
Updated the OSHI library to v7.1.0 .
4.2.0
-
Added methods:
ConstWheelSettingsWv.getAngularDamping()ConstWheelSettingsWv.getInertia()WheelSettingsWv.setAngularDamping()WheelSettingsWv.setInertia()WheelSettingsWvRef.setAngularDamping()WheelSettingsWvRef.setInertia()
-
Began including Metal compute servers in macOS natives.
-
Began building macOS natives using Xcode v26.4.1 .
-
Updated the Jolt-Physics source and assets to sg260430 (=04587a3).
-
Updated the OSHI library to v7.0.0 .
4.1.0
-
Bugfix: injudicious uses of
intin glue code -
Added class
ContactKeyand interfaceConstContactKey. -
Added methods:
ConstFloat3.copyTo()ConstHairSettings.putEdgeIndices()ConvexHullShapeSettings.transformPoints()Hair.putRenderPositionsWorld()Mat44Arg.multiply3x4(ConstFloat3)Op.star(Mat44, ConstFloat3)SVertex(Vec3Arg, float)Vec3.swizzleInPlace()
-
Added constant
Jolt.cInvalidCharacterId. -
Permitted passing arrays with null elements to 5
StreamInWrappermethods. -
Updated the Jolt-Physics source and assets to sg260420 (=dd4df01).
-
Updated the OSHI library to v6.11.1 .
4.0.1
Bugfix: storeRef not updated after getShapeUpdate(ShapeRefC) calls
4.0.0
-
API changes:
- Moved 32 public utility methods out of the
Joltclass. TheJPH_PInumeric constant and 11 math functions were moved to the newJphMathclass. Meanwhile, 21 seldom-used utility methods were moved to the newMiscUtilclass. - Altered the counted-reference classes (those derived from
Ref). Each reference now caches its target object, and allgetPtr()methods now return either a pre-existing object ornull. The motivation was to avoid creating duplicate JVM objects that refer to the same native object, which can lead to non-intuitive behavior. This change especially impacts applications that invokeclose()on physics objects. - Altered
ShapeRefCArray.get()to return a copy of the array element instead of an alias. - Altered the semantics of
VehicleConstraint.getController()andVehicleConstraintRef.getController()to return a pre-existing object. Again, the motivation was to avoid creating duplicate JVM objects that refer to the same native object - Altered the
BcsResultandSbcsResultclasses to more closely match the underlying native types (BCSResultandSBCSResult). This change affected the return types of bothget()methods. - Converted 3 concrete classes to abstract ones:
CharacterBaseSettings,ContactListener, andSoftBodyContactListener. - Renamed the
StreamInWrapper.readBytes()method toreadFloat3Array(). - Corrected the return type of the
ComputeQueue.toRef()method.
- Moved 32 public utility methods out of the
-
Bugfixes:
- missing support for empty counted references in many places
- unsatisfied link
CharacterVirtualRefC.copy() - memory leak in
ObjectStreamIn
-
Added classes and interfaces:
ConstLinearCurveConstVehicleEngineSettingsLinearCurveSimpleTireMaxImpulseCallback
-
Added methods:
ConstCharacterBase.getPhysicsSystem()ConstWheelSettingsWv.getLateralFriction()ConstWheelSettingsWv.getLongitudinalFriction()TireMaxImpulseCallback.calculate()WheelSettingsWv.setLateralFriction()WheelSettingsWv.setLongitudinalFriction()WheelSettingsWvRef.setLateralFriction()WheelSettingsWvRef.setLongitudinalFriction()VehicleEngineSettings.getNormalizedTorque()VehicleEngineSettings.setNormalizedTorque()
-
Added chaining to 21 public methods.
3.10.0
- Added the
ConstExtendedUpdateSettingsinterface. - Add the abstract
TireMaxImpulseCallbackclass andTmichelper class. - Added the
CustomTireMaxImpulseCallbackclass. - Add the
setTireMaxImpulseCallback()method to theWheeledVehicleControllerclass. (issue #42) - Added chaining to 10 public methods in
CompoundShapeSettingsandExtendedUpdateSettings. - Updated the Jolt-Physics source and assets to sg260326 (=3548a30).
3.9.0
-
Bugfix: use-after-free in
BodyLockMultiReadandBodyLockMultiWrite(issue #41) -
Added interface
ConstBodyIdArray. -
Added constructors:
BodyLockMultiRead(ConstBodyLockInterface, ConstBodyIdArray)BodyLockMultiWrite(ConstBodyLockInterface, ConstBodyIdArray)
-
Added methods:
BodyInterface.activateBodies()BodyInterface.deactivateBodies()BodyLockMultiBase.getBodyIdArray()
3.8.0
-
Bugfixes:
- Android crashes due to detaching threads with non-empty Java stacks
- no implementation for
TransformedAaBox.free()
-
Added Vulkan compute for Android platforms.
-
Added method
Jolt.installAndroidTraceCallback() -
Bumped the Android targetSdk and compileSdk levels to 35 and 36, respectively.
-
Improved many runtime checks.
-
Updated the OSHI library to v6.10.0 .