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 is a maintenance release to fix the issue where the a Joint removed from a World cannot be added back or to a different world due to an internal member not being cleared.
This release fixes issues with the getRadius(Vector2) method for the Slice, Capsule, Ellipse, and HalfEllipse shapes under local rotation and fixes the detect(AABB) method in the Sap broadphase.
Sadly, the getRadius(Vector2) method for the Ellipse classes boils down to a maximization/root finding problem. Thankfully, the method should be called rarely so should have negligible performance impact.
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.
There were some minor fixes and code clean up as well.
This is a maintenance release to fix a few critical bugs in the Polygon, Rectangle, and Segment classes for local rotations (see this post for details).
This release also contains some small enhancements (a few new methods) to some of the joints and a complete rewrite of all the joint class javadoc documentation. The documentation should be much easier to read and should explain common use.
The primary goals for this release were performance enhancements and API clean up. It took a lot longer than I had expected but I’m very happy with the results. Highlights include improvements in the performance of collision detection and ray casting operations and a much cleaner public API and more thorough javadoc comments.
The API has been changed a good bit and you’ll find some breaking changes. Most, if not all, should be simple find/replace changes, the behavior should remain the same. Those of note are:
- Body.setMass() was deprecated. Use Body.setMass(MassType) instead.
- Mass.Type was renamed to MassType.
- MouseJoint was renamed to PinJoint.
All this got me thinking of the old days of the Turbo button which funny enough did the opposite of what you’d think…
Due to Google’s decision to drop Google Code, I’ve moved the project to GitHub. In truth, I’ve been contemplating this for a while now, but have had reservations about lost version history. I feel this will help others contribute bug fixes and allow them to create their own forks and branches easier than before.
I haven’t fully check the revision history, but it looks like everything came over as expected. I had to manually move all the wiki pages, but I was planning to do this anyway as well. You can find them under Documentation on dyn4j.org.
- Maven Repo
- Announcment / Discussion on JogAmp Forum
- JOGL: Bug 682
Relocating remaining javax.media.opengl.* -> com.jogamp.opengl.*
to relax probable license issue while bundling JOGL
- GlueGen Bug 1134: Enhancements for Bug 1135
This GlueGen enhancement renders it more than capable
to add bindings for other projects!
Should be ready to test w/ Vulkan .. if available
- JOGL: Bug 1135: EGL 1.5, ES 3.1, GL 4.4 + 4.5, misc..
- JOGL: Bug 1068: GLContext w/o default framebuffer
- Bug 1122: Add ARM 64bit build support, add Android ARM 64 bit build
- Plus all the other solved issues and minor API changes
- Some Hi-DPI changes
This is a NON BACKWARD COMPATIBLE release,
introducing API CHANGES.
It CAN NOT be used as a binary/jar drop-in replacement.
Extracted from our GlueGen and JOGL semantic versioning unit tests!
This is a maintenance release of dyn4j that includes a bug fix for a StackOverflowException thrown from the raycast(Ray, double, boolean, boolean, List) method. This release also includes some very minor performance tweaks. See the change detail in the release notes.
The Sandbox app was updated to fix a bug in the Java code exporter (Rays were not being exported).
This is a maintenance release of dyn4j that includes some major bug fixes. See the change detail in the release notes.
The Sandbox app was not updated in this release.