diff options
91 files changed, 5996 insertions, 3680 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 61bce74..2d3dcf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## v0.9.0 + +### Modified +- Renamed `BodyStatus` to `RigidBodyType`. + ## v0.8.0 ### Modified - Switch to nalgebra 0.26. diff --git a/benchmarks2d/balls2.rs b/benchmarks2d/balls2.rs index 6791505..9a28195 100644 --- a/benchmarks2d/balls2.rs +++ b/benchmarks2d/balls2.rs @@ -1,5 +1,5 @@ use na::Point2; -use rapier2d::dynamics::{BodyStatus, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier2d::dynamics::{JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier2d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed2d::Testbed; @@ -42,9 +42,9 @@ pub fn init_world(testbed: &mut Testbed) { let y = j as f32 * shifty + centery; let status = if j == 0 { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; // Build the rigid body. diff --git a/benchmarks2d/joint_ball2.rs b/benchmarks2d/joint_ball2.rs index ecfdc47..35423e7 100644 --- a/benchmarks2d/joint_ball2.rs +++ b/benchmarks2d/joint_ball2.rs @@ -1,5 +1,5 @@ use na::Point2; -use rapier2d::dynamics::{BallJoint, BodyStatus, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier2d::dynamics::{BallJoint, JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier2d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed2d::Testbed; @@ -28,9 +28,9 @@ pub fn init_world(testbed: &mut Testbed) { let fi = i as f32; let status = if k >= numk / 2 - 3 && k <= numk / 2 + 3 && i == 0 { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; let rigid_body = RigidBodyBuilder::new(status) diff --git a/benchmarks2d/joint_fixed2.rs b/benchmarks2d/joint_fixed2.rs index 32a219e..861912c 100644 --- a/benchmarks2d/joint_fixed2.rs +++ b/benchmarks2d/joint_fixed2.rs @@ -1,5 +1,5 @@ use na::{Isometry2, Point2}; -use rapier2d::dynamics::{BodyStatus, FixedJoint, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier2d::dynamics::{FixedJoint, JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier2d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed2d::Testbed; @@ -33,9 +33,9 @@ pub fn init_world(testbed: &mut Testbed) { let fi = i as f32; let status = if k == 0 { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; let rigid_body = RigidBodyBuilder::new(status) diff --git a/benchmarks3d/balls3.rs b/benchmarks3d/balls3.rs index bdbe75e..1f0f1df 100644 --- a/benchmarks3d/balls3.rs +++ b/benchmarks3d/balls3.rs @@ -1,5 +1,5 @@ use na::Point3; -use rapier3d::dynamics::{BodyStatus, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier3d::dynamics::{JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier3d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed3d::Testbed; @@ -30,9 +30,9 @@ pub fn init_world(testbed: &mut Testbed) { let z = k as f32 * shift - centerz; let status = if j == 0 { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; let density = 0.477; diff --git a/benchmarks3d/joint_ball3.rs b/benchmarks3d/joint_ball3.rs index fee32a2..12b62a9 100644 --- a/benchmarks3d/joint_ball3.rs +++ b/benchmarks3d/joint_ball3.rs @@ -1,5 +1,5 @@ use na::Point3; -use rapier3d::dynamics::{BallJoint, BodyStatus, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier3d::dynamics::{BallJoint, JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier3d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed3d::Testbed; @@ -23,9 +23,9 @@ pub fn init_world(testbed: &mut Testbed) { let fi = i as f32; let status = if i == 0 && (k % 4 == 0 || k == num - 1) { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; let rigid_body = RigidBodyBuilder::new(status) diff --git a/benchmarks3d/joint_fixed3.rs b/benchmarks3d/joint_fixed3.rs index c8912e7..9839e38 100644 --- a/benchmarks3d/joint_fixed3.rs +++ b/benchmarks3d/joint_fixed3.rs @@ -1,5 +1,5 @@ use na::{Isometry3, Point3}; -use rapier3d::dynamics::{BodyStatus, FixedJoint, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier3d::dynamics::{FixedJoint, JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier3d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed3d::Testbed; @@ -36,9 +36,9 @@ pub fn init_world(testbed: &mut Testbed) { // a joint between these. let status = if i == 0 && (k % 4 == 0 && k != num - 2 || k == num - 1) { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; let rigid_body = RigidBodyBuilder::new(status) diff --git a/build/rapier2d-f64/Cargo.toml b/build/rapier2d-f64/Cargo.toml index 3314825..d244d9b 100644 --- a/build/rapier2d-f64/Cargo.toml +++ b/build/rapier2d-f64/Cargo.toml @@ -16,9 +16,10 @@ edition = "2018" maintenance = { status = "actively-developed" } [features] -default = [ "dim2", "f64" ] +default = [ "dim2", "f64", "default-sets" ] dim2 = [ ] f64 = [ ] +default-sets = [ ] parallel = [ "rayon" ] simd-stable = [ "simba/wide", "simd-is-enabled" ] simd-nightly = [ "simba/packed_simd", "simd-is-enabled" ] diff --git a/build/rapier2d/Cargo.toml b/build/rapier2d/Cargo.toml index 790bb94..a149bd9 100644 --- a/build/rapier2d/Cargo.toml +++ b/build/rapier2d/Cargo.toml @@ -16,9 +16,10 @@ edition = "2018" maintenance = { status = "actively-developed" } [features] -default = [ "dim2", "f32" ] +default = [ "dim2", "f32", "default-sets" ] dim2 = [ ] f32 = [ ] +default-sets = [ ] parallel = [ "rayon" ] simd-stable = [ "simba/wide", "simd-is-enabled" ] simd-nightly = [ "simba/packed_simd", "simd-is-enabled" ] diff --git a/build/rapier3d-f64/Cargo.toml b/build/rapier3d-f64/Cargo.toml index cb4f03c..4b6519c 100644 --- a/build/rapier3d-f64/Cargo.toml +++ b/build/rapier3d-f64/Cargo.toml @@ -16,9 +16,10 @@ edition = "2018" maintenance = { status = "actively-developed" } [features] -default = [ "dim3", "f64" ] +default = [ "dim3", "f64", "default-sets" ] dim3 = [ ] f64 = [ ] +default-sets = [ ] parallel = [ "rayon" ] simd-stable = [ "parry3d-f64/simd-stable", "simba/wide", "simd-is-enabled" ] simd-nightly = [ "parry3d-f64/simd-nightly", "simba/packed_simd", "simd-is-enabled" ] diff --git a/build/rapier3d/Cargo.toml b/build/rapier3d/Cargo.toml index e797ea5..8a3877b 100644 --- a/build/rapier3d/Cargo.toml +++ b/build/rapier3d/Cargo.toml @@ -16,9 +16,10 @@ edition = "2018" maintenance = { status = "actively-developed" } [features] -default = [ "dim3", "f32" ] +default = [ "dim3", "f32", "default-sets" ] dim3 = [ ] f32 = [ ] +default-sets = [ ] parallel = [ "rayon" ] simd-stable = [ "parry3d/simd-stable", "simba/wide", "simd-is-enabled" ] simd-nightly = [ "parry3d/simd-nightly", "simba/packed_simd", "simd-is-enabled" ] diff --git a/examples2d/add_remove2.rs b/examples2d/add_remove2.rs index 0aeffbe..826d5c9 100644 --- a/examples2d/add_remove2.rs +++ b/examples2d/add_remove2.rs @@ -31,9 +31,12 @@ pub fn init_world(testbed: &mut Testbed) { .map(|e| e.0) .collect(); for handle in to_remove { - physics - .bodies - .remove(handle, &mut physics.colliders, &mut physics.joints); + physics.bodies.remove( + handle, + &mut physics.islands, + &mut physics.colliders, + &mut physics.joints, + ); if let (Some(graphics), Some(window)) = (&mut graphics, &mut window) { graphics.remove_body_nodes(*window, handle); diff --git a/examples2d/joints2.rs b/examples2d/joints2.rs index d1a1942..4d7d060 100644 --- a/examples2d/joints2.rs +++ b/examples2d/joints2.rs @@ -1,5 +1,5 @@ use na::Point2; -use rapier2d::dynamics::{BallJoint, BodyStatus, JointSet, RigidBodyBuilder, RigidBodySet}; +use rapier2d::dynamics::{BallJoint, JointSet, RigidBodyBuilder, RigidBodySet, RigidBodyType}; use rapier2d::geometry::{ColliderBuilder, ColliderSet}; use rapier_testbed2d::Testbed; @@ -31,9 +31,9 @@ pub fn init_world(testbed: &mut Testbed) { let fi = i as f32; let status = if i == 0 && k == 0 { - BodyStatus::Static + RigidBodyType::Static } else { - BodyStatus::Dynamic + RigidBodyType::Dynamic }; let rigid_body = RigidBodyBuilder::new(status) diff --git a/examples2d/one_way_platforms2.rs b/examples2d/one_way_platforms2.rs index fc3acb1..90607f7 100644 --- a/examples2d/one_way_platforms2.rs +++ b/examples2d/one_way_platforms2.rs @@ -9,12 +9,15 @@ struct OneWayPlatformHook { platform2: ColliderHandle, } -impl PhysicsHooks for OneWayPlatformHook { +impl PhysicsHooks<RigidBodySet, ColliderSet> for OneWayPlatformHook { fn active_hooks(&self) -> PhysicsHooksFlags { PhysicsHooksFlags::MODIFY_SOLVER_CONTACTS } - fn modify_solver_contacts(&self, context: &mut ContactModificationContext) { + fn modify_solver_contacts( + &self, + context: &mut ContactModificationContext<RigidBodySet, ColliderSet>, + ) { // The allowed normal for the first platform is its local +y axis, and the // allowed normal for the second platform is its local -y axis. // @@ -29,16 +32,16 @@ impl PhysicsHooks for OneWayPlatformHook { // - If context.collider_handle2 == self.platform2 then the allowed normal -y needs to be flipped to +y. let mut allowed_local_n1 = Vector2::zeros(); - if context.collider_handle1 == self.platform1 { + if context.collider1 == self.platform1 { allowed_local_n1 = Vector2::y(); - } else if context.collider_handle2 == self.platform1 { + } else if context.collider2 == self.pla |
