diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynamics/mod.rs | 4 | ||||
| -rw-r--r-- | src/geometry/mod.rs | 4 | ||||
| -rw-r--r-- | src/pipeline/collision_pipeline.rs | 37 | ||||
| -rw-r--r-- | src/pipeline/physics_pipeline.rs | 59 | ||||
| -rw-r--r-- | src/pipeline/query_pipeline.rs | 15 |
5 files changed, 13 insertions, 106 deletions
diff --git a/src/dynamics/mod.rs b/src/dynamics/mod.rs index 65c294c..04e5b03 100644 --- a/src/dynamics/mod.rs +++ b/src/dynamics/mod.rs @@ -14,9 +14,7 @@ pub(crate) use self::solver::IslandSolver; pub(crate) use self::solver::ParallelIslandSolver; pub use parry::mass_properties::MassProperties; -#[cfg(feature = "default-sets")] pub use self::rigid_body::{RigidBody, RigidBodyBuilder}; -#[cfg(feature = "default-sets")] pub use self::rigid_body_set::{BodyPair, RigidBodySet}; mod ccd; @@ -27,7 +25,5 @@ mod joint; mod rigid_body_components; mod solver; -#[cfg(feature = "default-sets")] mod rigid_body; -#[cfg(feature = "default-sets")] mod rigid_body_set; diff --git a/src/geometry/mod.rs b/src/geometry/mod.rs index 5a56f2b..7733ad2 100644 --- a/src/geometry/mod.rs +++ b/src/geometry/mod.rs @@ -11,9 +11,7 @@ pub use self::interaction_graph::{ pub use self::interaction_groups::InteractionGroups; pub use self::narrow_phase::NarrowPhase; -#[cfg(feature = "default-sets")] pub use self::collider::{Collider, ColliderBuilder}; -#[cfg(feature = "default-sets")] pub use self::collider_set::ColliderSet; pub use parry::query::TrackedContact; @@ -121,7 +119,5 @@ mod interaction_graph; mod interaction_groups; mod narrow_phase; -#[cfg(feature = "default-sets")] mod collider; -#[cfg(feature = "default-sets")] mod collider_set; diff --git a/src/pipeline/collision_pipeline.rs b/src/pipeline/collision_pipeline.rs index 872206b..52aed49 100644 --- a/src/pipeline/collision_pipeline.rs +++ b/src/pipeline/collision_pipeline.rs @@ -6,8 +6,6 @@ use crate::geometry::{ }; use crate::math::Real; use crate::pipeline::{EventHandler, PhysicsHooks}; - -#[cfg(feature = "default-sets")] use crate::{dynamics::RigidBodySet, geometry::ColliderSet}; /// The collision pipeline, responsible for performing collision detection between colliders. @@ -102,7 +100,6 @@ impl CollisionPipeline { } /// Executes one step of the collision detection. - #[cfg(feature = "default-sets")] pub fn step( &mut self, prediction_distance: Real, @@ -117,34 +114,6 @@ impl CollisionPipeline { let mut modified_colliders = colliders.take_modified(); let mut removed_colliders = colliders.take_removed(); - self.step_generic( - prediction_distance, - broad_phase, - narrow_phase, - bodies, - colliders, - &mut modified_bodies, - &mut modified_colliders, - &mut removed_colliders, - hooks, - events, - ); - } - - /// Executes one step of the collision detection. - pub fn step_generic( - &mut self, - prediction_distance: Real, - broad_phase: &mut BroadPhase, - narrow_phase: &mut NarrowPhase, - bodies: &mut RigidBodySet, - colliders: &mut ColliderSet, - modified_bodies: &mut Vec<RigidBodyHandle>, - modified_colliders: &mut Vec<ColliderHandle>, - removed_colliders: &mut Vec<ColliderHandle>, - hooks: &dyn PhysicsHooks, - events: &dyn EventHandler, - ) { super::user_changes::handle_user_changes_to_colliders( bodies, colliders, @@ -155,7 +124,7 @@ impl CollisionPipeline { bodies, colliders, &modified_bodies, - modified_colliders, + &mut modified_colliders, ); self.detect_collisions( prediction_distance, @@ -164,13 +133,13 @@ impl CollisionPipeline { bodies, colliders, &modified_colliders[..], - removed_colliders, + &mut removed_colliders, hooks, events, true, ); - self.clear_modified_colliders(colliders, modified_colliders); + self.clear_modified_colliders(colliders, &mut modified_colliders); removed_colliders.clear(); } } diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs index 71c559a..5727592 100644 --- a/src/pipeline/physics_pipeline.rs +++ b/src/pipeline/physics_pipeline.rs @@ -5,7 +5,7 @@ use crate::counters::Counters; use crate::dynamics::IslandSolver; use crate::dynamics::{ CCDSolver, ImpulseJointSet, IntegrationParameters, IslandManager, MultibodyJointSet, - RigidBodyHandle, RigidBodyPosition, RigidBodyType, + RigidBodyPosition, RigidBodyType, }; #[cfg(feature = "parallel")] use crate::dynamics::{JointGraphEdge, ParallelIslandSolver as IslandSolver}; @@ -15,8 +15,6 @@ use crate::geometry::{ }; use crate::math::{Real, Vector}; use crate::pipeline::{EventHandler, PhysicsHooks}; - -#[cfg(feature = "default-sets")] use {crate::dynamics::RigidBodySet, crate::geometry::ColliderSet}; /// The physics pipeline, responsible for stepping the whole physics simulation. @@ -358,7 +356,6 @@ impl PhysicsPipeline { /// /// This is the same as `self.step_generic`, except that it is specialized /// to work with `RigidBodySet` and `ColliderSet`. - #[cfg(feature = "default-sets")] pub fn step( &mut self, gravity: &Vector<Real>, @@ -374,48 +371,10 @@ impl PhysicsPipeline { hooks: &dyn PhysicsHooks, events: &dyn EventHandler, ) { - let mut modified_bodies = bodies.take_modified(); + let modified_bodies = bodies.take_modified(); let mut modified_colliders = colliders.take_modified(); let mut removed_colliders = colliders.take_removed(); - self.step_generic( - gravity, - integration_parameters, - islands, - broad_phase, - narrow_phase, - bodies, - colliders, - &mut modified_bodies, - &mut modified_colliders, - &mut removed_colliders, - impulse_joints, - multibody_joints, - ccd_solver, - hooks, - events, - ); - } - - /// Executes one timestep of the physics simulation. - pub fn step_generic( - &mut self, - gravity: &Vector<Real>, - integration_parameters: &IntegrationParameters, - islands: &mut IslandManager, - broad_phase: &mut BroadPhase, - narrow_phase: &mut NarrowPhase, - bodies: &mut RigidBodySet, - colliders: &mut ColliderSet, - modified_bodies: &mut Vec<RigidBodyHandle>, - modified_colliders: &mut Vec<ColliderHandle>, - removed_colliders: &mut Vec<ColliderHandle>, - impulse_joints: &mut ImpulseJointSet, - multibody_joints: &mut MultibodyJointSet, - ccd_solver: &mut CCDSolver, - hooks: &dyn PhysicsHooks, - events: &dyn EventHandler, - ) { self.counters.reset(); self.counters.step_started(); @@ -429,7 +388,7 @@ impl PhysicsPipeline { bodies, colliders, &modified_bodies, - modified_colliders, + &mut modified_colliders, ); // TODO: do this only on user-change. @@ -449,13 +408,13 @@ impl PhysicsPipeline { bodies, colliders, &modified_colliders[..], - removed_colliders, + &mut removed_colliders, hooks, events, true, ); - self.clear_modified_colliders(colliders, modified_colliders); + self.clear_modified_colliders(colliders, &mut modified_colliders); removed_colliders.clear(); let mut remaining_time = integration_parameters.dt; @@ -563,7 +522,7 @@ impl PhysicsPipeline { } } - self.advance_to_final_positions(islands, bodies, colliders, modified_colliders); + self.advance_to_final_positions(islands, bodies, colliders, &mut modified_colliders); self.detect_collisions( &integration_parameters, @@ -572,14 +531,14 @@ impl PhysicsPipeline { narrow_phase, bodies, colliders, - modified_colliders, - removed_colliders, + &mut modified_colliders, + &mut removed_colliders, hooks, events, false, ); - self.clear_modified_colliders(colliders, modified_colliders); + self.clear_modified_colliders(colliders, &mut modified_colliders); } self.counters.step_completed(); diff --git a/src/pipeline/query_pipeline.rs b/src/pipeline/query_pipeline.rs index 3735d12..1149a72 100644 --- a/src/pipeline/query_pipeline.rs +++ b/src/pipeline/query_pipeline.rs @@ -3,6 +3,7 @@ use crate::geometry::{ ColliderHandle, InteractionGroups, PointProjection, Ray, RayIntersection, AABB, QBVH, }; use crate::math::{Isometry, Point, Real, Vector}; +use crate::{dynamics::RigidBodySet, geometry::ColliderSet}; use parry::partitioning::QBVHDataGenerator; use parry::query::details::{ IntersectionCompositeShapeShapeBestFirstVisitor, @@ -18,9 +19,6 @@ use parry::query::{DefaultQueryDispatcher, NonlinearRigidMotion, QueryDispatcher use parry::shape::{FeatureId, Shape, TypedSimdCompositeShape}; use std::sync::Arc; -#[cfg(feature = "default-sets")] -use crate::{dynamics::RigidBodySet, geometry::ColliderSet}; - /// A pipeline for performing queries on all the colliders of a scene. #[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))] #[derive(Clone)] @@ -136,7 +134,6 @@ impl QueryPipeline { &*self.query_dispatcher } - #[cfg(feature = "default-sets")] /// Update the acceleration structure on the query pipeline. pub fn update( &mut self, @@ -144,16 +141,6 @@ impl QueryPipeline { bodies: &RigidBodySet, colliders: &ColliderSet, ) { - self.update_generic(islands, bodies, colliders); - } - - /// Update the acceleration structure on the query pipeline. - pub fn update_generic( - &mut self, - islands: &IslandManager, - bodies: &RigidBodySet, - colliders: &ColliderSet, - ) { self.update_with_mode( islands, bodies, |
