aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/narrow_phase.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-10-27 13:36:53 +0100
committerCrozet Sébastien <developer@crozet.re>2020-10-27 14:35:01 +0100
commitcb6a7ff9468347735ef63db9a9e38faeb476981b (patch)
tree49f3a20afbd5a3be4c3d9de25f630f6b353e6406 /src/geometry/narrow_phase.rs
parent3def91d62eba6ca2486fdaa386f78d82923c705a (diff)
downloadrapier-cb6a7ff9468347735ef63db9a9e38faeb476981b.tar.gz
rapier-cb6a7ff9468347735ef63db9a9e38faeb476981b.tar.bz2
rapier-cb6a7ff9468347735ef63db9a9e38faeb476981b.zip
Add solver flags for controlling whether or not some contacts should be taken into account by the constraints solver.
Diffstat (limited to 'src/geometry/narrow_phase.rs')
-rw-r--r--src/geometry/narrow_phase.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/geometry/narrow_phase.rs b/src/geometry/narrow_phase.rs
index 5bcdcdb..290d55f 100644
--- a/src/geometry/narrow_phase.rs
+++ b/src/geometry/narrow_phase.rs
@@ -15,7 +15,7 @@ use crate::geometry::proximity_detector::{
//};
use crate::geometry::{
BroadPhasePairEvent, ColliderGraphIndex, ColliderHandle, ContactEvent, ProximityEvent,
- ProximityPair, RemovedCollider,
+ ProximityPair, RemovedCollider, SolverFlags,
};
use crate::geometry::{ColliderSet, ContactManifold, ContactPair, InteractionGraph};
//#[cfg(feature = "simd-is-enabled")]
@@ -374,11 +374,18 @@ impl NarrowPhase {
pair.generator_workspace = workspace;
}
+ let solver_flags = if co1.solver_groups.test(co2.solver_groups) {
+ SolverFlags::COMPUTE_FORCES
+ } else {
+ SolverFlags::empty()
+ };
+
let context = ContactGenerationContext {
dispatcher: &dispatcher,
prediction_distance,
colliders,
pair,
+ solver_flags,
};
context