aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-03-26 18:16:27 +0100
committerCrozet Sébastien <developer@crozet.re>2021-03-26 18:16:27 +0100
commit97157c9423f3360c5e941b4065377689221014ae (patch)
tree707adf6e1feab0a9b7752d292baa161de790a8a1 /src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
parent326469a1df9d8502903d88fe8e47a67e9e7c9edd (diff)
downloadrapier-97157c9423f3360c5e941b4065377689221014ae.tar.gz
rapier-97157c9423f3360c5e941b4065377689221014ae.tar.bz2
rapier-97157c9423f3360c5e941b4065377689221014ae.zip
First working version of non-linear CCD based on single-substep motion-clamping.
Diffstat (limited to 'src/dynamics/solver/joint_constraint/revolute_position_constraint.rs')
-rw-r--r--src/dynamics/solver/joint_constraint/revolute_position_constraint.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs b/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
index 2da49e6..96391a2 100644
--- a/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
+++ b/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
@@ -145,23 +145,23 @@ impl RevolutePositionGroundConstraint {
let local_basis2;
if flipped {
- anchor1 = rb1.predicted_position * cparams.local_anchor2;
+ anchor1 = rb1.next_position * cparams.local_anchor2;
local_anchor2 = cparams.local_anchor1;
- axis1 = rb1.predicted_position * cparams.local_axis2;
+ axis1 = rb1.next_position * cparams.local_axis2;
local_axis2 = cparams.local_axis1;
basis1 = [
- rb1.predicted_position * cparams.basis2[0],
- rb1.predicted_position * cparams.basis2[1],
+ rb1.next_position * cparams.basis2[0],
+ rb1.next_position * cparams.basis2[1],
];
local_basis2 = cparams.basis1;
} else {
- anchor1 = rb1.predicted_position * cparams.local_anchor1;
+ anchor1 = rb1.next_position * cparams.local_anchor1;
local_anchor2 = cparams.local_anchor2;
- axis1 = rb1.predicted_position * cparams.local_axis1;
+ axis1 = rb1.next_position * cparams.local_axis1;
local_axis2 = cparams.local_axis2;
basis1 = [
- rb1.predicted_position * cparams.basis1[0],
- rb1.predicted_position * cparams.basis1[1],
+ rb1.next_position * cparams.basis1[0],
+ rb1.next_position * cparams.basis1[1],
];
local_basis2 = cparams.basis2;
};