diff options
| author | Crozet Sébastien <developer@crozet.re> | 2021-03-31 18:41:02 +0200 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2021-03-31 18:41:02 +0200 |
| commit | 1b073e98b45915abe3c727696e8b49753a03d7ee (patch) | |
| tree | 1ed7f5c3165b125613f61d732a4c13a7d8d5e9bc /src | |
| parent | a484511718ecc724da482b7053005181020f449b (diff) | |
| download | rapier-1b073e98b45915abe3c727696e8b49753a03d7ee.tar.gz rapier-1b073e98b45915abe3c727696e8b49753a03d7ee.tar.bz2 rapier-1b073e98b45915abe3c727696e8b49753a03d7ee.zip | |
Remove the IntegrationParameters field we don't use.
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynamics/integration_parameters.rs | 59 |
1 files changed, 3 insertions, 56 deletions
diff --git a/src/dynamics/integration_parameters.rs b/src/dynamics/integration_parameters.rs index 615bfee..e4373c0 100644 --- a/src/dynamics/integration_parameters.rs +++ b/src/dynamics/integration_parameters.rs @@ -26,9 +26,9 @@ pub struct IntegrationParameters { // /// Note that using only one thread with `multithreading_enabled` set to `true` will result on a slower // /// simulation than setting `multithreading_enabled` to `false`. // pub multithreading_enabled: bool, - /// If `true`, the world's `step` method will stop right after resolving exactly one CCD event (default: `false`). - /// This allows the user to take action during a timestep, in-between two CCD events. - pub return_after_ccd_substep: bool, + // /// If `true`, the world's `step` method will stop right after resolving exactly one CCD event (default: `false`). + // /// This allows the user to take action during a timestep, in-between two CCD events. + // pub return_after_ccd_substep: bool, /// The Error Reduction Parameter in `[0, 1]` is the proportion of /// the positional error to be corrected at each time step (default: `0.2`). pub erp: Real, @@ -64,49 +64,14 @@ pub struct IntegrationParameters { pub max_linear_correction: Real, /// Maximum angular correction during one step of the non-linear position solver (default: `0.2`). pub max_angular_correction: Real, - /// Maximum nonlinear SOR-prox scaling parameter when the constraint - /// correction direction is close to the kernel of the involved multibody's - /// jacobian (default: `0.2`). - pub max_stabilization_multiplier: Real, /// Maximum number of iterations performed by the velocity constraints solver (default: `4`). pub max_velocity_iterations: usize, /// Maximum number of iterations performed by the position-based constraints solver (default: `1`). pub max_position_iterations: usize, /// Minimum number of dynamic bodies in each active island (default: `128`). pub min_island_size: usize, - /// Maximum number of iterations performed by the position-based constraints solver for CCD steps (default: `10`). - /// - /// This should be sufficiently high so all penetration get resolved. For example, if CCD cause your - /// objects to stutter, that may be because the number of CCD position iterations is too low, causing - /// them to remain stuck in a penetration configuration for a few frames. - /// - /// The higher this number, the higher its computational cost. - pub max_ccd_position_iterations: usize, /// Maximum number of substeps performed by the solver (default: `1`). pub max_ccd_substeps: usize, - /// Controls the number of Proximity::Intersecting events generated by a trigger during CCD resolution (default: `false`). - /// - /// If false, triggers will only generate one Proximity::Intersecting event during a step, even - /// if another colliders repeatedly enters and leaves the triggers during multiple CCD substeps. - /// - /// If true, triggers will generate as many Proximity::Intersecting and Proximity::Disjoint/Proximity::WithinMargin - /// events as the number of times a collider repeatedly enters and leaves the triggers during multiple CCD substeps. - /// This is more computationally intensive. - pub multiple_ccd_substep_sensor_events_enabled: bool, - /// Whether penetration are taken into account in CCD resolution (default: `false`). - /// - /// If this is set to `false` two penetrating colliders will not be considered to have any time of impact - /// while they are penetrating. This may end up allowing some tunelling, but will avoid stuttering effect - /// when the constraints solver fails to completely separate two colliders after a CCD contact. - /// - /// If this is set to `true`, two penetrating colliders will be considered to have a time of impact - /// equal to 0 until the constraints solver manages to separate them. This will prevent tunnelling - /// almost completely, but may introduce stuttering effects when the constraints solver fails to completely - /// separate two colliders after a CCD contact. - // FIXME: this is a very binary way of handling penetration. - // We should provide a more flexible solution by letting the user choose some - // minimal amount of movement applied to an object that get stuck. - pub ccd_on_penetration_enabled: bool, } impl IntegrationParameters { @@ -114,28 +79,20 @@ impl IntegrationParameters { #[deprecated = "Use `IntegrationParameters { dt: 60.0, ..Default::default() }` instead"] pub fn new( dt: Real, - // multithreading_enabled: bool, erp: Real, joint_erp: Real, warmstart_coeff: Real, - _restitution_velocity_threshold: Real, allowed_linear_error: Real, allowed_angular_error: Real, max_linear_correction: Real, max_angular_correction: Real, prediction_distance: Real, - max_stabilization_multiplier: Real, max_velocity_iterations: usize, max_position_iterations: usize, - max_ccd_position_iterations: usize, max_ccd_substeps: usize, - return_after_ccd_substep: bool, - multiple_ccd_substep_sensor_events_enabled: bool, - ccd_on_penetration_enabled: bool, ) -> Self { IntegrationParameters { dt, - // multithreading_enabled, erp, joint_erp, warmstart_coeff, @@ -144,14 +101,9 @@ impl IntegrationParameters { max_linear_correction, max_angular_correction, prediction_distance, - max_stabilization_multiplier, max_velocity_iterations, max_position_iterations, - max_ccd_position_iterations, max_ccd_substeps, - return_after_ccd_substep, - multiple_ccd_substep_sensor_events_enabled, - ccd_on_penetration_enabled, ..Default::default() } } @@ -208,7 +160,6 @@ impl Default for IntegrationParameters { dt: 1.0 / 60.0, min_ccd_dt: 1.0 / 60.0 / 100.0, // multithreading_enabled: true, - return_after_ccd_substep: false, erp: 0.2, joint_erp: 0.2, velocity_solve_fraction: 1.0, @@ -220,7 +171,6 @@ impl Default for IntegrationParameters { allowed_angular_error: 0.001, max_linear_correction: 0.2, max_angular_correction: 0.2, - max_stabilization_multiplier: 0.2, max_velocity_iterations: 4, max_position_iterations: 1, // FIXME: what is the optimal value for min_island_size? @@ -229,10 +179,7 @@ impl Default for IntegrationParameters { // However we don't want it to be too small and end up with // tons of islands, reducing SIMD parallelism opportunities. min_island_size: 128, - max_ccd_position_iterations: 10, max_ccd_substeps: 1, - multiple_ccd_substep_sensor_events_enabled: false, - ccd_on_penetration_enabled: false, } } } |
