aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/mass_properties.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/dynamics/mass_properties.rs')
-rw-r--r--src/dynamics/mass_properties.rs19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/dynamics/mass_properties.rs b/src/dynamics/mass_properties.rs
index d64839c..73e9b0d 100644
--- a/src/dynamics/mass_properties.rs
+++ b/src/dynamics/mass_properties.rs
@@ -25,8 +25,11 @@ pub struct MassProperties {
}
impl MassProperties {
+ /// Initializes the mass properties with the given center-of-mass, mass, and angular inertia.
+ ///
+ /// The center-of-mass is specified in the local-space of the rigid-body.
#[cfg(feature = "dim2")]
- pub(crate) fn new(local_com: Point<f32>, mass: f32, principal_inertia: f32) -> Self {
+ pub fn new(local_com: Point<f32>, mass: f32, principal_inertia: f32) -> Self {
let inv_mass = utils::inv(mass);
let inv_principal_inertia_sqrt = utils::inv(principal_inertia.sqrt());
Self {
@@ -36,13 +39,23 @@ impl MassProperties {
}
}
+ /// Initializes the mass properties from the given center-of-mass, mass, and principal angular inertia.
+ ///
+ /// The center-of-mass is specified in the local-space of the rigid-body.
+ /// The principal angular inertia are the angular inertia along the coordinate axes in the local-space
+ /// of the rigid-body.
#[cfg(feature = "dim3")]
- pub(crate) fn new(local_com: Point<f32>, mass: f32, principal_inertia: AngVector<f32>) -> Self {
+ pub fn new(local_com: Point<f32>, mass: f32, principal_inertia: AngVector<f32>) -> Self {
Self::with_principal_inertia_frame(local_com, mass, principal_inertia, Rotation::identity())
}
+ /// Initializes the mass properties from the given center-of-mass, mass, and principal angular inertia.
+ ///
+ /// The center-of-mass is specified in the local-space of the rigid-body.
+ /// The principal angular inertia are the angular inertia along the coordinate axes defined by
+ /// the `principal_inertia_local_frame` expressed in the local-space of the rigid-body.
#[cfg(feature = "dim3")]
- pub(crate) fn with_principal_inertia_frame(
+ pub fn with_principal_inertia_frame(
local_com: Point<f32>,
mass: f32,
principal_inertia: AngVector<f32>,