aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_solver.rs
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-03-17 21:20:18 +0100
committerSébastien Crozet <sebcrozet@dimforge.com>2024-03-17 21:24:28 +0100
commitecd308338b189ab569816a38a03e3f8b89669dde (patch)
treefa612abff2f23ea6a5ff04c64c07296d9fb065c8 /src/dynamics/solver/velocity_solver.rs
parentda92e5c2837b27433286cf0dd9d887fd44dda254 (diff)
downloadrapier-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.rs14
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,
};