diff options
| author | Sébastien Crozet <developer@crozet.re> | 2020-11-26 13:26:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-26 13:26:07 +0100 |
| commit | 51b7bf9a529175d0c6ec42775f11f16bd7fe719a (patch) | |
| tree | 68795351e593d961c119a86335fbba3e301da528 /src/pipeline | |
| parent | bdf2e15fdcff4c4757b4875354b2d6e8b9c6939d (diff) | |
| parent | 340f614d32fbf32b48a63d1c381da67eec97b05d (diff) | |
| download | rapier-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.rs | 2 | ||||
| -rw-r--r-- | src/pipeline/physics_pipeline.rs | 8 |
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(); |
