From f7bec3c49cf6ca24d2878a9dcd20656d26de5cc7 Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Sun, 2 Oct 2022 18:30:26 +0200 Subject: Update CHANGELOG --- CHANGELOG.md | 22 +++++++++++++++++++++- src/lib.rs | 1 - src/pipeline/query_pipeline.rs | 3 +++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5aeb23a..29e5b73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,28 @@ ## Unreleased +### Added +- Add a **kinematic character** controller implementation. See the `control` module. The character controller currently + supports the following features: + - Slide on uneven terrains + - Interaction with dynamic bodies. + - Climb stairs automatically. + - Automatically snap the body to the floor when going downstairs. + - Prevent sliding up slopes that are too steep + - Prevent sliding down slopes that are not steep enough + - Interactions with moving platforms. + - Report information on the obstacles it hit on its path. +- Implement `serde` serialization/deserialization for `CollisionEvents` when the `serde-serialize` feature is enabled + + ### Modified - The methods `Collider::set_rotation`, `RigidBody::set_rotation`, and `RigidBody::set_next_kinematic_rotation` now take a rotation (`UnitQuaternion` or `UnitComplex`) instead of a vector/angle. - +- The method `QueryFilter::exclude_dynamic` is now a static method (the `self` argument was removed). +- The `QueryPipeline::cast_shape` method has a new argument `stop_at_penertation`. If set to `false`, the linear + shape-cast won’t immediately stop if the shape is penetrating another shape at its starting point **and** its + trajectory is such that it’s on a path to exist that penetration state. +- The `InteractionGroups` is now a set of explicit bit flags instead of a raw `u32`. +- The world-space mass properties of rigid-bodies are now updated automatically whenever the user changes their + position. ## v0.14.0 (09 July 2022) ### Fixed diff --git a/src/lib.rs b/src/lib.rs index baffedc..0c640c7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -203,7 +203,6 @@ pub mod math { /// Prelude containing the common types defined by Rapier. pub mod prelude { - // pub use crate::controller::*; pub use crate::dynamics::*; pub use crate::geometry::*; pub use crate::math::*; diff --git a/src/pipeline/query_pipeline.rs b/src/pipeline/query_pipeline.rs index 6cf646d..e2ea05f 100644 --- a/src/pipeline/query_pipeline.rs +++ b/src/pipeline/query_pipeline.rs @@ -696,6 +696,9 @@ impl QueryPipeline { /// * `shape` - The shape to cast. /// * `max_toi` - The maximum time-of-impact that can be reported by this cast. This effectively /// limits the distance traveled by the shape to `shapeVel.norm() * maxToi`. + /// * `stop_at_penetration` - If set to `false`, the linear shape-cast won’t immediately stop if + /// the shape is penetrating another shape at its starting point **and** its trajectory is such + /// that it’s on a path to exist that penetration state. /// * `filter`: set of rules used to determine which collider is taken into account by this scene query. pub fn cast_shape<'a>( &self, -- cgit