diff options
| author | Crozet Sébastien <developer@crozet.re> | 2020-12-30 12:03:25 +0100 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2020-12-30 12:03:25 +0100 |
| commit | 7545e06cb15d6e851e5dee7d3761901e5d40f271 (patch) | |
| tree | 36fa3373dfdfa85119f70d1b54d52dd373954684 /src/dynamics/solver/position_solver.rs | |
| parent | 5876a262daa3b6544f132e6654923c2bfabe35d9 (diff) | |
| download | rapier-7545e06cb15d6e851e5dee7d3761901e5d40f271.tar.gz rapier-7545e06cb15d6e851e5dee7d3761901e5d40f271.tar.bz2 rapier-7545e06cb15d6e851e5dee7d3761901e5d40f271.zip | |
Attempt to combine the position constraints initialization with the velocity constraints initialization.
Diffstat (limited to 'src/dynamics/solver/position_solver.rs')
| -rw-r--r-- | src/dynamics/solver/position_solver.rs | 60 |
1 files changed, 3 insertions, 57 deletions
diff --git a/src/dynamics/solver/position_solver.rs b/src/dynamics/solver/position_solver.rs index be70d74..d610f3a 100644 --- a/src/dynamics/solver/position_solver.rs +++ b/src/dynamics/solver/position_solver.rs @@ -33,13 +33,9 @@ impl PositionSolverJointPart { } pub(crate) struct PositionSolverPart { - pub point_point_manifolds: Vec<ContactManifoldIndex>, pub plane_point_manifolds: Vec<ContactManifoldIndex>, - pub point_point_ground_manifolds: Vec<ContactManifoldIndex>, pub plane_point_ground_manifolds: Vec<ContactManifoldIndex>, - pub point_point_groups: InteractionGroups, pub plane_point_groups: InteractionGroups, - pub point_point_ground_groups: InteractionGroups, pub plane_point_ground_groups: InteractionGroups, pub constraints: Vec<AnyPositionConstraint>, } @@ -47,13 +43,9 @@ pub(crate) struct PositionSolverPart { impl PositionSolverPart { pub fn new() -> Self { Self { - point_point_manifolds: Vec::new(), plane_point_manifolds: Vec::new(), - point_point_ground_manifolds: Vec::new(), plane_point_ground_manifolds: Vec::new(), - point_point_groups: InteractionGroups::new(), plane_point_groups: InteractionGroups::new(), - point_point_ground_groups: InteractionGroups::new(), plane_point_ground_groups: InteractionGroups::new(), constraints: Vec::new(), } @@ -62,7 +54,7 @@ impl PositionSolverPart { pub(crate) struct PositionSolver { positions: Vec<Isometry<f32>>, - part: PositionSolverPart, + pub part: PositionSolverPart, joint_part: PositionSolverJointPart, } @@ -85,8 +77,8 @@ impl PositionSolver { joints: &[JointGraphEdge], joint_constraint_indices: &[JointIndex], ) { - self.part - .init_constraints(island_id, params, bodies, manifolds, manifold_indices); + // self.part + // .init_constraints(island_id, params, bodies, manifolds, manifold_indices); self.joint_part.init_constraints( island_id, params, @@ -134,27 +126,16 @@ impl PositionSolverPart { manifolds_all: &[&mut ContactManifold], manifold_indices: &[ContactManifoldIndex], ) { - self.point_point_ground_manifolds.clear(); self.plane_point_ground_manifolds.clear(); - self.point_point_manifolds.clear(); self.plane_point_manifolds.clear(); categorize_position_contacts( bodies, manifolds_all, manifold_indices, - &mut self.point_point_ground_manifolds, &mut self.plane_point_ground_manifolds, - &mut self.point_point_manifolds, &mut self.plane_point_manifolds, ); - self.point_point_groups.clear_groups(); - self.point_point_groups.group_manifolds( - island_id, - bodies, - manifolds_all, - &self.point_point_manifolds, - ); self.plane_point_groups.clear_groups(); self.plane_point_groups.group_manifolds( island_id, @@ -163,13 +144,6 @@ impl PositionSolverPart { &self.plane_point_manifolds, ); - self.point_point_ground_groups.clear_groups(); - self.point_point_ground_groups.group_manifolds( - island_id, - bodies, - manifolds_all, - &self.point_point_ground_manifolds, - ); self.plane_point_ground_groups.clear_groups(); self.plane_point_ground_groups.group_manifolds( island_id, @@ -189,13 +163,6 @@ impl PositionSolverPart { params, bodies, manifolds_all, - &self.point_point_groups.grouped_interactions, - &mut self.constraints, - ); - compute_grouped_constraints( - params, - bodies, - manifolds_all, &self.plane_point_groups.grouped_interactions, &mut self.constraints, ); @@ -204,13 +171,6 @@ impl PositionSolverPart { params, bodies, manifolds_all, - &self.point_point_groups.nongrouped_interactions, - &mut self.constraints, - ); - compute_nongrouped_constraints( - params, - bodies, - manifolds_all, &self.plane_point_groups.nongrouped_interactions, &mut self.constraints, ); @@ -224,13 +184,6 @@ impl PositionSolverPart { params, bodies, manifolds_all, - &self.point_point_ground_groups.grouped_interactions, - &mut self.constraints, - ); - compute_grouped_ground_constraints( - params, - bodies, - manifolds_all, &self.plane_point_ground_groups.grouped_interactions, &mut self.constraints, ); @@ -239,13 +192,6 @@ impl PositionSolverPart { params, bodies, manifolds_all, - &self.point_point_ground_groups.nongrouped_interactions, - &mut self.constraints, - ); - compute_nongrouped_ground_constraints( - params, - bodies, - manifolds_all, &self.plane_point_ground_groups.nongrouped_interactions, &mut self.constraints, ); |
