Disallow contacts between two colliders attached to the same parent.

This commit is contained in:
Sébastien Crozet
2020-08-31 19:04:32 +02:00
parent ce26fe1077
commit 03b437f278
3 changed files with 14 additions and 2 deletions

View File

@@ -10,3 +10,10 @@ debug = false
codegen-units = 1
#opt-level = 1
#lto = true
#[profile.dev.package.rapier3d]
#opt-level = 3
#
#[profile.dev.package.kiss3d]
#opt-level = 3

View File

@@ -96,7 +96,7 @@ impl NarrowPhase {
}
// We have to manage the fact that one other collider will
// hive its graph index changed because of the node's swap-remove.
// have its graph index changed because of the node's swap-remove.
if let Some(replacement) = self
.proximity_graph
.remove_node(proximity_graph_id)
@@ -129,6 +129,11 @@ impl NarrowPhase {
if let (Some(co1), Some(co2)) =
colliders.get2_mut_internal(pair.collider1, pair.collider2)
{
if co1.parent == co2.parent {
// Same parents. Ignore collisions.
continue;
}
if co1.is_sensor() || co2.is_sensor() {
let gid1 = co1.proximity_graph_index;
let gid2 = co2.proximity_graph_index;