Skip to content

Releases: dyn4j/dyn4j

3.3.0

15 Apr 21:07
Compare
Choose a tag to compare

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.

3.2.4

02 May 02:27
Compare
Choose a tag to compare

This is a maintenance release that fixes issue #26

3.2.3

04 Sep 18:05
Compare
Choose a tag to compare

This is a maintenance release that fixes issues #20 and #21

3.2.2

20 Jun 02:55
Compare
Choose a tag to compare

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.

Fixes #19

3.2.1

25 Nov 16:22
Compare
Choose a tag to compare

Added PulleyJoint.setLength, WheelJoint.getAngularTranslation, and WheelJoint.getLinearSpeed methods. Rewrote all the joint class level javadocs for better understanding and use.

Included bug fixes:

  1. Local rotation of Polygon, Rectangle, and Segment shapes would update the shape normals incorrectly when under any translation.
  2. The Rectangle.getRotation() method returned the opposite sign of its true rotation.

3.2.0

25 Nov 16:27
Compare
Choose a tag to compare

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.

3.1.11

25 Nov 16:28
Compare
Choose a tag to compare

Small performance improvements.

Included bug fixes:

  1. The raycast(Ray,double,boolean,boolean,List) method calling itself.

3.1.10

25 Nov 16:33
Compare
Choose a tag to compare

Added a new update(double, int) method on the World class to allow executing any number of steps within the given elapsed time.

Included bug fixes:

  1. WeldJoint class when using two bodies with fixed angular velocity.
  2. NullPointerException in the World.detect() methods.
  3. EarClipping class creating near-colinear vertices causing it to fail.
  4. Bayazit class selecting a non-visible closest vertex causing it to fail.

3.1.9

25 Nov 16:43
Compare
Choose a tag to compare

Added a Triangulator interface to allow triangulation along with convex decomposition for the EarClipping and SweepLine classes. Added a bunch of overloads to the World.detect, World.raycast, and World.convexCast methods to enhance control and performance.

Included bug fixes:

  1. NullPointerException in the SweepLine class when two vertices has identical y values.
  2. Additional edges being added at the end when using the EarClipping class.
  3. The Interval.intersection(Interval) method performing a union instead of intersection.
  4. Infinite loop in the SweepLine class due to incorrect sort condition.
  5. The World.convexCast method exiting early in certain cases.

3.1.8

25 Nov 16:45
Compare
Choose a tag to compare

Added Body.getFixture(Vector2) and Body.getFixtures(Vector2) methods.

Included bug fixes:

  1. The Vector2.distance(double, double) method performing the wrong calculation.
  2. The Body.applyImpulse(Vector2, Vector2) method not waking up the body.