Implement Serialize and Deserialize for the CCDSolver.
Fixed
Fix a crash that could happen after adding and then removing a collider right away,
before stepping the simulation.
v0.7.1
Fixed
Fixed a bug in the broad-phase that could cause non-determinism after snapshot restoration.
v0.7.0
Added
Add the support of Continuous Collision Detection (CCD) to
make sure that some fast-moving objects (chosen by the user) don't miss any contacts.
This is done by using motion-clamping, i.e., each fast-moving rigid-body with CCD enabled will
be stopped at the time where their first contact happen. This will result in some "time loss" for that
rigid-body. This loss of time can be reduced by increasing the maximum number of CCD substeps executed
(the default being 1).
Add the support of collider modification. Now, most of the characteristics of a collider can be
modified after the collider has been created.
We now use an implicit friction cone for handling friction, instead of a pyramidal approximation
of the friction cone. This means that friction will now behave in a more isotropic way (i.e. more realistic
Coulomb friction).
Add the support of custom filters for the QueryPipeline. So far, interaction groups (bit masks)
had to be used to exclude from colliders from a query made with the QueryPipeline. Now it is also
possible to provide a custom closures to apply arbitrary user-defined filters.
It is now possible to solve penetrations using the velocity solver instead of (or alongside) the
position solver (this is disabled by default, set IntegrationParameters::velocity_based_erp to
a value > 0.0 to enable.).
Added the methods:
ColliderBuilder::halfspace to create a collider with an unbounded plane shape.
Collider::shape_mut to get a mutable reference to its shape.
Collider::set_shape, ::set_restitution_combine_rule, ::set_position_wrt_parent, ::set_collision_groups::set_solver_groups to change various properties of a collider after its creation.
RigidBodyBuilder::ccd_enabled to enable CCD for a rigid-body.
Modified
The target_dist argument of QueryPipeline::cast_shape was removed.
RigidBodyBuilder::mass_properties has been deprecated, replaced by ::additional_mass_properties.
RigidBodyBuilder::mass has been deprecated, replaced by ::additional_mass.
RigidBodyBuilder::principal_angular_inertia has been deprecated, replaced by ::additional_principal_angular_inertia.
The field SolveContact::data has been replaced by the fields SolverContact::warmstart_impulse,
SolverContact::warmstart_tangent_impulse, and SolverContact::prev_rhs.
All the fields of IntegrationParameters that we don't use have been removed.
NarrowPhase::maintain has been renamed to NarrowPhase::handle_user_changes.
BroadPhase::maintain has been removed. Use BroadPhase::update directly.
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
7465abf
Release v0.7.244a6955
Merge pull request #164 from dimforge/collider_removal_fix5492736
Remove useless comment.88b7a55
Add comment regarding the fix.31138c2
Make the CCDSolver clonable and serializable.5a0e647
Fix crash caused by a collider being remove before the first timestep.7557d2a
Release v0.7.1b97d377
Merge pull request #162 from dimforge/determinism_after_snapshotd9d89af
Fix determinism problem in the broad-phase after snapshot restoration.4a0b390
Merge pull request #161 from dimforge/release_v0.7.0Dependabot 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)