This lists the change brought by all major releases. The corresponding source code may be found based on tags on github.
- Update to nalgebra 0.14.
- The EPA algorithm in both 2D and 3D.
- Voronoï region based simplex projection algorithms for 2D and 3D (and used for the GJK instead of the n-dimensional Johnson algorithm).
SupportMap::support_point_towardthat takes a direction that is already normalized.
Planegeometry is now initialized with a
.normal()method also returns a
Contact<...>structure now represents the contact normal as a
Unit<P::Vector>instead of just a
- All the fields of
CollisionObjectare now private and must be accessed using methods.
- The trait Point now requires additional methods to compute the normal of a face and to project the origin on it.
- Everything is now Send/Sync (useful for, e.g., ECS compatibility).
CollisionWorld::deferred_add -> CollisionWorld::add. Now, the addition is performed immediately.
CollisionWorld::deferred_remove -> CollisionWorld::remove. Now, the removal is performed immediately.
CollisionWorld::deferred_set_position -> CollisionWorld::set_position. Now, the change of position is performed immediately.
- The interface of
BroadPhasehas been significantly altered: now the uid allocated to each object added to the broad phase is automatically generated by the broad phase itself.
BroadPhase::deferred_remove -> BroadPhase::remove. Now the removal is performed immediately.
ShapeHandleis now a
Arc<Shape<P, M>>instead of
Arc<Box<Shape<P, M>>>(this removes one allocation indirection).
- Update to nalgebra 0.12.0.
- Update to nalgebra 0.11.0.
- Rename the collision world method
- The collision world
.deferred_set_position()now fails with a meaningful error when the user attempts to set the position of an object not actually added (including those that have been
.deferred_add()-ed without a subsequent
- Added 2D and 3D testbeds (available on crates.io as
- Added a method to the narrow phase to retrieve all the proximity pairs.
- Added a method to the collision world to retrieve all the proximity pairs.
- Added a method to the collision world to retrieve the collision object from its identifier.
- Merge the
- Rename the
CompositeShape::aabb_at(...)now returns an AABB by-value (instead of by-ref).
PointQuery::distance_to_point(...)now has a
solidflag as well.
- Point queries result now indicates if the point was inside of the object
or not by returning a
PointProjectionstructure instead of just the point.
- Rename all
.*ContactGenerator. Methods have been renamed as well (e.g.
- Moved the
pointmodules into the
querymodule. Also, they are renamed
- Removed the
- Added proximity queries, including persistant proximity detector and algorithm dispatcher.
- Added methods to set directly collision group membership/whitelist/blacklist.
- The last type parameter of the
BVTCostFntrait (the user-defined data return by leaves) is now an associated type.
- The shape handles
Arc<Box<Repr<P, M>>>are now wrapped into a structure with a more explicit name:
- Swapped the first two arguments of
- All fields of
Polylineare now private. Added corresponding accessors.