aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-03-23 14:47:05 +0100
committerSébastien Crozet <sebastien@crozet.re>2024-03-23 15:17:47 +0100
commitb3a00b4123c85d047b5ab6b89d4d500cc2b92ba6 (patch)
treeb77fce1d0d672ef9888136229e289b314fe38066
parent3d112287b9fd5aa3ddf8c17bc1e6065fa721a9ce (diff)
downloadrapier-b3a00b4123c85d047b5ab6b89d4d500cc2b92ba6.tar.gz
rapier-b3a00b4123c85d047b5ab6b89d4d500cc2b92ba6.tar.bz2
rapier-b3a00b4123c85d047b5ab6b89d4d500cc2b92ba6.zip
feat: add the DefaultBroadPhase type alias
-rw-r--r--CHANGELOG.md3
-rw-r--r--examples3d-f64/debug_serialized3.rs2
-rw-r--r--examples3d/debug_deserialize3.rs2
-rw-r--r--src/geometry/mod.rs6
-rw-r--r--src/pipeline/collision_pipeline.rs5
-rw-r--r--src_testbed/harness/mod.rs4
-rw-r--r--src_testbed/physics/mod.rs10
7 files changed, 17 insertions, 15 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0a41b43..c2fb8a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,7 +16,8 @@
### Modified
- Renamed `BroadPhase` to `BroadPhaseMultiSap`. The `BroadPhase` is no a trait that can be
- implemented for providing a custom broad-phase to rapier.
+ implemented for providing a custom broad-phase to rapier. Equivalently, the `DefaultBroadPhase` type
+ alias can be used in place of `BroadPhaseMultiSap`.
## v0.18.0 (24 Jan. 2024)
diff --git a/examples3d-f64/debug_serialized3.rs b/examples3d-f64/debug_serialized3.rs
index 86ff2a8..3801d37 100644
--- a/examples3d-f64/debug_serialized3.rs
+++ b/examples3d-f64/debug_serialized3.rs
@@ -4,7 +4,7 @@ use rapier_testbed3d::Testbed;
#[derive(serde::Deserialize)]
struct State {
pub islands: IslandManager,
- pub broad_phase: BroadPhaseMultiSap,
+ pub broad_phase: DefaultBroadPhase,
pub narrow_phase: NarrowPhase,
pub bodies: RigidBodySet,
pub colliders: ColliderSet,
diff --git a/examples3d/debug_deserialize3.rs b/examples3d/debug_deserialize3.rs
index e1ea083..0762b4d 100644
--- a/examples3d/debug_deserialize3.rs
+++ b/examples3d/debug_deserialize3.rs
@@ -6,7 +6,7 @@ struct PhysicsState {
pub gravity: Vector<f32>,
pub integration_parameters: IntegrationParameters,
pub islands: IslandManager,
- pub broad_phase: BroadPhaseMultiSap,
+ pub broad_phase: DefaultBroadPhase,
pub narrow_phase: NarrowPhase,
pub bodies: RigidBodySet,
pub colliders: ColliderSet,
diff --git a/src/geometry/mod.rs b/src/geometry/mod.rs
index 565f9a3..5d2fb2f 100644
--- a/src/geometry/mod.rs
+++ b/src/geometry/mod.rs
@@ -49,10 +49,12 @@ pub type Aabb = parry::bounding_volume::Aabb;
pub type Ray = parry::query::Ray;
/// The intersection between a ray and a collider.
pub type RayIntersection = parry::query::RayIntersection;
-/// The the projection of a point on a collider.
+/// The projection of a point on a collider.
pub type PointProjection = parry::query::PointProjection;
-/// The the time of impact between two shapes.
+/// The time of impact between two shapes.
pub type TOI = parry::query::TOI;
+/// The default broad-phase implementation provided by Rapier.
+pub type DefaultBroadPhase = BroadPhaseMultiSap;
bitflags::bitflags! {
/// Flags providing more information regarding a collision event.
diff --git a/src/pipeline/collision_pipeline.rs b/src/pipeline/collision_pipeline.rs
index 52f68a3..66bd9ad 100644
--- a/src/pipeline/collision_pipeline.rs
+++ b/src/pipeline/collision_pipeline.rs
@@ -2,8 +2,7 @@
use crate::dynamics::{ImpulseJointSet, MultibodyJointSet};
use crate::geometry::{
- BroadPhase, BroadPhaseMultiSap, BroadPhasePairEvent, ColliderChanges, ColliderHandle,
- ColliderPair, NarrowPhase,
+ BroadPhase, BroadPhasePairEvent, ColliderChanges, ColliderHandle, ColliderPair, NarrowPhase,
};
use crate::math::Real;
use crate::pipeline::{EventHandler, PhysicsHooks, QueryPipeline};
@@ -108,7 +107,7 @@ impl CollisionPipeline {
pub fn step(
&mut self,
prediction_distance: Real,
- broad_phase: &mut BroadPhaseMultiSap,
+ broad_phase: &mut dyn BroadPhase,
narrow_phase: &mut NarrowPhase,
bodies: &mut RigidBodySet,
colliders: &mut ColliderSet,
diff --git a/src_testbed/harness/mod.rs b/src_testbed/harness/mod.rs
index 458f02f..9c41472 100644
--- a/src_testbed/harness/mod.rs
+++ b/src_testbed/harness/mod.rs
@@ -9,7 +9,7 @@ use rapier::dynamics::{
CCDSolver, ImpulseJointSet, IntegrationParameters, IslandManager, MultibodyJointSet,
RigidBodySet,
};
-use rapier::geometry::{BroadPhaseMultiSap, ColliderSet, NarrowPhase};
+use rapier::geometry::{ColliderSet, DefaultBroadPhase, NarrowPhase};
use rapier::math::{Real, Vector};
use rapier::pipeline::{ChannelEventCollector, PhysicsHooks, PhysicsPipeline, QueryPipeline};
@@ -179,7 +179,7 @@ impl Harness {
self.physics.hooks = Box::new(hooks);
self.physics.islands = IslandManager::new();
- self.physics.broad_phase = BroadPhaseMultiSap::new();
+ self.physics.broad_phase = DefaultBroadPhase::new();
self.physics.narrow_phase = NarrowPhase::new();
self.state.timestep_id = 0;
self.state.time = 0.0;
diff --git a/src_testbed/physics/mod.rs b/src_testbed/physics/mod.rs
index 38c9da0..3c69f6e 100644
--- a/src_testbed/physics/mod.rs
+++ b/src_testbed/physics/mod.rs
@@ -4,7 +4,7 @@ use rapier::dynamics::{
RigidBodySet,
};
use rapier::geometry::{
- BroadPhaseMultiSap, ColliderSet, CollisionEvent, ContactForceEvent, NarrowPhase,
+ ColliderSet, CollisionEvent, ContactForceEvent, DefaultBroadPhase, NarrowPhase,
};
use rapier::math::{Real, Vector};
use rapier::pipeline::{PhysicsHooks, PhysicsPipeline, QueryPipeline};
@@ -22,7 +22,7 @@ pub struct PhysicsSnapshot {
pub struct DeserializedPhysicsSnapshot {
pub timestep_id: usize,
- pub broad_phase: BroadPhaseMultiSap,
+ pub broad_phase: DefaultBroadPhase,
pub narrow_phase: NarrowPhase,
pub island_manager: IslandManager,
pub bodies: RigidBodySet,
@@ -34,7 +34,7 @@ pub struct DeserializedPhysicsSnapshot {
impl PhysicsSnapshot {
pub fn new(
timestep_id: usize,
- broad_phase: &BroadPhaseMultiSap,
+ broad_phase: &DefaultBroadPhase,
narrow_phase: &NarrowPhase,
island_manager: &IslandManager,
bodies: &RigidBodySet,
@@ -88,7 +88,7 @@ impl PhysicsSnapshot {
pub struct PhysicsState {
pub islands: IslandManager,
- pub broad_phase: BroadPhaseMultiSap,
+ pub broad_phase: DefaultBroadPhase,
pub narrow_phase: NarrowPhase,
pub bodies: RigidBodySet,
pub colliders: ColliderSet,
@@ -112,7 +112,7 @@ impl PhysicsState {
pub fn new() -> Self {
Self {
islands: IslandManager::new(),
- broad_phase: BroadPhaseMultiSap::new(),
+ broad_phase: DefaultBroadPhase::new(),
narrow_phase: NarrowPhase::new(),
bodies: RigidBodySet::new(),
colliders: ColliderSet::new(),