aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/categorization.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/dynamics/solver/categorization.rs')
-rw-r--r--src/dynamics/solver/categorization.rs36
1 files changed, 4 insertions, 32 deletions
diff --git a/src/dynamics/solver/categorization.rs b/src/dynamics/solver/categorization.rs
index 9ddf791..c920b69 100644
--- a/src/dynamics/solver/categorization.rs
+++ b/src/dynamics/solver/categorization.rs
@@ -1,35 +1,7 @@
use crate::dynamics::{JointGraphEdge, JointIndex, RigidBodySet};
-use crate::geometry::{ContactManifold, ContactManifoldIndex, KinematicsCategory};
+use crate::geometry::{ContactManifold, ContactManifoldIndex};
-pub(crate) fn categorize_position_contacts(
- bodies: &RigidBodySet,
- manifolds: &[&mut ContactManifold],
- manifold_indices: &[ContactManifoldIndex],
- out_point_point_ground: &mut Vec<ContactManifoldIndex>,
- out_plane_point_ground: &mut Vec<ContactManifoldIndex>,
- out_point_point: &mut Vec<ContactManifoldIndex>,
- out_plane_point: &mut Vec<ContactManifoldIndex>,
-) {
- for manifold_i in manifold_indices {
- let manifold = &manifolds[*manifold_i];
- let rb1 = &bodies[manifold.body_pair.body1];
- let rb2 = &bodies[manifold.body_pair.body2];
-
- if !rb1.is_dynamic() || !rb2.is_dynamic() {
- match manifold.kinematics.category {
- KinematicsCategory::PointPoint => out_point_point_ground.push(*manifold_i),
- KinematicsCategory::PlanePoint => out_plane_point_ground.push(*manifold_i),
- }
- } else {
- match manifold.kinematics.category {
- KinematicsCategory::PointPoint => out_point_point.push(*manifold_i),
- KinematicsCategory::PlanePoint => out_plane_point.push(*manifold_i),
- }
- }
- }
-}
-
-pub(crate) fn categorize_velocity_contacts(
+pub(crate) fn categorize_contacts(
bodies: &RigidBodySet,
manifolds: &[&mut ContactManifold],
manifold_indices: &[ContactManifoldIndex],
@@ -38,8 +10,8 @@ pub(crate) fn categorize_velocity_contacts(
) {
for manifold_i in manifold_indices {
let manifold = &manifolds[*manifold_i];
- let rb1 = &bodies[manifold.body_pair.body1];
- let rb2 = &bodies[manifold.body_pair.body2];
+ let rb1 = &bodies[manifold.data.body_pair.body1];
+ let rb2 = &bodies[manifold.data.body_pair.body2];
if !rb1.is_dynamic() || !rb2.is_dynamic() {
out_ground.push(*manifold_i)