Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 50 million developers.Sign up
This release was focused on Java 9, OSGi, and Maven but also includes some behavior changes and performance improvements.
For those just using the library, the behavior changes to be aware of are:
- The GJK algorithm has changed slighty. It now exits after N number of iterations. This has been changed to ensure that the algorithm doesn’t run forever in some rare instances. If you need to go back to the original behavior you can set the maximum number of iterations to Integer.MAX_VALUE, but it’s not recommended.
- The ContactListener.sensed method is deprecated now and is no longer being called. Instead, you will get notifications of sensed contacts through the other methods (begin, persist, etc.). This was done so that sensed contacts have the same lifecycle as normal contacts. There’s a flag on the Contact argument that flags the contact as a sensor contact.
- Some of the ContactListener methods should return true or false, indicating whether the contact should be solved or not. The behavior here has changed a bit. Before 3.3.0 the processing of that contact would halt whenever false was returned and drop the contact. The new behavior is that the contact proceeds as normal through the pipeline, but is just disabled from contact resolution. The effect is the same, apart from the fact that all caching information and the contact’s state is retained.
This release is primarily for a new collision shape called Link. This shape extends the existing Segment shape and provides for smooth sliding across chains of Links.
Added PulleyJoint.setLength, WheelJoint.getAngularTranslation, and WheelJoint.getLinearSpeed methods. Rewrote all the joint class level javadocs for better understanding and use.
Included bug fixes:
- Local rotation of Polygon, Rectangle, and Segment shapes would update the shape normals incorrectly when under any translation.
- The Rectangle.getRotation() method returned the opposite sign of its true rotation.
Performance enhancements, API clean up, and lots of javadoc updates. The most visible API changes are: Mass.Type has been renamed to MassType, Body.setMass() has been deprecated in favor of Body.setMass(MassType), and MouseJoint has been renamed to PinJoint.