diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-04-20 12:29:57 +0200 |
|---|---|---|
| committer | Sébastien Crozet <sebastien@crozet.re> | 2022-04-20 19:02:49 +0200 |
| commit | f108520b5a110cf59864abac7ac6a37e2b5a1dd9 (patch) | |
| tree | 3ed03fbce2128e5eb04ca29d25b42717987eb424 /src/dynamics/solver/parallel_island_solver.rs | |
| parent | 2b1374c596957ac8cabe085859be3b823a1ba0c6 (diff) | |
| download | rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.tar.gz rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.tar.bz2 rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.zip | |
Finalize refactoring
Diffstat (limited to 'src/dynamics/solver/parallel_island_solver.rs')
| -rw-r--r-- | src/dynamics/solver/parallel_island_solver.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/dynamics/solver/parallel_island_solver.rs b/src/dynamics/solver/parallel_island_solver.rs index 261c627..905de46 100644 --- a/src/dynamics/solver/parallel_island_solver.rs +++ b/src/dynamics/solver/parallel_island_solver.rs @@ -7,8 +7,7 @@ use crate::dynamics::solver::{ }; use crate::dynamics::{ IntegrationParameters, IslandManager, JointGraphEdge, JointIndex, MultibodyJointSet, - RigidBodyDamping, RigidBodyForces, RigidBodyIds, RigidBodyMassProps, RigidBodyPosition, - RigidBodyType, RigidBodyVelocity, + RigidBodySet, }; use crate::geometry::{ContactManifold, ContactManifoldIndex}; use na::DVector; @@ -316,15 +315,13 @@ impl ParallelIslandSolver { mj_lambdas.axpy(params.dt, &multibody.accelerations, 0.0); } } else { - let (ids, mprops, forces): (&RigidBodyIds, &RigidBodyMassProps, &RigidBodyForces) = - bodies.index_bundle(handle.0); - - let dvel = &mut velocity_solver.mj_lambdas[ids.active_set_offset]; + let rb = &bodies[*handle]; + let dvel = &mut velocity_solver.mj_lambdas[rb.ids.active_set_offset]; // NOTE: `dvel.angular` is actually storing angular velocity delta multiplied // by the square root of the inertia tensor: - dvel.angular += mprops.effective_world_inv_inertia_sqrt * forces.torque * params.dt; - dvel.linear += forces.force.component_mul(&mprops.effective_inv_mass) * params.dt; + dvel.angular += rb.mprops.effective_world_inv_inertia_sqrt * rb.forces.torque * params.dt; + dvel.linear += rb.forces.force.component_mul(&rb.mprops.effective_inv_mass) * params.dt; } } } |
