aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_constraint.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-04-20 12:29:57 +0200
committerSébastien Crozet <sebastien@crozet.re>2022-04-20 19:02:49 +0200
commitf108520b5a110cf59864abac7ac6a37e2b5a1dd9 (patch)
tree3ed03fbce2128e5eb04ca29d25b42717987eb424 /src/dynamics/solver/velocity_constraint.rs
parent2b1374c596957ac8cabe085859be3b823a1ba0c6 (diff)
downloadrapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.tar.gz
rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.tar.bz2
rapier-f108520b5a110cf59864abac7ac6a37e2b5a1dd9.zip
Finalize refactoring
Diffstat (limited to 'src/dynamics/solver/velocity_constraint.rs')
-rw-r--r--src/dynamics/solver/velocity_constraint.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/dynamics/solver/velocity_constraint.rs b/src/dynamics/solver/velocity_constraint.rs
index c854136..23d4b97 100644
--- a/src/dynamics/solver/velocity_constraint.rs
+++ b/src/dynamics/solver/velocity_constraint.rs
@@ -3,9 +3,7 @@ use crate::dynamics::solver::{
};
#[cfg(feature = "simd-is-enabled")]
use crate::dynamics::solver::{WVelocityConstraint, WVelocityGroundConstraint};
-use crate::dynamics::{
- IntegrationParameters, RigidBodyIds, RigidBodyMassProps, RigidBodySet, RigidBodyVelocity,
-};
+use crate::dynamics::{IntegrationParameters, RigidBodySet};
use crate::geometry::{ContactManifold, ContactManifoldIndex};
use crate::math::{Real, Vector, DIM, MAX_MANIFOLD_POINTS};
use crate::utils::{self, WAngularInertia, WBasis, WCross, WDot};
@@ -160,13 +158,14 @@ impl VelocityConstraint {
let handle1 = manifold.data.rigid_body1.unwrap();
let handle2 = manifold.data.rigid_body2.unwrap();
- let (ids1, vels1, mprops1): (&RigidBodyIds, &RigidBodyVelocity, &RigidBodyMassProps) =
- bodies.index_bundle(handle1.0);
- let (ids2, vels2, mprops2): (&RigidBodyIds, &RigidBodyVelocity, &RigidBodyMassProps) =
- bodies.index_bundle(handle2.0);
- let mj_lambda1 = ids1.active_set_offset;
- let mj_lambda2 = ids2.active_set_offset;
+ let rb1 = &bodies[handle1];
+ let (vels1, mprops1) = (&rb1.vels, &rb1.mprops);
+ let rb2 = &bodies[handle2];
+ let (vels2, mprops2) = (&rb2.vels, &rb2.mprops);
+
+ let mj_lambda1 = rb1.ids.active_set_offset;
+ let mj_lambda2 = rb2.ids.active_set_offset;
let force_dir1 = -manifold.data.normal;
#[cfg(feature = "dim2")]