aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/testbed.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-04-26 17:59:25 +0200
committerCrozet Sébastien <developer@crozet.re>2021-04-26 18:00:50 +0200
commitc32da78f2a6014c491aa3e975fb83ddb7c80610e (patch)
treeedd20f23270baee1577c486f78d825eb93ea0de0 /src_testbed/testbed.rs
parentaaf80bfa872c6f29b248cab8eb5658ab0d73cb4a (diff)
downloadrapier-c32da78f2a6014c491aa3e975fb83ddb7c80610e.tar.gz
rapier-c32da78f2a6014c491aa3e975fb83ddb7c80610e.tar.bz2
rapier-c32da78f2a6014c491aa3e975fb83ddb7c80610e.zip
Split rigid-bodies and colliders into multiple components
Diffstat (limited to 'src_testbed/testbed.rs')
-rw-r--r--src_testbed/testbed.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs
index 0e04de6..d885c8a 100644
--- a/src_testbed/testbed.rs
+++ b/src_testbed/testbed.rs
@@ -19,7 +19,7 @@ use kiss3d::text::Font;
use kiss3d::window::{State, Window};
use na::{self, Point2, Point3, Vector3};
use rapier::dynamics::{
- ActivationStatus, IntegrationParameters, JointSet, RigidBodyHandle, RigidBodySet,
+ IntegrationParameters, JointSet, RigidBodyActivation, RigidBodyHandle, RigidBodySet,
};
use rapier::geometry::{ColliderHandle, ColliderSet, NarrowPhase};
#[cfg(feature = "dim3")]
@@ -245,7 +245,7 @@ impl Testbed {
colliders: ColliderSet,
joints: JointSet,
gravity: Vector<f32>,
- hooks: impl PhysicsHooks + 'static,
+ hooks: impl PhysicsHooks<RigidBodySet, ColliderSet> + 'static,
) {
self.harness
.set_world_with_params(bodies, colliders, joints, gravity, hooks);
@@ -586,6 +586,7 @@ impl Testbed {
for to_delete in &colliders[..num_to_delete] {
self.harness.physics.colliders.remove(
to_delete[0],
+ &mut self.harness.physics.islands,
&mut self.harness.physics.bodies,
true,
);
@@ -605,6 +606,7 @@ impl Testbed {
for to_delete in &dynamic_bodies[..num_to_delete] {
self.harness.physics.bodies.remove(
*to_delete,
+ &mut self.harness.physics.islands,
&mut self.harness.physics.colliders,
&mut self.harness.physics.joints,
);
@@ -617,6 +619,7 @@ impl Testbed {
for to_delete in &joints[..num_to_delete] {
self.harness.physics.joints.remove(
*to_delete,
+ &mut self.harness.physics.islands,
&mut self.harness.physics.bodies,
true,
);
@@ -1205,13 +1208,13 @@ impl State for Testbed {
!= self.state.flags.contains(TestbedStateFlags::SLEEP)
{
if self.state.flags.contains(TestbedStateFlags::SLEEP) {
- for (_, mut body) in self.harness.physics.bodies.iter_mut() {
- body.activation.threshold = ActivationStatus::default_threshold();
+ for (_, body) in self.harness.physics.bodies.iter_mut() {
+ body.activation_mut().threshold = RigidBodyActivation::default_threshold();
}
} else {
- for (_, mut body) in self.harness.physics.bodies.iter_mut() {
+ for (_, body) in self.harness.physics.bodies.iter_mut() {
body.wake_up(true);
- body.activation.threshold = -1.0;
+ body.activation_mut().threshold = -1.0;
}
}
}