aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/broad_phase_multi_sap
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-04-21 23:42:21 +0200
committerSébastien Crozet <sebastien@crozet.re>2024-04-30 23:10:46 +0200
commit6635d49c8bdaca13011a888d3901436eb79c599e (patch)
treece6d3ded0025c9107544275b109f0570c0d54daa /src/geometry/broad_phase_multi_sap
parent33dd38016ccf3c4ad8e874d75e51fbc20dd060da (diff)
downloadrapier-6635d49c8bdaca13011a888d3901436eb79c599e.tar.gz
rapier-6635d49c8bdaca13011a888d3901436eb79c599e.tar.bz2
rapier-6635d49c8bdaca13011a888d3901436eb79c599e.zip
feat: add configurable distance cap to soft-ccd
Diffstat (limited to 'src/geometry/broad_phase_multi_sap')
-rw-r--r--src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs b/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs
index bc09b57..fb5d407 100644
--- a/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs
+++ b/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs
@@ -597,8 +597,11 @@ impl BroadPhase for BroadPhaseMultiSap {
let next_pos = co.parent.and_then(|p| {
let parent = bodies.get(p.handle)?;
- parent.is_soft_ccd_enabled().then(|| {
- parent.predict_position_using_velocity_and_forces(dt) * p.pos_wrt_parent
+ (parent.soft_ccd_prediction() > 0.0).then(|| {
+ parent.predict_position_using_velocity_and_forces_with_max_dist(
+ dt,
+ parent.soft_ccd_prediction(),
+ ) * p.pos_wrt_parent
})
});