aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/rigid_body.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-06-01 14:55:50 +0200
committerCrozet Sébastien <developer@crozet.re>2021-06-01 14:55:50 +0200
commit5ef81cda406d796c5d188542b5bd9fbf4aefd4cf (patch)
tree283ac6079bd1b51396bfc228addb23e5c38c07cb /src/dynamics/rigid_body.rs
parent826ce5f014281fd04b7a18238f102f2591d0b255 (diff)
downloadrapier-5ef81cda406d796c5d188542b5bd9fbf4aefd4cf.tar.gz
rapier-5ef81cda406d796c5d188542b5bd9fbf4aefd4cf.tar.bz2
rapier-5ef81cda406d796c5d188542b5bd9fbf4aefd4cf.zip
Add velocity-based kinematic bodies
Diffstat (limited to 'src/dynamics/rigid_body.rs')
-rw-r--r--src/dynamics/rigid_body.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/dynamics/rigid_body.rs b/src/dynamics/rigid_body.rs
index 07e362d..63c2221 100644
--- a/src/dynamics/rigid_body.rs
+++ b/src/dynamics/rigid_body.rs
@@ -275,7 +275,7 @@ impl RigidBody {
///
/// A kinematic body can move freely but is not affected by forces.
pub fn is_kinematic(&self) -> bool {
- self.rb_type == RigidBodyType::Kinematic
+ self.rb_type.is_kinematic()
}
/// Is this rigid body static?
@@ -527,9 +527,9 @@ impl RigidBody {
}
/// If this rigid body is kinematic, sets its future orientation after the next timestep integration.
- pub fn set_next_kinematic_translation(&mut self, rotation: Rotation<Real>) {
+ pub fn set_next_kinematic_translation(&mut self, translation: Vector<Real>) {
if self.is_kinematic() {
- self.rb_pos.next_position.rotation = rotation;
+ self.rb_pos.next_position.translation = translation.into();
}
}
@@ -748,8 +748,13 @@ impl RigidBodyBuilder {
}
/// Initializes the builder of a new kinematic rigid body.
- pub fn new_kinematic() -> Self {
- Self::new(RigidBodyType::Kinematic)
+ pub fn new_kinematic_velocity_based() -> Self {
+ Self::new(RigidBodyType::KinematicVelocityBased)
+ }
+
+ /// Initializes the builder of a new kinematic rigid body.
+ pub fn new_kinematic_position_based() -> Self {
+ Self::new(RigidBodyType::KinematicPositionBased)
}
/// Initializes the builder of a new dynamic rigid body.