aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/solver_body.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/solver_body.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/solver_body.rs')
-rw-r--r--src/dynamics/solver/solver_body.rs39
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;