rapier3d/dynamics/joint/multibody_joint/
multibody_workspace.rs1use crate::dynamics::RigidBodyVelocity;
2use crate::math::Real;
3use na::DVector;
4
5#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
7#[derive(Clone, Debug)]
8pub(crate) struct MultibodyWorkspace {
9 pub accs: Vec<RigidBodyVelocity<Real>>,
10 pub ndofs_vec: DVector<Real>,
11}
12
13impl MultibodyWorkspace {
14 pub fn new() -> Self {
16 MultibodyWorkspace {
17 accs: Vec::new(),
18 ndofs_vec: DVector::zeros(0),
19 }
20 }
21
22 pub fn resize(&mut self, nlinks: usize, ndofs: usize) {
24 self.accs.resize(nlinks, RigidBodyVelocity::zero());
25 self.ndofs_vec = DVector::zeros(ndofs)
26 }
27}