Rename RigidBodyBuilder::principal_inertia -> principal_angular_inertia for clarity.

This commit is contained in:
Crozet Sébastien
2020-12-01 15:04:30 +01:00
parent 29d4814266
commit a072d4056a
9 changed files with 41 additions and 16 deletions

View File

@@ -1,3 +1,7 @@
## v0.4.1
- The `RigidBodyBuilder::principal_inertia` method has been deprecated and renamed to
`principal_angular_inertia` for clarity.
## v0.4.0 ## v0.4.0
- The rigid-body `linvel`, `angvel`, and `position` fields are no longer public. Access using - The rigid-body `linvel`, `angvel`, and `position` fields are no longer public. Access using
their corresponding getters/setters. For example: `rb.linvel()`, `rb.set_linvel(vel, true)`. their corresponding getters/setters. For example: `rb.linvel()`, `rb.set_linvel(vel, true)`.

View File

@@ -16,7 +16,7 @@ mod damping2;
mod debug_box_ball2; mod debug_box_ball2;
mod heightfield2; mod heightfield2;
mod joints2; mod joints2;
mod locked_rotation2; mod locked_rotations2;
mod platform2; mod platform2;
mod pyramid2; mod pyramid2;
mod restitution2; mod restitution2;
@@ -60,7 +60,7 @@ pub fn main() {
("Damping", damping2::init_world), ("Damping", damping2::init_world),
("Heightfield", heightfield2::init_world), ("Heightfield", heightfield2::init_world),
("Joints", joints2::init_world), ("Joints", joints2::init_world),
("Locked rotations", locked_rotation2::init_world), ("Locked rotations", locked_rotations2::init_world),
("Platform", platform2::init_world), ("Platform", platform2::init_world),
("Pyramid", pyramid2::init_world), ("Pyramid", pyramid2::init_world),
("Restitution", restitution2::init_world), ("Restitution", restitution2::init_world),

View File

@@ -26,7 +26,7 @@ mod fountain3;
mod heightfield3; mod heightfield3;
mod joints3; mod joints3;
mod keva3; mod keva3;
mod locked_rotation3; mod locked_rotations3;
mod platform3; mod platform3;
mod primitives3; mod primitives3;
mod restitution3; mod restitution3;
@@ -79,7 +79,7 @@ pub fn main() {
("Domino", domino3::init_world), ("Domino", domino3::init_world),
("Heightfield", heightfield3::init_world), ("Heightfield", heightfield3::init_world),
("Joints", joints3::init_world), ("Joints", joints3::init_world),
("Locked rotations", locked_rotation3::init_world), ("Locked rotations", locked_rotations3::init_world),
("Platform", platform3::init_world), ("Platform", platform3::init_world),
("Restitution", restitution3::init_world), ("Restitution", restitution3::init_world),
("Stacks", stacks3::init_world), ("Stacks", stacks3::init_world),

View File

@@ -1,4 +1,4 @@
use na::{Isometry3, Point3, Vector3}; use na::Point3;
use rapier3d::dynamics::{JointSet, RigidBodyBuilder, RigidBodySet}; use rapier3d::dynamics::{JointSet, RigidBodyBuilder, RigidBodySet};
use rapier3d::geometry::{ColliderBuilder, ColliderSet}; use rapier3d::geometry::{ColliderBuilder, ColliderSet};
use rapier_testbed3d::Testbed; use rapier_testbed3d::Testbed;

View File

@@ -24,7 +24,7 @@ pub fn init_world(testbed: &mut Testbed) {
.friction(0.15) .friction(0.15)
// .restitution(0.5) // .restitution(0.5)
.build(); .build();
let mut ground_collider_handle = colliders.insert(collider, ground_handle, &mut bodies); colliders.insert(collider, ground_handle, &mut bodies);
/* /*
* Rolling ball * Rolling ball
@@ -60,7 +60,7 @@ pub fn init_world(testbed: &mut Testbed) {
extra_colliders.push(new_ball_collider_handle); extra_colliders.push(new_ball_collider_handle);
// Snap the ball velocity or restore it. // Snap the ball velocity or restore it.
let mut ball = physics.bodies.get_mut(ball_handle).unwrap(); let ball = physics.bodies.get_mut(ball_handle).unwrap();
if step == snapped_frame { if step == snapped_frame {
linvel = *ball.linvel(); linvel = *ball.linvel();

View File

@@ -24,7 +24,7 @@ pub fn init_world(testbed: &mut Testbed) {
.friction(0.15) .friction(0.15)
// .restitution(0.5) // .restitution(0.5)
.build(); .build();
let mut ground_collider_handle = colliders.insert(collider, ground_handle, &mut bodies); colliders.insert(collider, ground_handle, &mut bodies);
/* /*
* Rolling ball * Rolling ball
@@ -44,11 +44,11 @@ pub fn init_world(testbed: &mut Testbed) {
let mut step = 0; let mut step = 0;
let snapped_frame = 51; let snapped_frame = 51;
testbed.add_callback(move |window, physics, _, graphics, _| { testbed.add_callback(move |_, physics, _, _, _| {
step += 1; step += 1;
// Snap the ball velocity or restore it. // Snap the ball velocity or restore it.
let mut ball = physics.bodies.get_mut(ball_handle).unwrap(); let ball = physics.bodies.get_mut(ball_handle).unwrap();
if step == snapped_frame { if step == snapped_frame {
linvel = *ball.linvel(); linvel = *ball.linvel();

View File

@@ -33,7 +33,7 @@ pub fn init_world(testbed: &mut Testbed) {
let rigid_body = RigidBodyBuilder::new_dynamic() let rigid_body = RigidBodyBuilder::new_dynamic()
.translation(0.0, 3.0, 0.0) .translation(0.0, 3.0, 0.0)
.lock_translations() .lock_translations()
.principal_inertia(Vector3::zeros(), Vector3::new(true, false, false)) .principal_angular_inertia(Vector3::zeros(), Vector3::new(true, false, false))
.build(); .build();
let handle = bodies.insert(rigid_body); let handle = bodies.insert(rigid_body);
let collider = ColliderBuilder::cuboid(0.2, 0.6, 2.0).build(); let collider = ColliderBuilder::cuboid(0.2, 0.6, 2.0).build();

View File

@@ -646,9 +646,9 @@ impl RigidBodyBuilder {
/// See the documentation of [`RigidBodyBuilder::principal_inertia`] for more details. /// See the documentation of [`RigidBodyBuilder::principal_inertia`] for more details.
pub fn lock_rotations(self) -> Self { pub fn lock_rotations(self) -> Self {
#[cfg(feature = "dim2")] #[cfg(feature = "dim2")]
return self.principal_inertia(0.0, false); return self.principal_angular_inertia(0.0, false);
#[cfg(feature = "dim3")] #[cfg(feature = "dim3")]
return self.principal_inertia(Vector::zeros(), Vector::repeat(false)); return self.principal_angular_inertia(Vector::zeros(), Vector::repeat(false));
} }
/// Sets the mass of the rigid-body being built. /// Sets the mass of the rigid-body being built.
@@ -670,7 +670,6 @@ impl RigidBodyBuilder {
); );
self self
} }
/// Sets the angular inertia of this rigid-body. /// Sets the angular inertia of this rigid-body.
/// ///
/// In order to lock the rotations of this rigid-body (by /// In order to lock the rotations of this rigid-body (by
@@ -682,7 +681,11 @@ impl RigidBodyBuilder {
/// will depend on the initial principal inertia set by this method to which is added /// will depend on the initial principal inertia set by this method to which is added
/// the contributions of all the colliders with non-zero density attached to this rigid-body. /// the contributions of all the colliders with non-zero density attached to this rigid-body.
#[cfg(feature = "dim2")] #[cfg(feature = "dim2")]
pub fn principal_inertia(mut self, inertia: f32, colliders_contribution_enabled: bool) -> Self { pub fn principal_angular_inertia(
mut self,
inertia: f32,
colliders_contribution_enabled: bool,
) -> Self {
self.mass_properties.inv_principal_inertia_sqrt = utils::inv(inertia); self.mass_properties.inv_principal_inertia_sqrt = utils::inv(inertia);
self.flags.set( self.flags.set(
RigidBodyFlags::IGNORE_COLLIDER_ANGULAR_INERTIA_X RigidBodyFlags::IGNORE_COLLIDER_ANGULAR_INERTIA_X
@@ -693,6 +696,13 @@ impl RigidBodyBuilder {
self self
} }
/// Use `self.principal_angular_inertia` instead.
#[cfg(feature = "dim2")]
#[deprecated(note = "renamed to `principal_angular_inertia`.")]
pub fn principal_inertia(self, inertia: f32, colliders_contribution_enabled: bool) -> Self {
self.principal_angular_inertia(inertia, colliders_contribution_enabled)
}
/// Sets the principal angular inertia of this rigid-body. /// Sets the principal angular inertia of this rigid-body.
/// ///
/// In order to lock the rotations of this rigid-body (by /// In order to lock the rotations of this rigid-body (by
@@ -706,7 +716,7 @@ impl RigidBodyBuilder {
/// to which is added the contributions of all the colliders with non-zero density /// to which is added the contributions of all the colliders with non-zero density
/// attached to this rigid-body. /// attached to this rigid-body.
#[cfg(feature = "dim3")] #[cfg(feature = "dim3")]
pub fn principal_inertia( pub fn principal_angular_inertia(
mut self, mut self,
inertia: AngVector<f32>, inertia: AngVector<f32>,
colliders_contribution_enabled: AngVector<bool>, colliders_contribution_enabled: AngVector<bool>,
@@ -727,6 +737,17 @@ impl RigidBodyBuilder {
self self
} }
/// Use `self.principal_angular_inertia` instead.
#[cfg(feature = "dim3")]
#[deprecated(note = "renamed to `principal_angular_inertia`.")]
pub fn principal_inertia(
self,
inertia: AngVector<f32>,
colliders_contribution_enabled: AngVector<bool>,
) -> Self {
self.principal_angular_inertia(inertia, colliders_contribution_enabled)
}
/// Sets the damping factor for the linear part of the rigid-body motion. /// Sets the damping factor for the linear part of the rigid-body motion.
/// ///
/// The higher the linear damping factor is, the more quickly the rigid-body /// The higher the linear damping factor is, the more quickly the rigid-body