aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/categorization.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2024-01-22 21:45:40 +0100
committerGitHub <noreply@github.com>2024-01-22 21:45:40 +0100
commitaef85ec2554476485dbf3de5f01257ced22bfe2f (patch)
tree0fbfae9a523835079c9a362a93a69f2e78ccca25 /src/dynamics/solver/categorization.rs
parent9ac3503b879f95fcdf5414470ba5aedf195b9a97 (diff)
parent6cb727390a6172e539b3f0ef91c2861457495258 (diff)
downloadrapier-aef85ec2554476485dbf3de5f01257ced22bfe2f.tar.gz
rapier-aef85ec2554476485dbf3de5f01257ced22bfe2f.tar.bz2
rapier-aef85ec2554476485dbf3de5f01257ced22bfe2f.zip
Merge pull request #579 from dimforge/joints-improvements
Feat: implement a "small-steps" velocity-based constraints solver + joint improvements
Diffstat (limited to 'src/dynamics/solver/categorization.rs')
-rw-r--r--src/dynamics/solver/categorization.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/dynamics/solver/categorization.rs b/src/dynamics/solver/categorization.rs
index d110971..cef9c9e 100644
--- a/src/dynamics/solver/categorization.rs
+++ b/src/dynamics/solver/categorization.rs
@@ -6,10 +6,10 @@ pub(crate) fn categorize_contacts(
multibody_joints: &MultibodyJointSet,
manifolds: &[&mut ContactManifold],
manifold_indices: &[ContactManifoldIndex],
- out_ground: &mut Vec<ContactManifoldIndex>,
- out_not_ground: &mut Vec<ContactManifoldIndex>,
- out_generic_ground: &mut Vec<ContactManifoldIndex>,
- out_generic_not_ground: &mut Vec<ContactManifoldIndex>,
+ out_one_body: &mut Vec<ContactManifoldIndex>,
+ out_two_body: &mut Vec<ContactManifoldIndex>,
+ out_generic_one_body: &mut Vec<ContactManifoldIndex>,
+ out_generic_two_body: &mut Vec<ContactManifoldIndex>,
) {
for manifold_i in manifold_indices {
let manifold = &manifolds[*manifold_i];
@@ -26,14 +26,14 @@ pub(crate) fn categorize_contacts(
.is_some()
{
if manifold.data.relative_dominance != 0 {
- out_generic_ground.push(*manifold_i);
+ out_generic_one_body.push(*manifold_i);
} else {
- out_generic_not_ground.push(*manifold_i);
+ out_generic_two_body.push(*manifold_i);
}
} else if manifold.data.relative_dominance != 0 {
- out_ground.push(*manifold_i)
+ out_one_body.push(*manifold_i)
} else {
- out_not_ground.push(*manifold_i)
+ out_two_body.push(*manifold_i)
}
}
}
@@ -43,10 +43,10 @@ pub(crate) fn categorize_joints(
multibody_joints: &MultibodyJointSet,
impulse_joints: &[JointGraphEdge],
joint_indices: &[JointIndex],
- ground_joints: &mut Vec<JointIndex>,
- nonground_joints: &mut Vec<JointIndex>,
- generic_ground_joints: &mut Vec<JointIndex>,
- generic_nonground_joints: &mut Vec<JointIndex>,
+ one_body_joints: &mut Vec<JointIndex>,
+ two_body_joints: &mut Vec<JointIndex>,
+ generic_one_body_joints: &mut Vec<JointIndex>,
+ generic_two_body_joints: &mut Vec<JointIndex>,
) {
for joint_i in joint_indices {
let joint = &impulse_joints[*joint_i].weight;
@@ -57,14 +57,14 @@ pub(crate) fn categorize_joints(
|| multibody_joints.rigid_body_link(joint.body2).is_some()
{
if !rb1.is_dynamic() || !rb2.is_dynamic() {
- generic_ground_joints.push(*joint_i);
+ generic_one_body_joints.push(*joint_i);
} else {
- generic_nonground_joints.push(*joint_i);
+ generic_two_body_joints.push(*joint_i);
}
} else if !rb1.is_dynamic() || !rb2.is_dynamic() {
- ground_joints.push(*joint_i);
+ one_body_joints.push(*joint_i);
} else {
- nonground_joints.push(*joint_i);
+ two_body_joints.push(*joint_i);
}
}
}