aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-11-25 16:00:02 +0100
committerCrozet Sébastien <developer@crozet.re>2020-11-25 16:28:49 +0100
commit2d4e14b869bd8d0b2eb6629b7b10719d657d2be8 (patch)
tree23620aebb55ba1132f29560f9ed1a168fa328f25 /src/pipeline
parent72eb66425d6875704a59c077e92c1fddc51cd881 (diff)
downloadrapier-2d4e14b869bd8d0b2eb6629b7b10719d657d2be8.tar.gz
rapier-2d4e14b869bd8d0b2eb6629b7b10719d657d2be8.tar.bz2
rapier-2d4e14b869bd8d0b2eb6629b7b10719d657d2be8.zip
Properly track some user-initiatied rigid-body modifications.
Diffstat (limited to 'src/pipeline')
-rw-r--r--src/pipeline/collision_pipeline.rs2
-rw-r--r--src/pipeline/physics_pipeline.rs8
2 files changed, 3 insertions, 7 deletions
diff --git a/src/pipeline/collision_pipeline.rs b/src/pipeline/collision_pipeline.rs
index 845bb86..188be27 100644
--- a/src/pipeline/collision_pipeline.rs
+++ b/src/pipeline/collision_pipeline.rs
@@ -47,7 +47,7 @@ impl CollisionPipeline {
proximity_pair_filter: Option<&dyn ProximityPairFilter>,
events: &dyn EventHandler,
) {
- bodies.maintain_active_set();
+ bodies.maintain(colliders);
self.broadphase_collider_pairs.clear();
broad_phase.update_aabbs(prediction_distance, bodies, colliders);
diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs
index 3a4851d..dc4b69f 100644
--- a/src/pipeline/physics_pipeline.rs
+++ b/src/pipeline/physics_pipeline.rs
@@ -74,9 +74,9 @@ impl PhysicsPipeline {
events: &dyn EventHandler,
) {
self.counters.step_started();
+ bodies.maintain(colliders);
broad_phase.maintain(colliders);
narrow_phase.maintain(colliders, bodies);
- bodies.maintain_active_set();
// Update kinematic bodies velocities.
// TODO: what is the best place for this? It should at least be
@@ -242,11 +242,7 @@ impl PhysicsPipeline {
rb.update_predicted_position(integration_parameters.dt());
}
- for handle in &rb.colliders {
- let collider = &mut colliders[*handle];
- collider.position = rb.position * collider.delta;
- collider.predicted_position = rb.predicted_position * collider.delta;
- }
+ rb.update_colliders_positions(colliders);
});
self.counters.stages.solver_time.pause();