diff options
Diffstat (limited to 'src/dynamics/solver/mod.rs')
| -rw-r--r-- | src/dynamics/solver/mod.rs | 81 |
1 files changed, 36 insertions, 45 deletions
diff --git a/src/dynamics/solver/mod.rs b/src/dynamics/solver/mod.rs index 3ffa94c..5b11545 100644 --- a/src/dynamics/solver/mod.rs +++ b/src/dynamics/solver/mod.rs @@ -1,56 +1,47 @@ -#[cfg(not(feature = "parallel"))] +// #[cfg(not(feature = "parallel"))] pub(crate) use self::island_solver::IslandSolver; -#[cfg(feature = "parallel")] -pub(crate) use self::parallel_island_solver::{ParallelIslandSolver, ThreadContext}; -#[cfg(feature = "parallel")] -pub(self) use self::parallel_solver_constraints::ParallelSolverConstraints; -#[cfg(feature = "parallel")] -pub(self) use self::parallel_velocity_solver::ParallelVelocitySolver; -#[cfg(not(feature = "parallel"))] -pub(self) use self::solver_constraints::SolverConstraints; -#[cfg(not(feature = "parallel"))] +// #[cfg(feature = "parallel")] +// pub(crate) use self::parallel_island_solver::{ParallelIslandSolver, ThreadContext}; +// #[cfg(feature = "parallel")] +// pub(self) use self::parallel_solver_constraints::ParallelSolverConstraints; +// #[cfg(feature = "parallel")] +// pub(self) use self::parallel_velocity_solver::ParallelVelocitySolver; +// #[cfg(not(feature = "parallel"))] +pub(self) use self::solver_constraints_set::SolverConstraintsSet; +// #[cfg(not(feature = "parallel"))] pub(self) use self::velocity_solver::VelocitySolver; -pub(self) use delta_vel::DeltaVel; -pub(self) use generic_velocity_constraint::*; -pub(self) use generic_velocity_constraint_element::*; -pub(self) use generic_velocity_ground_constraint::*; + +pub(self) use contact_constraint::*; pub(self) use interaction_groups::*; pub(crate) use joint_constraint::MotorParameters; pub use joint_constraint::*; -pub(self) use velocity_constraint::*; -pub(self) use velocity_constraint_element::*; -#[cfg(feature = "simd-is-enabled")] -pub(self) use velocity_constraint_wide::*; -pub(self) use velocity_ground_constraint::*; -pub(self) use velocity_ground_constraint_element::*; -#[cfg(feature = "simd-is-enabled")] -pub(self) use velocity_ground_constraint_wide::*; +pub(self) use solver_body::SolverBody; +pub(self) use solver_constraints_set::{AnyConstraintMut, ConstraintTypes}; +pub(self) use solver_vel::SolverVel; mod categorization; -mod delta_vel; -mod generic_velocity_constraint; -mod generic_velocity_constraint_element; -mod generic_velocity_ground_constraint; -mod generic_velocity_ground_constraint_element; +mod contact_constraint; mod interaction_groups; -#[cfg(not(feature = "parallel"))] +// #[cfg(not(feature = "parallel"))] mod island_solver; mod joint_constraint; -#[cfg(feature = "parallel")] -mod parallel_island_solver; -#[cfg(feature = "parallel")] -mod parallel_solver_constraints; -#[cfg(feature = "parallel")] -mod parallel_velocity_solver; -#[cfg(not(feature = "parallel"))] -mod solver_constraints; -mod velocity_constraint; -mod velocity_constraint_element; -#[cfg(feature = "simd-is-enabled")] -mod velocity_constraint_wide; -mod velocity_ground_constraint; -mod velocity_ground_constraint_element; -#[cfg(feature = "simd-is-enabled")] -mod velocity_ground_constraint_wide; -#[cfg(not(feature = "parallel"))] +// #[cfg(feature = "parallel")] +// mod parallel_island_solver; +// #[cfg(feature = "parallel")] +// mod parallel_solver_constraints; +// #[cfg(feature = "parallel")] +// mod parallel_velocity_solver; +mod solver_body; +// #[cfg(not(feature = "parallel"))] +mod solver_constraints_set; +mod solver_vel; +// #[cfg(not(feature = "parallel"))] mod velocity_solver; + +// TODO: SAFETY: restrict with bytemuck::AnyBitPattern to make this safe. +pub unsafe fn reset_buffer<T>(buffer: &mut Vec<T>, len: usize) { + buffer.clear(); + buffer.reserve(len); + buffer.as_mut_ptr().write_bytes(u8::MAX, len); + buffer.set_len(len); +} |
