aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/rigid_body_set.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-01-02 14:47:40 +0100
committerSébastien Crozet <developer@crozet.re>2022-01-02 16:58:36 +0100
commitf74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc (patch)
tree53ac492fea5942a7d466f58a0095f39505674ea4 /src/dynamics/rigid_body_set.rs
parentb45d4b5ac2b31856c15e802b31e288a58940cbf2 (diff)
downloadrapier-f74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc.tar.gz
rapier-f74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc.tar.bz2
rapier-f74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc.zip
Implement multibody joints and the new solver
Diffstat (limited to 'src/dynamics/rigid_body_set.rs')
-rw-r--r--src/dynamics/rigid_body_set.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/dynamics/rigid_body_set.rs b/src/dynamics/rigid_body_set.rs
index 607f7ff..34f7bdf 100644
--- a/src/dynamics/rigid_body_set.rs
+++ b/src/dynamics/rigid_body_set.rs
@@ -1,11 +1,11 @@
use crate::data::{Arena, ComponentSet, ComponentSetMut, ComponentSetOption};
use crate::dynamics::{
- IslandManager, RigidBodyActivation, RigidBodyColliders, RigidBodyDominance, RigidBodyHandle,
- RigidBodyType,
+ ImpulseJointSet, RigidBody, RigidBodyCcd, RigidBodyChanges, RigidBodyDamping, RigidBodyForces,
+ RigidBodyIds, RigidBodyMassProps, RigidBodyPosition, RigidBodyVelocity,
};
use crate::dynamics::{
- JointSet, RigidBody, RigidBodyCcd, RigidBodyChanges, RigidBodyDamping, RigidBodyForces,
- RigidBodyIds, RigidBodyMassProps, RigidBodyPosition, RigidBodyVelocity,
+ IslandManager, MultibodyJointSet, RigidBodyActivation, RigidBodyColliders, RigidBodyDominance,
+ RigidBodyHandle, RigidBodyType,
};
use crate::geometry::ColliderSet;
use std::ops::{Index, IndexMut};
@@ -132,13 +132,14 @@ impl RigidBodySet {
handle
}
- /// Removes a rigid-body, and all its attached colliders and joints, from these sets.
+ /// Removes a rigid-body, and all its attached colliders and impulse_joints, from these sets.
pub fn remove(
&mut self,
handle: RigidBodyHandle,
islands: &mut IslandManager,
colliders: &mut ColliderSet,
- joints: &mut JointSet,
+ impulse_joints: &mut ImpulseJointSet,
+ multibody_joints: &mut MultibodyJointSet,
) -> Option<RigidBody> {
let rb = self.bodies.remove(handle.0)?;
/*
@@ -154,9 +155,10 @@ impl RigidBodySet {
}
/*
- * Remove joints attached to this rigid-body.
+ * Remove impulse_joints attached to this rigid-body.
*/
- joints.remove_joints_attached_to_rigid_body(handle, islands, self);
+ impulse_joints.remove_joints_attached_to_rigid_body(handle, islands, self);
+ multibody_joints.remove_articulations_attached_to_rigid_body(handle, islands, self);
Some(rb)
}