aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/geometry/narrow_phase.rs11
-rw-r--r--src/pipeline/physics_pipeline.rs29
2 files changed, 25 insertions, 15 deletions
diff --git a/src/geometry/narrow_phase.rs b/src/geometry/narrow_phase.rs
index 843015e..f7389a8 100644
--- a/src/geometry/narrow_phase.rs
+++ b/src/geometry/narrow_phase.rs
@@ -673,12 +673,6 @@ impl NarrowPhase {
}
}
}
-
- println!(
- "Delete events: {}, add events: {}",
- num_delete,
- broad_phase_events.len() - num_delete
- );
}
pub(crate) fn compute_intersections<Bodies, Colliders>(
@@ -826,9 +820,6 @@ impl NarrowPhase {
}
let query_dispatcher = &*self.query_dispatcher;
- println!("num threads: {}", rayon::current_num_threads());
- let t0 = instant::now();
- println!("Num contacts: {}", self.contact_graph.graph.edges.len());
// TODO: don't iterate on all the edges.
par_iter_mut!(&mut self.contact_graph.graph.edges).for_each(|edge| {
@@ -1032,8 +1023,6 @@ impl NarrowPhase {
pair.has_any_active_contact = has_any_active_contact;
}
});
-
- println!("NF time: {}", instant::now() - t0);
}
/// Retrieve all the interactions with at least one contact point, happening between two active bodies.
diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs
index 0ac734a..85c1b26 100644
--- a/src/pipeline/physics_pipeline.rs
+++ b/src/pipeline/physics_pipeline.rs
@@ -135,9 +135,6 @@ impl PhysicsPipeline {
events,
);
}
- println!("A time: {}", instant::now() - t0);
- let t0 = instant::now();
- println!("Num BF events: {}", self.broad_phase_events.len());
narrow_phase.register_pairs(
Some(islands),
colliders,
@@ -145,7 +142,6 @@ impl PhysicsPipeline {
&self.broad_phase_events,
events,
);
- println!("B time: {}", instant::now() - t0);
narrow_phase.compute_contacts(
integration_parameters.prediction_distance,
@@ -263,6 +259,31 @@ impl PhysicsPipeline {
&mut manifolds,
&mut self.manifold_indices,
);
+
+ let error: Real = manifolds
+ .iter()
+ .flat_map(|m| m.data.solver_contacts.iter())
+ .map(|ctct| ctct.dist)
+ .filter(|e| *e < 0.0)
+ .map(|e| e.abs())
+ .sum();
+ let mut max_error = 0.0;
+ for e in manifolds
+ .iter()
+ .flat_map(|m| m.data.solver_contacts.iter())
+ .map(|ctct| ctct.dist)
+ .filter(|e| *e < 0.0)
+ .map(|e| e.abs())
+ {
+ if e > max_error {
+ max_error = e;
+ }
+ }
+
+ println!(
+ ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Penetration errors: {}",
+ error
+ );
joints.select_active_interactions(islands, bodies, &mut self.joint_constraint_indices);
self.counters.stages.update_time.resume();