Release v0.12.0

This commit is contained in:
Sébastien Crozet
2022-04-30 17:34:47 +02:00
parent 4236027356
commit b22d8eda6a
10 changed files with 42 additions and 32 deletions

View File

@@ -1,12 +1,17 @@
## Unreleased ## v0.12.0 (30 Apr. 2022)
### Fixed ### Fixed
- Fix the simulation when the `parallel` feature is enabled. - Fix the simulation when the `parallel` feature is enabled.
- Fix bug where damping would not be applied properly to some bodies. - Fix bug where damping would not be applied properly to some bodies.
- Fix panics caused by various situations (contact or joints) involving rigid-bodies with locked translations/rotations. - Fix panics caused by various situations (contact or joints) involving rigid-bodies with locked translations/rotations.
- Fix bug where collider modifications (like changes of collision groups, or shape) would not wake-up their attached
rigid-body, or would not have any effect on pre-existing contacts.
- Fix the automatic update of a rigid-bodys mass properties after changing one of its attached colliders.
- Fix the broad-phase becoming potentially invalid after a change of collision groups.
### Modified ### Modified
- Switch to `nalgebra` 0.31.
- Switch to `parry` 0.9.
- Rename `JointHandle` to `ImpulseJointHandle`. - Rename `JointHandle` to `ImpulseJointHandle`.
- Rename `RigidBodyMassPropsFlags` to `LockedAxes`. - Rename `RigidBodyMassPropsFlags` to `LockedAxes`.
- Rename `RigidBody::apply_force`, `::apply_torque`, `::apply_force_at_point` to `::add_force`, - Rename `RigidBody::apply_force`, `::apply_torque`, `::apply_force_at_point` to `::add_force`,
@@ -24,10 +29,13 @@
which are more stable. which are more stable.
- Calling the `.build()` function from builders (`RigidBodyBuilder`, `ColliderBuilder`, etc.) is no longer necessary - Calling the `.build()` function from builders (`RigidBodyBuilder`, `ColliderBuilder`, etc.) is no longer necessary
whan adding them to sets. It is automatically called thanks to `Into<_>` implementations. whan adding them to sets. It is automatically called thanks to `Into<_>` implementations.
- The `ComponentSet` abstractions (and related `_generic` methods like `PhysicsPipeline::step_generic`) have been
removed. Custom storage for colliders and rigid-bodies are no longer possible: use the built-in `RigidBodySet` and
`ColliderSet` instead.
### Semantic modifications ### Semantic modifications
These are changes in the behavior of the physics engine that are not necessarily These are changes in the behavior of the physics engine that are not necessarily
reflected by an API change: reflected by an API change. See [#304](https://github.com/dimforge/rapier/pull/304) for extensive details.
- `RigidBody::set_linvel` and `RigidBody::set_angvel` no longer modify the velocity of static bodies. - `RigidBody::set_linvel` and `RigidBody::set_angvel` no longer modify the velocity of static bodies.
- `RigidBody::set_body_type` will reset the velocity of a rigid-body to zero if it is static. - `RigidBody::set_body_type` will reset the velocity of a rigid-body to zero if it is static.
- Dont automatically clear forces at the end of a timestep. - Dont automatically clear forces at the end of a timestep.
@@ -43,7 +51,9 @@ reflected by an API change:
- Adds a `bool` argument to `RigidBodySet::remove`. If set to `false`, the colliders attached to the rigid-body - Adds a `bool` argument to `RigidBodySet::remove`. If set to `false`, the colliders attached to the rigid-body
wont be automatically deleted (they will only be detached from the deleted rigid-body instead). wont be automatically deleted (they will only be detached from the deleted rigid-body instead).
- Add `RigidBody::reset_forces` and `RigidBody::reset_torques` to reset all the forces and torques added to the - Add `RigidBody::reset_forces` and `RigidBody::reset_torques` to reset all the forces and torques added to the
rigid-bodiy by the user. rigid-body by the user.
- Add the `debug-render` cargo feature that enables the `DebugRenderPipeline`: a line-based backend-agnostic
renderer to debug the state of the physics engine.
## v0.12.0-alpha.0 (2 Jan. 2022) ## v0.12.0-alpha.0 (2 Jan. 2022)
### Fixed ### Fixed

View File

@@ -17,10 +17,10 @@ resolver = "2"
#kiss3d = { git = "https://github.com/sebcrozet/kiss3d" } #kiss3d = { git = "https://github.com/sebcrozet/kiss3d" }
#nalgebra = { git = "https://github.com/dimforge/nalgebra", branch = "dev" } #nalgebra = { git = "https://github.com/dimforge/nalgebra", branch = "dev" }
parry2d = { git = "https://github.com/dimforge/parry", branch = "master" } #parry2d = { git = "https://github.com/dimforge/parry", branch = "master" }
parry3d = { git = "https://github.com/dimforge/parry", branch = "master" } #parry3d = { git = "https://github.com/dimforge/parry", branch = "master" }
parry2d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" } #parry2d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" }
parry3d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" } #parry3d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" }
[profile.release] [profile.release]
#debug = true #debug = true

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier2d-f64" name = "rapier2d-f64"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "2-dimensional physics engine in Rust." description = "2-dimensional physics engine in Rust."
documentation = "http://docs.rs/rapier2d" documentation = "http://docs.rs/rapier2d"
@@ -47,8 +47,8 @@ required-features = [ "dim2", "f64" ]
vec_map = { version = "0.8", optional = true } vec_map = { version = "0.8", optional = true }
instant = { version = "0.1", features = [ "now" ]} instant = { version = "0.1", features = [ "now" ]}
num-traits = "0.2" num-traits = "0.2"
nalgebra = "0.30" nalgebra = "0.31"
parry2d-f64 = "0.8" parry2d-f64 = "0.9"
simba = "0.7" simba = "0.7"
approx = "0.5" approx = "0.5"
rayon = { version = "1", optional = true } rayon = { version = "1", optional = true }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier2d" name = "rapier2d"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "2-dimensional physics engine in Rust." description = "2-dimensional physics engine in Rust."
documentation = "http://docs.rs/rapier2d" documentation = "http://docs.rs/rapier2d"
@@ -47,8 +47,8 @@ required-features = [ "dim2", "f32" ]
vec_map = { version = "0.8", optional = true } vec_map = { version = "0.8", optional = true }
instant = { version = "0.1", features = [ "now" ]} instant = { version = "0.1", features = [ "now" ]}
num-traits = "0.2" num-traits = "0.2"
nalgebra = "0.30" nalgebra = "0.31"
parry2d = "0.8" parry2d = "0.9"
simba = "0.7" simba = "0.7"
approx = "0.5" approx = "0.5"
rayon = { version = "1", optional = true } rayon = { version = "1", optional = true }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier3d-f64" name = "rapier3d-f64"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "3-dimensional physics engine in Rust." description = "3-dimensional physics engine in Rust."
documentation = "http://docs.rs/rapier3d" documentation = "http://docs.rs/rapier3d"
@@ -47,8 +47,8 @@ required-features = [ "dim3", "f64" ]
vec_map = { version = "0.8", optional = true } vec_map = { version = "0.8", optional = true }
instant = { version = "0.1", features = [ "now" ]} instant = { version = "0.1", features = [ "now" ]}
num-traits = "0.2" num-traits = "0.2"
nalgebra = "0.30" nalgebra = "0.31"
parry3d-f64 = "0.8" parry3d-f64 = "0.9"
simba = "0.7" simba = "0.7"
approx = "0.5" approx = "0.5"
rayon = { version = "1", optional = true } rayon = { version = "1", optional = true }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier3d" name = "rapier3d"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "3-dimensional physics engine in Rust." description = "3-dimensional physics engine in Rust."
documentation = "http://docs.rs/rapier3d" documentation = "http://docs.rs/rapier3d"
@@ -47,8 +47,8 @@ required-features = [ "dim3", "f32" ]
vec_map = { version = "0.8", optional = true } vec_map = { version = "0.8", optional = true }
instant = { version = "0.1", features = [ "now" ]} instant = { version = "0.1", features = [ "now" ]}
num-traits = "0.2" num-traits = "0.2"
nalgebra = "0.30" nalgebra = "0.31"
parry3d = "0.8" parry3d = "0.9"
simba = "0.7" simba = "0.7"
approx = "0.5" approx = "0.5"
rayon = { version = "1", optional = true } rayon = { version = "1", optional = true }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier_testbed2d-f64" name = "rapier_testbed2d-f64"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "Testbed for the Rapier 2-dimensional physics engine in Rust." description = "Testbed for the Rapier 2-dimensional physics engine in Rust."
homepage = "http://rapier.org" homepage = "http://rapier.org"
@@ -26,7 +26,7 @@ other-backends = [ "wrapped2d" ]
[dependencies] [dependencies]
nalgebra = { version = "0.30", features = [ "rand" ] } nalgebra = { version = "0.31", features = [ "rand" ] }
rand = "0.8" rand = "0.8"
rand_pcg = "0.3" rand_pcg = "0.3"
instant = { version = "0.1", features = [ "web-sys", "now" ]} instant = { version = "0.1", features = [ "web-sys", "now" ]}
@@ -54,5 +54,5 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
[dependencies.rapier] [dependencies.rapier]
package = "rapier2d-f64" package = "rapier2d-f64"
path = "../rapier2d-f64" path = "../rapier2d-f64"
version = "0.12.0-alpha.1" version = "0.12.0"
features = [ "serde-serialize", "debug-render" ] features = [ "serde-serialize", "debug-render" ]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier_testbed2d" name = "rapier_testbed2d"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "Testbed for the Rapier 2-dimensional physics engine in Rust." description = "Testbed for the Rapier 2-dimensional physics engine in Rust."
homepage = "http://rapier.org" homepage = "http://rapier.org"
@@ -26,7 +26,7 @@ other-backends = [ "wrapped2d" ]
[dependencies] [dependencies]
nalgebra = { version = "0.30", features = [ "rand" ] } nalgebra = { version = "0.31", features = [ "rand" ] }
rand = "0.8" rand = "0.8"
rand_pcg = "0.3" rand_pcg = "0.3"
instant = { version = "0.1", features = [ "web-sys", "now" ]} instant = { version = "0.1", features = [ "web-sys", "now" ]}
@@ -54,5 +54,5 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
[dependencies.rapier] [dependencies.rapier]
package = "rapier2d" package = "rapier2d"
path = "../rapier2d" path = "../rapier2d"
version = "0.12.0-alpha.1" version = "0.12.0"
features = [ "serde-serialize", "debug-render" ] features = [ "serde-serialize", "debug-render" ]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier_testbed3d-f64" name = "rapier_testbed3d-f64"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "Testbed for the Rapier 3-dimensional physics engine in Rust." description = "Testbed for the Rapier 3-dimensional physics engine in Rust."
homepage = "http://rapier.org" homepage = "http://rapier.org"
@@ -24,7 +24,7 @@ dim3 = [ ]
parallel = [ "rapier/parallel", "num_cpus" ] parallel = [ "rapier/parallel", "num_cpus" ]
[dependencies] [dependencies]
nalgebra = { version = "0.30", features = [ "rand" ] } nalgebra = { version = "0.31", features = [ "rand" ] }
rand = "0.8" rand = "0.8"
rand_pcg = "0.3" rand_pcg = "0.3"
instant = { version = "0.1", features = [ "web-sys", "now" ]} instant = { version = "0.1", features = [ "web-sys", "now" ]}
@@ -52,5 +52,5 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
[dependencies.rapier] [dependencies.rapier]
package = "rapier3d-f64" package = "rapier3d-f64"
path = "../rapier3d-f64" path = "../rapier3d-f64"
version = "0.12.0-alpha.1" version = "0.12.0"
features = [ "serde-serialize", "debug-render" ] features = [ "serde-serialize", "debug-render" ]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rapier_testbed3d" name = "rapier_testbed3d"
version = "0.12.0-alpha.1" version = "0.12.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ] authors = [ "Sébastien Crozet <developer@crozet.re>" ]
description = "Testbed for the Rapier 3-dimensional physics engine in Rust." description = "Testbed for the Rapier 3-dimensional physics engine in Rust."
homepage = "http://rapier.org" homepage = "http://rapier.org"
@@ -25,7 +25,7 @@ parallel = [ "rapier/parallel", "num_cpus" ]
other-backends = [ "physx", "physx-sys", "glam" ] other-backends = [ "physx", "physx-sys", "glam" ]
[dependencies] [dependencies]
nalgebra = { version = "0.30", features = [ "rand" ] } nalgebra = { version = "0.31", features = [ "rand" ] }
rand = "0.8" rand = "0.8"
rand_pcg = "0.3" rand_pcg = "0.3"
instant = { version = "0.1", features = [ "web-sys", "now" ]} instant = { version = "0.1", features = [ "web-sys", "now" ]}
@@ -56,5 +56,5 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
[dependencies.rapier] [dependencies.rapier]
package = "rapier3d" package = "rapier3d"
path = "../rapier3d" path = "../rapier3d"
version = "0.12.0-alpha.1" version = "0.12.0"
features = [ "serde-serialize", "debug-render" ] features = [ "serde-serialize", "debug-render" ]