diff options
| author | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-03-17 21:20:18 +0100 |
|---|---|---|
| committer | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-03-17 21:24:28 +0100 |
| commit | ecd308338b189ab569816a38a03e3f8b89669dde (patch) | |
| tree | fa612abff2f23ea6a5ff04c64c07296d9fb065c8 /src/dynamics/solver/velocity_solver.rs | |
| parent | da92e5c2837b27433286cf0dd9d887fd44dda254 (diff) | |
| download | rapier-bevy-glam.tar.gz rapier-bevy-glam.tar.bz2 rapier-bevy-glam.zip | |
feat: start experimenting with a glam/bevy versionbevy-glam
Diffstat (limited to 'src/dynamics/solver/velocity_solver.rs')
| -rw-r--r-- | src/dynamics/solver/velocity_solver.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/dynamics/solver/velocity_solver.rs b/src/dynamics/solver/velocity_solver.rs index 928b427..cba3b57 100644 --- a/src/dynamics/solver/velocity_solver.rs +++ b/src/dynamics/solver/velocity_solver.rs @@ -6,8 +6,8 @@ use crate::dynamics::{ MultibodyLinkId, RigidBodySet, }; use crate::geometry::{ContactManifold, ContactManifoldIndex}; -use crate::math::Real; -use crate::prelude::RigidBodyVelocity; +use crate::math::*; +use crate::prelude::Velocity; use crate::utils::SimdAngularInertia; use na::DVector; @@ -81,10 +81,10 @@ impl VelocitySolver { self.solver_vels_increment.clear(); self.solver_vels_increment - .resize(islands.active_island(island_id).len(), SolverVel::zero()); + .resize(islands.active_island(island_id).len(), SolverVel::default()); self.solver_vels.clear(); self.solver_vels - .resize(islands.active_island(island_id).len(), SolverVel::zero()); + .resize(islands.active_island(island_id).len(), SolverVel::default()); /* * Initialize solver bodies and delta-velocities (`solver_vels_increment`) with external forces (gravity etc): @@ -220,13 +220,13 @@ impl VelocitySolver { let linvel = solver_vels.linear; let angvel = solver_body.sqrt_ii.transform_vector(solver_vels.angular); - let mut new_vels = RigidBodyVelocity { linvel, angvel }; + let mut new_vels = Velocity { linvel, angvel }; new_vels = new_vels.apply_damping(params.dt, &solver_body.damping); let new_pos = new_vels.integrate(params.dt, &solver_body.position, &solver_body.local_com); solver_body.integrated_vels += new_vels; solver_body.position = new_pos; - solver_body.world_com = new_pos * solver_body.local_com; + solver_body.world_com = new_pos.transform_point(&solver_body.local_com); } // Integrate multibody positions. @@ -290,7 +290,7 @@ impl VelocitySolver { let dangvel = solver_body.sqrt_ii.transform_vector(solver_vels.angular); - let mut new_vels = RigidBodyVelocity { + let mut new_vels = Velocity { linvel: solver_vels.linear, angvel: dangvel, }; |
