Reorganize the CHANGELOG for the next version.

This commit is contained in:
Crozet Sébastien
2021-06-02 16:07:14 +02:00
parent e0e341214c
commit acc4e4f301

View File

@@ -11,48 +11,61 @@ The user-guide has been fully rewritten and is now exhaustive! Check it out on [
`RigidBodyType::KinematicVelocityBased`. `RigidBodyType::KinematicVelocityBased`.
### Modified ### Modified
- Renamed `BodyStatus` to `RigidBodyType`. The use of `RigidBodySet, ColliderSet, RigidBody, Collider` is no longer mandatory. Rigid-bodies and colliders have
been split into multiple components that can be stored in a user-defined set. This is useful for integrating Rapier
with other engines (for example this allows use to use Bevy's Query as our rigid-body/collider sets).
FIXME: The `RigidBodySet, ColliderSet, RigidBody, Collider` are still the best option for whoever doesn't want to
provide their own component sets.
#### Rigid-bodies
- Renamed `BodyStatus` to `RigidBodyType`.
- `RigidBodyBuilder::translation` now takes a vector instead of individual components. - `RigidBodyBuilder::translation` now takes a vector instead of individual components.
- `RigidBodyBuilder::linvel` now takes a vector instead of individual components. - `RigidBodyBuilder::linvel` now takes a vector instead of individual components.
- The `RigidBodyBuilder::new_kinematic` has be replaced by the `RigidBodyBuilder::new_kinematic_position_based` and
`RigidBodyBuilder::new_kinematic_velocity_based` constructors.
- The `RigidBodyType::Kinematic` variant has been replaced by two variants: `RigidBodyType::KinematicVelocityBased` and
`RigidBodyType::KinematicPositionBased`.
#### Colliders
- `Colliderbuilder::translation` now takes a vector instead of individual components. - `Colliderbuilder::translation` now takes a vector instead of individual components.
- The way `PhysicsHooks` are enabled changed. Now, a physics hooks is executed if any of the two - The way `PhysicsHooks` are enabled changed. Now, a physics hooks is executed if any of the two
colliders involved in the contact/intersection pair contains the related `PhysicsHooksFlag`. colliders involved in the contact/intersection pair contains the related `PhysicsHooksFlag`.
These flags are configured on each collider with `ColliderBuilder::active_hooks`. As a result, These flags are configured on each collider with `ColliderBuilder::active_hooks`. As a result,
there is no `PhysicsHooks::active_hooks` method any more. there is no `PhysicsHooks::active_hooks` method any more.
- All events are now disabled for all colliders by default. Enable events for specific colliders by setting its
`active_events` bit mask to `ActiveEvents::CONTACT_EVENTS` and/or `ActiveEvents::PROXIMITY_EVENTS`.
- Add a simpler way of enabling collision-detection between colliders attached to two non-dynamic rigid-bodies: see
`ColliderBuilder::active_collision_types`.
- The `InteractionGroups` is now a structures with two `u32` integers: one integers for the groups
membership and one for the group filter mask. (Before, both were only 16-bits wide, and were
packed into a single `u32`).
- Before, sensor colliders had a default density set to 0.0 whereas non-sensor colliders had a - Before, sensor colliders had a default density set to 0.0 whereas non-sensor colliders had a
default density of 1.0. This has been unified by setting the default density to 1.0 for both default density of 1.0. This has been unified by setting the default density to 1.0 for both
sensor and non-sensor colliders. sensor and non-sensor colliders.
- Colliders are no longer required to be attached to a rigid-body. Therefore, `ColliderSet::insert` - Colliders are no longer required to be attached to a rigid-body. Therefore, `ColliderSet::insert`
only takes the collider as argument now. In order to attach the collider to a rigid-body, only takes the collider as argument now. In order to attach the collider to a rigid-body,
(i.e., the old behavior of `ColliderSet::insert`), use `ColliderSet::insert_with_parent`. (i.e., the old behavior of `ColliderSet::insert`), use `ColliderSet::insert_with_parent`.
- The field `ContactPair::pair` (which contained two collider handles) has been replaced by two - Fixed a bug where collision groups were ignored by CCD.
fields: `ContactPair::collider1` and `ContactPair::collider2`.
#### Joints
- The fields `FixedJoint::local_anchor1` and `FixedJoint::local_anchor2` have been renamed to - The fields `FixedJoint::local_anchor1` and `FixedJoint::local_anchor2` have been renamed to
`FixedJoint::local_frame1` and `FixedJoint::local_frame2`. `FixedJoint::local_frame1` and `FixedJoint::local_frame2`.
#### Pipelines and others
- The field `ContactPair::pair` (which contained two collider handles) has been replaced by two
fields: `ContactPair::collider1` and `ContactPair::collider2`.
- The list of active dynamic bodies is no retrieved with `IslandManager::active_dynamic_bodies` - The list of active dynamic bodies is no retrieved with `IslandManager::active_dynamic_bodies`
instead of `RigidBodySet::iter_active_dynamic`. instead of `RigidBodySet::iter_active_dynamic`.
- The list of active kinematic bodies is no retrieved with `IslandManager::active_kinematic_bodies` - The list of active kinematic bodies is no retrieved with `IslandManager::active_kinematic_bodies`
instead of `RigidBodySet::iter_active_kinematic`. instead of `RigidBodySet::iter_active_kinematic`.
- The `InteractionGroups` is now a structures with two `u32` integers: one integers for the groups
membership and one for the group filter mask. (Before, both were only 16-bits wide, and were
packed into a single `u32`).
- `NarrowPhase::contacts_with` now returns an `impl Iterator<Item = &ContactPair>` instead of - `NarrowPhase::contacts_with` now returns an `impl Iterator<Item = &ContactPair>` instead of
an `Option<impl Iterator<Item = (ColliderHandle, ColliderHandle, &ContactPair)>>`. The colliders an `Option<impl Iterator<Item = (ColliderHandle, ColliderHandle, &ContactPair)>>`. The colliders
handles can be read from the contact-pair itself. handles can be read from the contact-pair itself.
- `NarrowPhase::intersections_with` now returns an iterator directly instead of an `Option<impl Iterator>`. - `NarrowPhase::intersections_with` now returns an iterator directly instead of an `Option<impl Iterator>`.
- Rename `PhysicsHooksFlags` to `ActiveHooks`. - Rename `PhysicsHooksFlags` to `ActiveHooks`.
- The `RigidBodyBuilder::new_kinematic` has be replaced by the `RigidBodyBuilder::new_kinematic_position_based` and
`RigidBodyBuilder::new_kinematic_velocity_based` constructors.
- The `RigidBodyType::Kinematic` variant has been replaced by two variants: `RigidBodyType::KinematicVelocityBased` and
`RigidBodyType::KinematicPositionBased`.
- Fixed a bug where collision groups were ignored by CCD.
- Add the contact pair as an argument to `EventHandler::handle_contact_event` - Add the contact pair as an argument to `EventHandler::handle_contact_event`
- All events are now disabled for all colliders by default. Enable events for specific colliders by setting its
`active_events` bit mask to `ActiveEvents::CONTACT_EVENTS` and/or `ActiveEvents::PROXIMITY_EVENTS`.
- Add a simpler way of enabling collision-detection between colliders attached to two non-dynamic rigid-bodies: see
`ColliderBuilder::active_collision_types`.
## v0.8.0 ## v0.8.0
### Modified ### Modified