Skip to content

Latest commit

 

History

History
114 lines (102 loc) · 5.48 KB

CHANGELOG.md

File metadata and controls

114 lines (102 loc) · 5.48 KB

Change Log

All notable changes to ncollide, starting with the version 0.8.0 will be documented here.

This project adheres to Semantic Versioning.

[0.18.0]

Bug-fixes and dependencies updates.

[0.17.0]

* Add support for some shapes (`TriMesh` and `Polyline`) that can be deformed.
* Add full support for `Capsule` and `Heightfield`.

[0.16.0]

Bug-fixes and dependencies updates.

[0.15.0]

Added

* This re-adds time-of-impact computation in the `query`module.
* Add `::try_from_points(...)` methods to construct a 2D `ConvexPolygon`
  or an 3D `Convex` shape from a set of point. The convex hull of those
  points are automatically computed.

Modified

* All the dependencies have been updated to their latest.

[0.14.0]

Added

* 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_toward` that takes a direction that is already
  normalized.

Modified

* The `Plane` geometry is now initialized with a `Unit` vector. Its `.normal()` method also returns a `Unit` vector.
* The `Contact<...>` structure now represents the contact normal as a `Unit<Vector<N>>` instead of just a `Vector<N>`.
* All the fields of `CollisionObject` are 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).
* Rename `RichPointQuery` -> `PointQueryWithLocation`.
* Rename `RichPointQuery::project_point_with_extra_info` -> `PointQueryWithLocation::project_point_with_location`.
* Rename `CollisionWorld::deferred_add          -> CollisionWorld::add`. Now, the addition is performed immediately.
* Rename `CollisionWorld::deferred_remove       -> CollisionWorld::remove`. Now, the removal is performed immediately.
* Rename `CollisionWorld::deferred_set_position -> CollisionWorld::set_position`. Now, the change of position is performed immediately.
* The interface of `BroadPhase` has been significantly altered: now the uid
  allocated to each object added to the broad phase is automatically
  generated by the broad phase itself.
* Rename `BroadPhase::deferred_remove -> BroadPhase::remove`. Now the
  removal is performed immediately.

[0.12.0]

Modified

* The `ShapeHandle` is now a `Arc<Shape<N>>` instead of `Arc<Box<Shape<N>>>`
(this removes one allocation indirection).
* Update to nalgebra 0.12.

[0.11.0]

* Update to nalgebra 0.11.0.

[0.10.0]

Added

* Re-export `Ray2`, `Ray3`, `RayIntersection2`, and `RayIntersection3` on
  the `query` module.

Modified

* Rename `.perform_removals_and_broad_phase()` -> `.perform_additions_removals_and_broad_phase()`.
* Rename the collision world method `.add()` to `.deferred_add()`.
* 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 `.update()`.

[0.9.0]

Added

* Added 2D and 3D testbeds (available on crates.io as `ncollide_testbed2d` and `ncollide_testbed3d`).
* 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.

Modified

* Merge the `ncollide_queries` and `ncollide_entities` crates into
  `ncollide_geometry`.
* Rename the `geometry` module to `query`.
* `::implicit_shape_aabb(...)` becomes `::support_map_aabb(...)`
* `CompositeShape::aabb_at(...)` now returns an AABB by-value (instead of
  by-ref).
* `PointQuery::distance_to_point(...)` now has a `solid` flag as well.
* Point queries result now indicates if the point was inside of the object
  or not by returning a `PointProjection` structure instead of just the
  point.
* Rename `CollisionGroups::can_collide_with` to `CollisionGroups::can_interact_with`.
* Rename `NarrowPhase::handle_proximity` to `NarrowPhase::handle_interaction`.
* Rename all `.*CollisionDetector` to `.*ContactGenerator`. Methods have
  been renamed as well (e.g. `.get_collision_algorithm` becomes
  `.get_contact_algorithm`, `.colls` becomes `.contacts`, etc.)
* Rename `CollisionQueryType` to `GeometricQueryType`.
* Moved the `ray` and `point` modules into the `query` module. Also, they
  are renamed `ray_internal` and `point_internal`.

Removed

* Removed the `CompositeShape::len()` method.

[0.8.0]

Added

* Added proximity queries, including persistant proximity detector and
  algorithm dispatcher.
* Added methods to set directly collision group membership/whitelist/blacklist.

Modified

* The last type parameter of the `BVTCostFn` trait (the user-defined data
  return by leaves) is now an associated type.
* The shape handles `Arc<Box<Repr<N>>>` are now wrapped into a structure
  with a more explicit name: `ShapeHandle<N>`.
* Renamed `Convex` to `ConvexHull`
* Swapped the first two arguments of `CompositeShape::map_transformed_part_at`.
* All fields of `Polyline` are now private. Added corresponding accessors.