aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2020-11-26 13:26:07 +0100
committerGitHub <noreply@github.com>2020-11-26 13:26:07 +0100
commit51b7bf9a529175d0c6ec42775f11f16bd7fe719a (patch)
tree68795351e593d961c119a86335fbba3e301da528 /src/pipeline
parentbdf2e15fdcff4c4757b4875354b2d6e8b9c6939d (diff)
parent340f614d32fbf32b48a63d1c381da67eec97b05d (diff)
downloadrapier-51b7bf9a529175d0c6ec42775f11f16bd7fe719a.tar.gz
rapier-51b7bf9a529175d0c6ec42775f11f16bd7fe719a.tar.bz2
rapier-51b7bf9a529175d0c6ec42775f11f16bd7fe719a.zip
Merge pull request #69 from dimforge/rigid_body_modifications
Track some user-initiated 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();