From 88849d809f4b78ba8814cd1cf56b9fb5d0185f20 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sun, 29 Jun 2025 17:59:01 +0200 Subject: [PATCH] chore(deps): bump rapier2d to 0.19.0 Signed-off-by: Marcin Serwin --- Cargo.lock | 25 +++++++++++++++++++------ Cargo.toml | 3 +-- src/core/physics/collisions.rs | 11 +++++------ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ce63ee7d25..9e9f721b41 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ab_glyph" @@ -4326,7 +4326,7 @@ dependencies = [ "indexmap 2.5.0", "nalgebra", "once_cell", - "ordered-float", + "ordered-float 3.9.2", "peg", "petgraph", "postcard", @@ -5564,6 +5564,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "overload" version = "0.1.1" @@ -5648,9 +5657,9 @@ dependencies = [ [[package]] name = "parry2d" -version = "0.13.8" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd94bf962ead112f14223469aac6f76e3c24e2c399e348f638924498b238c56" +checksum = "41c56bf3b44b08f18a6ed01e5c6bf1a41a12efc7e8b806ce0cf50831c88f9fc8" dependencies = [ "approx", "arrayvec", @@ -5658,6 +5667,7 @@ dependencies = [ "downcast-rs", "either", "indexmap 1.9.3", + "log", "nalgebra", "num-derive", "num-traits", @@ -6433,8 +6443,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" [[package]] name = "rapier2d" -version = "0.18.0" -source = "git+https://github.com/MaxCWhitehead/rapier.git?rev=29c72c6c282e7c40987c0d0d0ce3089ea019a532#29c72c6c282e7c40987c0d0d0ce3089ea019a532" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "535b70552dc42dab9054d3d5a80e8430ced502e20acb0bf6118c344ff356f62a" dependencies = [ "approx", "arrayvec", @@ -6442,9 +6453,11 @@ dependencies = [ "bitflags 1.3.2", "crossbeam", "downcast-rs", + "log", "nalgebra", "num-derive", "num-traits", + "ordered-float 4.6.0", "parry2d", "rustc-hash 1.1.0", "simba", diff --git a/Cargo.toml b/Cargo.toml index 5b32a222bc..ab698ebb14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,8 +24,7 @@ tracing = "0.1.37" puffin = { version = "0.17.0", features = ["web"] } puffin_egui = "0.23.0" petgraph = "0.6.4" -# Use rapier w/ parry2d 0.13.7 for qbvh crash fix: https://github.com/dimforge/parry/pull/185 -rapier2d = { git = "https://github.com/MaxCWhitehead/rapier.git", rev = "29c72c6c282e7c40987c0d0d0ce3089ea019a532", features = [ +rapier2d = { version = "0.19.0", features = [ "debug-render", "enhanced-determinism", ] } diff --git a/src/core/physics/collisions.rs b/src/core/physics/collisions.rs index 50a1dd1fd6..60c4347a58 100644 --- a/src/core/physics/collisions.rs +++ b/src/core/physics/collisions.rs @@ -6,6 +6,7 @@ use indexmap::IndexMap; use rapier::Vector; use rapier2d::geometry::InteractionGroups; +use rapier2d::parry::query::ShapeCastOptions; pub use rapier2d::prelude as rapier; pub use shape::*; @@ -1118,8 +1119,7 @@ impl<'a> CollisionWorld<'a> { &position, &velocity, &**shape, - 1.0, - true, + ShapeCastOptions::with_max_time_of_impact(1.0), rapier::QueryFilter::new().predicate(&|_handle, rapier_collider| { let ent = RapierUserData::entity(rapier_collider.user_data); @@ -1142,7 +1142,7 @@ impl<'a> CollisionWorld<'a> { let ent = RapierUserData::entity(collider_set.get(handle).unwrap().user_data); // Move up to the point of collision - let diff = dy * toi.toi; + let diff = dy * toi.time_of_impact; movement += diff; position.translation.y += diff; @@ -1258,8 +1258,7 @@ impl<'a> CollisionWorld<'a> { &position, &velocity, &**shape, - 1.0, - true, + ShapeCastOptions::with_max_time_of_impact(1.0), rapier::QueryFilter::new().predicate(&|_handle, rapier_collider| { let ent = RapierUserData::entity(rapier_collider.user_data); @@ -1283,7 +1282,7 @@ impl<'a> CollisionWorld<'a> { let ent = RapierUserData::entity(collider_set.get(handle).unwrap().user_data); // Move up to the point of collision - let diff = dx * toi.toi; + let diff = dx * toi.time_of_impact; movement += diff; position.translation.x += diff;