feat: implement new "small-steps" solver + joint improvements
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user