aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/solver_constraints.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-02-27 22:04:51 +0100
committerSébastien Crozet <sebastien@crozet.re>2022-03-20 21:49:16 +0100
commit2e6f133b95b614f13445722e54f28105d9664841 (patch)
tree364ce4cb1b73614fca0bd8f443385c73e7a64026 /src/dynamics/solver/solver_constraints.rs
parent28cc19d104d986db54d8725e68189070bef31a8a (diff)
downloadrapier-2e6f133b95b614f13445722e54f28105d9664841.tar.gz
rapier-2e6f133b95b614f13445722e54f28105d9664841.tar.bz2
rapier-2e6f133b95b614f13445722e54f28105d9664841.zip
Second round to fix the parallel solver.
Diffstat (limited to 'src/dynamics/solver/solver_constraints.rs')
-rw-r--r--src/dynamics/solver/solver_constraints.rs20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/dynamics/solver/solver_constraints.rs b/src/dynamics/solver/solver_constraints.rs
index b126f52..e780e58 100644
--- a/src/dynamics/solver/solver_constraints.rs
+++ b/src/dynamics/solver/solver_constraints.rs
@@ -6,7 +6,6 @@ use super::{WVelocityConstraint, WVelocityGroundConstraint};
use crate::data::ComponentSet;
use crate::dynamics::solver::categorization::{categorize_contacts, categorize_joints};
use crate::dynamics::solver::generic_velocity_ground_constraint::GenericVelocityGroundConstraint;
-use crate::dynamics::solver::AnyGenericVelocityConstraint;
use crate::dynamics::solver::GenericVelocityConstraint;
use crate::dynamics::{
solver::AnyVelocityConstraint, IntegrationParameters, JointGraphEdge, JointIndex,
@@ -19,7 +18,7 @@ use crate::math::Real;
use crate::math::SIMD_WIDTH;
use na::DVector;
-pub(crate) struct SolverConstraints<VelocityConstraint, GenVelocityConstraint> {
+pub(crate) struct SolverConstraints<VelocityConstraint> {
pub generic_jacobians: DVector<Real>,
pub not_ground_interactions: Vec<usize>,
pub ground_interactions: Vec<usize>,
@@ -28,12 +27,9 @@ pub(crate) struct SolverConstraints<VelocityConstraint, GenVelocityConstraint> {
pub interaction_groups: InteractionGroups,
pub ground_interaction_groups: InteractionGroups,
pub velocity_constraints: Vec<VelocityConstraint>,
- pub generic_velocity_constraints: Vec<GenVelocityConstraint>,
}
-impl<VelocityConstraint, GenVelocityConstraint>
- SolverConstraints<VelocityConstraint, GenVelocityConstraint>
-{
+impl<VelocityConstraint> SolverConstraints<VelocityConstraint> {
pub fn new() -> Self {
Self {
generic_jacobians: DVector::zeros(0),
@@ -44,7 +40,6 @@ impl<VelocityConstraint, GenVelocityConstraint>
interaction_groups: InteractionGroups::new(),
ground_interaction_groups: InteractionGroups::new(),
velocity_constraints: vec![],
- generic_velocity_constraints: vec![],
}
}
@@ -56,11 +51,10 @@ impl<VelocityConstraint, GenVelocityConstraint>
self.interaction_groups.clear();
self.ground_interaction_groups.clear();
self.velocity_constraints.clear();
- self.generic_velocity_constraints.clear();
}
}
-impl SolverConstraints<AnyVelocityConstraint, AnyGenericVelocityConstraint> {
+impl SolverConstraints<AnyVelocityConstraint> {
pub fn init_constraint_groups<Bodies>(
&mut self,
island_id: usize,
@@ -132,7 +126,6 @@ impl SolverConstraints<AnyVelocityConstraint, AnyGenericVelocityConstraint> {
+ ComponentSet<RigidBodyType>,
{
self.velocity_constraints.clear();
- self.generic_velocity_constraints.clear();
self.init_constraint_groups(
island_id,
@@ -247,7 +240,7 @@ impl SolverConstraints<AnyVelocityConstraint, AnyGenericVelocityConstraint> {
manifold,
bodies,
multibody_joints,
- &mut self.generic_velocity_constraints,
+ &mut self.velocity_constraints,
&mut self.generic_jacobians,
jacobian_id,
true,
@@ -277,7 +270,7 @@ impl SolverConstraints<AnyVelocityConstraint, AnyGenericVelocityConstraint> {
manifold,
bodies,
multibody_joints,
- &mut self.generic_velocity_constraints,
+ &mut self.velocity_constraints,
&mut self.generic_jacobians,
jacobian_id,
true,
@@ -340,7 +333,7 @@ impl SolverConstraints<AnyVelocityConstraint, AnyGenericVelocityConstraint> {
}
}
-impl SolverConstraints<AnyJointVelocityConstraint, ()> {
+impl SolverConstraints<AnyJointVelocityConstraint> {
pub fn init<Bodies>(
&mut self,
island_id: usize,
@@ -375,7 +368,6 @@ impl SolverConstraints<AnyJointVelocityConstraint, ()> {
);
self.velocity_constraints.clear();
- self.generic_velocity_constraints.clear();
self.interaction_groups.clear_groups();
self.interaction_groups.group_joints(