Remove the default-sets feature

This commit is contained in:
Sébastien Crozet
2022-04-20 16:28:22 +02:00
committed by Sébastien Crozet
parent f108520b5a
commit 9237bfd530
9 changed files with 17 additions and 114 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();
}
}

View File

@@ -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();

View File

@@ -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,23 +134,12 @@ impl QueryPipeline {
&*self.query_dispatcher
}
#[cfg(feature = "default-sets")]
/// Update the acceleration structure on the query pipeline.
pub fn update(
&mut self,
islands: &IslandManager,
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,