Dyn4j Versions Save

Java Collision Detection and Physics Engine

3.3.0

6 years ago

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

7 years ago

This is a maintenance release that fixes issue #26

3.2.3

7 years ago

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

3.2.2

7 years ago

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.1.7

8 years ago

Bug fix release.

Included bug fixes:

  1. The Ellipse.getHalfHeight method returning the half width instead.
  2. The Ellipse.contains method failing when locally translated or rotated.
  3. The HalfEllipse.contains method failing when locally translated or rotated.

3.1.8

8 years ago

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.

3.1.9

8 years ago

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.10

8 years ago

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.11

8 years ago

Small performance improvements.

Included bug fixes:

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

3.2.0

8 years ago

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.