ContactPairFilter: don't overwrite the effect of the solver groups.

This is more consistent with the fact that the effect of collision groups is not overwritten either.
This commit is contained in:
Crozet Sébastien
2020-10-27 16:48:05 +01:00
parent 24bd97636e
commit 3bfa407999
3 changed files with 18 additions and 17 deletions

View File

@@ -320,10 +320,10 @@ impl NarrowPhase {
if let Some(filter) = pair_filter {
let context = PairFilterContext {
collider1: co1,
collider2: co2,
rigid_body1: rb1,
rigid_body2: rb2,
collider1: co1,
collider2: co2,
};
if !filter.filter_proximity_pair(&context) {
@@ -389,12 +389,12 @@ impl NarrowPhase {
return;
}
let solver_flags = if let Some(filter) = pair_filter {
let mut solver_flags = if let Some(filter) = pair_filter {
let context = PairFilterContext {
collider1: co1,
collider2: co2,
rigid_body1: rb1,
rigid_body2: rb2,
collider1: co1,
collider2: co2,
};
if let Some(solver_flags) = filter.filter_contact_pair(&context) {
@@ -404,13 +404,13 @@ impl NarrowPhase {
return;
}
} else {
if co1.solver_groups.test(co2.solver_groups) {
SolverFlags::COMPUTE_IMPULSES
} else {
SolverFlags::empty()
}
SolverFlags::COMPUTE_IMPULSES
};
if !co1.solver_groups.test(co2.solver_groups) {
solver_flags.remove(SolverFlags::COMPUTE_IMPULSES);
}
let dispatcher = DefaultContactDispatcher;
if pair.generator.is_none() {
// We need a redispatch for this generator.