The user-guide has been fully rewritten and is now exhaustive! Check it out on rapier.rs
Added
A prelude has been added in order to simplify the most common imports. For example: use rapier3d::prelude::*
Add RigidBody::set_translation and RigidBody.translation().
Add RigidBody::set_rotation and `RigidBody.rotation().
Add RigidBody::set_next_translation for setting the next translation of a position-based kinematic body.
Add RigidBody::set_next_rotation for setting the next rotation of a position-based kinematic body.
Add kinematic bodies controlled at the velocity level: use RigidBodyBuilder::new_kinematic_velocity_based or
RigidBodyType::KinematicVelocityBased.
Add the cargo feature debug-disable-legitimate-fe-exceptions that can be enabled for debugging purpose. This will
disable floating point exceptions whenever they happen at places where we do expect them to happen (for example
some SIMD code do generate NaNs which are filtered out by lane-wise selection).
Modified
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).
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::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.
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.
These flags are configured on each collider with ColliderBuilder::active_hooks. As a result,
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
default density of 1.0. This has been unified by setting the default density to 1.0 for both
sensor and non-sensor colliders.
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,
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on rapier3d to permit the latest version.
Changelog
Sourced from rapier3d's changelog.
... (truncated)
Commits
fdd370e
Release v0.9.0c7b876e
Merge pull request #173 from DasEtwas/must-use-pubad2fcf7
Merge pull request #176 from sdfgeoff/add_collider_shared_shape_method8a3103a
Merge pull request #195 from tpdickso/ungenerate-nansd3d998e
Merge pull request #193 from rezural/egui-focus6ba1c9d
Merge pull request #196 from dimforge/api_changesbde6657
Fix tests and wasm build.acc4e4f
Reorganize the CHANGELOG for the next version.e0e3412
Update dependencies6356dca
remove c_intDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)