aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics
diff options
context:
space:
mode:
authorThierry Berger <contact@thierryberger.com>2024-06-09 14:16:03 +0200
committerGitHub <noreply@github.com>2024-06-09 14:16:03 +0200
commit9367198282f9a30c23cc7ddd3a56db56b7506aae (patch)
treef64438e48b4d3ab90d18e038d7d2c9e34c2dd9ab /src/dynamics
parent8160b4ebdb06afb39f493b5c8f65d1dd280b3dfb (diff)
downloadrapier-9367198282f9a30c23cc7ddd3a56db56b7506aae.tar.gz
rapier-9367198282f9a30c23cc7ddd3a56db56b7506aae.tar.bz2
rapier-9367198282f9a30c23cc7ddd3a56db56b7506aae.zip
feat: rework QueryPipeline update API to take less parameters (#647)
* chore: rework QueryPipeline API to take a generic qbvh updater This allows to pass less parameters depending on the updating mode. * chore: rework struct and functions names, and docs --------- Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
Diffstat (limited to 'src/dynamics')
-rw-r--r--src/dynamics/ccd/ccd_solver.rs20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/dynamics/ccd/ccd_solver.rs b/src/dynamics/ccd/ccd_solver.rs
index 79c4495..eaabf77 100644
--- a/src/dynamics/ccd/ccd_solver.rs
+++ b/src/dynamics/ccd/ccd_solver.rs
@@ -3,8 +3,8 @@ use crate::dynamics::{IslandManager, RigidBodyHandle, RigidBodySet};
use crate::geometry::{ColliderParent, ColliderSet, CollisionEvent, NarrowPhase};
use crate::math::Real;
use crate::parry::utils::SortedPair;
-use crate::pipeline::{EventHandler, QueryPipeline, QueryPipelineMode};
-use crate::prelude::{ActiveEvents, CollisionEventFlags};
+use crate::pipeline::{EventHandler, QueryPipeline};
+use crate::prelude::{query_pipeline_generators, ActiveEvents, CollisionEventFlags};
use parry::query::{DefaultQueryDispatcher, QueryDispatcher};
use parry::utils::hashmap::HashMap;
use std::collections::BinaryHeap;
@@ -117,10 +117,12 @@ impl CCDSolver {
narrow_phase: &NarrowPhase,
) -> Option<Real> {
// Update the query pipeline.
- self.query_pipeline.update_with_mode(
- bodies,
- colliders,
- QueryPipelineMode::SweepTestWithPredictedPosition { dt },
+ self.query_pipeline.update_with_generator(
+ query_pipeline_generators::SweptAabbWithPredictedPosition {
+ bodies,
+ colliders,
+ dt,
+ },
);
let mut pairs_seen = HashMap::default();
@@ -238,10 +240,8 @@ impl CCDSolver {
let mut min_overstep = dt;
// Update the query pipeline.
- self.query_pipeline.update_with_mode(
- bodies,
- colliders,
- QueryPipelineMode::SweepTestWithNextPosition,
+ self.query_pipeline.update_with_generator(
+ query_pipeline_generators::SweptAabbWithNextPosition { bodies, colliders },
);
/*