aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics
diff options
context:
space:
mode:
Diffstat (limited to 'src/dynamics')
-rw-r--r--src/dynamics/rigid_body.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/dynamics/rigid_body.rs b/src/dynamics/rigid_body.rs
index b27b58e..2b07f37 100644
--- a/src/dynamics/rigid_body.rs
+++ b/src/dynamics/rigid_body.rs
@@ -817,6 +817,17 @@ impl RigidBody {
.integrate_forces_and_velocities(dt, &self.forces, &self.vels, &self.mprops)
}
+ /// Predicts the next position of this rigid-body, by integrating only its velocity
+ /// by a time of `dt`.
+ ///
+ /// The forces that were applied to this rigid-body since the last physics step will
+ /// be ignored by this function. Use [`Self::predict_position_using_velocity_and_forces`]
+ /// instead to take forces into account.
+ pub fn predict_position_using_velocity(&self, dt: Real) -> Isometry<Real> {
+ self.vels
+ .integrate(dt, &self.pos.position, &self.mprops.local_mprops.local_com)
+ }
+
pub(crate) fn update_world_mass_properties(&mut self) {
self.mprops.update_world_mass_properties(&self.pos.position);
}