From 9bf1321f8f1d2e116f44c2461a53f302c4ef4171 Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Tue, 8 Dec 2020 17:31:49 +0100 Subject: Outsource the contact manifold, SAT, and some shapes. --- src/dynamics/solver/categorization.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/dynamics/solver/categorization.rs') diff --git a/src/dynamics/solver/categorization.rs b/src/dynamics/solver/categorization.rs index 9ddf791..d0a2d0f 100644 --- a/src/dynamics/solver/categorization.rs +++ b/src/dynamics/solver/categorization.rs @@ -12,8 +12,8 @@ pub(crate) fn categorize_position_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() { match manifold.kinematics.category { @@ -38,8 +38,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) -- cgit From 7545e06cb15d6e851e5dee7d3761901e5d40f271 Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Wed, 30 Dec 2020 12:03:25 +0100 Subject: Attempt to combine the position constraints initialization with the velocity constraints initialization. --- src/dynamics/solver/categorization.rs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'src/dynamics/solver/categorization.rs') diff --git a/src/dynamics/solver/categorization.rs b/src/dynamics/solver/categorization.rs index d0a2d0f..69fe7df 100644 --- a/src/dynamics/solver/categorization.rs +++ b/src/dynamics/solver/categorization.rs @@ -5,9 +5,7 @@ pub(crate) fn categorize_position_contacts( bodies: &RigidBodySet, manifolds: &[&mut ContactManifold], manifold_indices: &[ContactManifoldIndex], - out_point_point_ground: &mut Vec, out_plane_point_ground: &mut Vec, - out_point_point: &mut Vec, out_plane_point: &mut Vec, ) { for manifold_i in manifold_indices { @@ -16,15 +14,9 @@ pub(crate) fn categorize_position_contacts( let rb2 = &bodies[manifold.data.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), - } + 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), - } + out_plane_point.push(*manifold_i) } } } -- cgit From 348a339fe350aff6d885cb5a857a0bb6afbea990 Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Thu, 31 Dec 2020 10:02:51 +0100 Subject: Remove code related to point-point kinematics. --- src/dynamics/solver/categorization.rs | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) (limited to 'src/dynamics/solver/categorization.rs') diff --git a/src/dynamics/solver/categorization.rs b/src/dynamics/solver/categorization.rs index 69fe7df..c920b69 100644 --- a/src/dynamics/solver/categorization.rs +++ b/src/dynamics/solver/categorization.rs @@ -1,27 +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_plane_point_ground: &mut Vec, - out_plane_point: &mut Vec, -) { - for manifold_i in manifold_indices { - let manifold = &manifolds[*manifold_i]; - let rb1 = &bodies[manifold.data.body_pair.body1]; - let rb2 = &bodies[manifold.data.body_pair.body2]; - - if !rb1.is_dynamic() || !rb2.is_dynamic() { - out_plane_point_ground.push(*manifold_i) - } else { - 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], -- cgit