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/solver_body.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/solver_body.rs')
| -rw-r--r-- | src/dynamics/solver/solver_body.rs | 39 |
1 files changed, 12 insertions, 27 deletions
diff --git a/src/dynamics/solver/solver_body.rs b/src/dynamics/solver/solver_body.rs index 297f28a..a725778 100644 --- a/src/dynamics/solver/solver_body.rs +++ b/src/dynamics/solver/solver_body.rs @@ -1,42 +1,27 @@ -use crate::dynamics::{RigidBody, RigidBodyVelocity}; -use crate::math::{AngularInertia, Isometry, Point, Real, Vector}; -use crate::prelude::RigidBodyDamping; +use crate::dynamics::{RigidBody, Velocity}; +use crate::math::*; +use crate::prelude::Damping; #[cfg(feature = "dim2")] use crate::num::Zero; -#[derive(Copy, Clone, Debug)] +#[derive(Copy, Clone, Debug, Default)] pub(crate) struct SolverBody { - pub position: Isometry<Real>, - pub integrated_vels: RigidBodyVelocity, - pub im: Vector<Real>, + pub position: Isometry, + pub integrated_vels: Velocity, + pub im: Vector, pub sqrt_ii: AngularInertia<Real>, - pub world_com: Point<Real>, + pub world_com: Point, pub ccd_thickness: Real, - pub damping: RigidBodyDamping, - pub local_com: Point<Real>, -} - -impl Default for SolverBody { - fn default() -> Self { - Self { - position: Isometry::identity(), - integrated_vels: RigidBodyVelocity::zero(), - im: na::zero(), - sqrt_ii: AngularInertia::zero(), - world_com: Point::origin(), - ccd_thickness: 0.0, - damping: RigidBodyDamping::default(), - local_com: Point::origin(), - } - } + pub damping: Damping, + pub local_com: Point, } impl SolverBody { pub fn from(rb: &RigidBody) -> Self { Self { position: rb.pos.position, - integrated_vels: RigidBodyVelocity::zero(), + integrated_vels: Velocity::zero(), im: rb.mprops.effective_inv_mass, sqrt_ii: rb.mprops.effective_world_inv_inertia_sqrt, world_com: rb.mprops.world_com, @@ -48,7 +33,7 @@ impl SolverBody { pub fn copy_from(&mut self, rb: &RigidBody) { self.position = rb.pos.position; - self.integrated_vels = RigidBodyVelocity::zero(); + self.integrated_vels = Velocity::zero(); self.im = rb.mprops.effective_inv_mass; self.sqrt_ii = rb.mprops.effective_world_inv_inertia_sqrt; self.world_com = rb.mprops.world_com; |
