aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/narrow_phase.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-11-02 15:07:50 +0100
committerCrozet Sébastien <developer@crozet.re>2020-11-02 15:08:46 +0100
commit01af6c09a786ec2d6475531a7dac873eeffa3a3e (patch)
tree2f7a31860f31771571535effe75db426f7eb63ea /src/geometry/narrow_phase.rs
parent4b8242b9c267a9412c88793575db37f79c544ca2 (diff)
downloadrapier-01af6c09a786ec2d6475531a7dac873eeffa3a3e.tar.gz
rapier-01af6c09a786ec2d6475531a7dac873eeffa3a3e.tar.bz2
rapier-01af6c09a786ec2d6475531a7dac873eeffa3a3e.zip
Fix simulation reaching different states when started from different snaphots.
Diffstat (limited to 'src/geometry/narrow_phase.rs')
-rw-r--r--src/geometry/narrow_phase.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/geometry/narrow_phase.rs b/src/geometry/narrow_phase.rs
index c1bd411..e3e52e5 100644
--- a/src/geometry/narrow_phase.rs
+++ b/src/geometry/narrow_phase.rs
@@ -424,7 +424,11 @@ impl NarrowPhase {
let (generator, workspace) =
dispatcher.dispatch(co1.shape().shape_type(), co2.shape().shape_type());
pair.generator = Some(generator);
- pair.generator_workspace = workspace;
+
+ // Keep the workspace if one already exists.
+ if pair.generator_workspace.is_none() {
+ pair.generator_workspace = workspace;
+ }
}
let context = ContactGenerationContext {