Release notes§
This lists the change brought by all major releases. The corresponding source code may be found based on tags on github.
Version 0.14.0§
Added§
- 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_toward
that takes a direction that is already normalized.
Modified§
- The
Plane
geometry is now initialized with aUnit
vector. Its.normal()
method also returns aUnit
vector. - The
Contact<...>
structure now represents the contact normal as aUnit<P::Vector>
instead of just aP::Vector
. - 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.
Version 0.12.0§
Modified§
- The
ShapeHandle
is now aArc<Shape<P, M>>
instead ofArc<Box<Shape<P, M>>>
(this removes one allocation indirection). - Update to nalgebra 0.12.0.
Version 0.11.0§
- Update to nalgebra 0.11.0.
Version 0.10.0§
Added§
- Re-export
Ray2
,Ray3
,RayIntersection2
, andRayIntersection3
on thequery
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()
.
Version 0.9.0§
Added§
- Added 2D and 3D testbeds (available on crates.io as
ncollide_testbed2d
andncollide_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
andncollide_entities
crates intoncollide_geometry
. - Rename the
geometry
module toquery
. ::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 asolid
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
toCollisionGroups::can_interact_with
. - Rename
NarrowPhase::handle_proximity
toNarrowPhase::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
toGeometricQueryType
. - Moved the
ray
andpoint
modules into thequery
module. Also, they are renamedray_internal
andpoint_internal
.
Removed§
- Removed the
CompositeShape::len()
method.
Version 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<P, M>>>
are now wrapped into a structure with a more explicit name:ShapeHandle<P, M>
. - Renamed
Convex
toConvexHull
- Swapped the first two arguments of
CompositeShape::map_transformed_part_at
. - All fields of
Polyline
are now private. Added corresponding accessors.