aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/joint/impulse_joint
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-04-20 12:29:57 +0200
committerSébastien Crozet <sebastien@crozet.re>2022-04-20 19:02:49 +0200
commitf108520b5a110cf59864abac7ac6a37e2b5a1dd9 (patch)
tree3ed03fbce2128e5eb04ca29d25b42717987eb424 /src/dynamics/joint/impulse_joint
parent2b1374c596957ac8cabe085859be3b823a1ba0c6 (diff)
downloadrapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.tar.gz
rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.tar.bz2
rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.zip
Finalize refactoring
Diffstat (limited to 'src/dynamics/joint/impulse_joint')
-rw-r--r--src/dynamics/joint/impulse_joint/impulse_joint_set.rs30
1 files changed, 9 insertions, 21 deletions
diff --git a/src/dynamics/joint/impulse_joint/impulse_joint_set.rs b/src/dynamics/joint/impulse_joint/impulse_joint_set.rs
index 6b6d980..1cd177d 100644
--- a/src/dynamics/joint/impulse_joint/impulse_joint_set.rs
+++ b/src/dynamics/joint/impulse_joint/impulse_joint_set.rs
@@ -3,10 +3,7 @@ use crate::geometry::{InteractionGraph, RigidBodyGraphIndex, TemporaryInteractio
use crate::data::arena::Arena;
use crate::data::Coarena;
-use crate::dynamics::{
- GenericJoint, IslandManager, RigidBodyActivation, RigidBodyHandle, RigidBodyIds, RigidBodySet,
- RigidBodyType,
-};
+use crate::dynamics::{GenericJoint, IslandManager, RigidBodyHandle, RigidBodySet};
/// The unique identifier of a joint added to the joint set.
/// The unique identifier of a collider added to a collider set.
@@ -230,26 +227,17 @@ impl ImpulseJointSet {
// FIXME: don't iterate through all the interactions.
for (i, edge) in self.joint_graph.graph.edges.iter().enumerate() {
let joint = &edge.weight;
+ let rb1 = &bodies[joint.body1];
+ let rb2 = &bodies[joint.body2];
- let (status1, activation1, ids1): (
- &RigidBodyType,
- &RigidBodyActivation,
- &RigidBodyIds,
- ) = bodies.index_bundle(joint.body1.0);
- let (status2, activation2, ids2): (
- &RigidBodyType,
- &RigidBodyActivation,
- &RigidBodyIds,
- ) = bodies.index_bundle(joint.body2.0);
-
- if (status1.is_dynamic() || status2.is_dynamic())
- && (!status1.is_dynamic() || !activation1.sleeping)
- && (!status2.is_dynamic() || !activation2.sleeping)
+ if (rb1.is_dynamic() || rb2.is_dynamic())
+ && (!rb1.is_dynamic() || !rb1.is_sleeping())
+ && (!rb2.is_dynamic() || !rb2.is_sleeping())
{
- let island_index = if !status1.is_dynamic() {
- ids2.active_island_id
+ let island_index = if !rb1.is_dynamic() {
+ rb2.ids.active_island_id
} else {
- ids1.active_island_id
+ rb1.ids.active_island_id
};
out[island_index].push(i);