Skip to content

Commit

Permalink
feat: add the DefaultBroadPhase type alias
Browse files Browse the repository at this point in the history
  • Loading branch information
sebcrozet committed Mar 23, 2024
1 parent 931f934 commit 84255ce
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 15 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion examples3d-f64/debug_serialized3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion examples3d/debug_deserialize3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
6 changes: 4 additions & 2 deletions src/geometry/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
5 changes: 2 additions & 3 deletions src/pipeline/collision_pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions src_testbed/harness/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};

Expand Down Expand Up @@ -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;
Expand Down
10 changes: 5 additions & 5 deletions src_testbed/physics/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand All @@ -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,
Expand All @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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(),
Expand Down

0 comments on commit 84255ce

Please sign in to comment.