pub struct RigidBody1D {
pub mass_properties: MassProperties,
pub position: f64,
pub velocity: f64,
pub angle: f64,
pub angular_velocity: f64,
}Expand description
A one-dimensional rigid body with scalar translational and rotational state.
Fields§
§mass_properties: MassProperties§position: f64§velocity: f64§angle: f64§angular_velocity: f64Implementations§
Source§impl RigidBody1D
impl RigidBody1D
Sourcepub const fn new(
mass_properties: MassProperties,
position: f64,
velocity: f64,
angle: f64,
angular_velocity: f64,
) -> Option<RigidBody1D>
pub const fn new( mass_properties: MassProperties, position: f64, velocity: f64, angle: f64, angular_velocity: f64, ) -> Option<RigidBody1D>
Creates a rigid body when the state values are finite.
Sourcepub const fn moment_of_inertia(&self) -> f64
pub const fn moment_of_inertia(&self) -> f64
Returns the body’s moment of inertia.
Sourcepub fn linear_momentum(&self) -> Option<f64>
pub fn linear_momentum(&self) -> Option<f64>
Computes linear momentum using p = mv.
Sourcepub fn angular_momentum(&self) -> Option<f64>
pub fn angular_momentum(&self) -> Option<f64>
Computes angular momentum using L = Iω.
Sourcepub fn linear_kinetic_energy(&self) -> Option<f64>
pub fn linear_kinetic_energy(&self) -> Option<f64>
Computes translational kinetic energy using KE = 0.5mv².
Sourcepub fn rotational_kinetic_energy(&self) -> Option<f64>
pub fn rotational_kinetic_energy(&self) -> Option<f64>
Computes rotational kinetic energy using KE_rot = 0.5Iω².
Sourcepub fn total_kinetic_energy(&self) -> Option<f64>
pub fn total_kinetic_energy(&self) -> Option<f64>
Computes total kinetic energy as translational plus rotational energy.
Sourcepub fn with_impulse(self, impulse: f64) -> Option<RigidBody1D>
pub fn with_impulse(self, impulse: f64) -> Option<RigidBody1D>
Returns a copy with updated velocity after a linear impulse.
§Examples
use use_rigidbody::{MassProperties, RigidBody1D};
let props = MassProperties::new(2.0, 4.0).unwrap();
let body = RigidBody1D::new(props, 10.0, 3.0, 1.0, 5.0).unwrap();
assert_eq!(body.with_impulse(4.0).unwrap().velocity, 5.0);Sourcepub fn with_angular_impulse(self, angular_impulse: f64) -> Option<RigidBody1D>
pub fn with_angular_impulse(self, angular_impulse: f64) -> Option<RigidBody1D>
Returns a copy with updated angular velocity after an angular impulse.
Sourcepub fn advanced_kinematically(self, time: f64) -> Option<RigidBody1D>
pub fn advanced_kinematically(self, time: f64) -> Option<RigidBody1D>
Advances position and angle kinematically using the current velocities.
This helper updates:
position += velocity * timeangle += angular_velocity * time
§Examples
use use_rigidbody::{MassProperties, RigidBody1D};
let props = MassProperties::new(2.0, 4.0).unwrap();
let body = RigidBody1D::new(props, 10.0, 3.0, 1.0, 5.0).unwrap();
let advanced = body.advanced_kinematically(2.0).unwrap();
assert_eq!(advanced.position, 16.0);
assert_eq!(advanced.angle, 11.0);Trait Implementations§
Source§impl Clone for RigidBody1D
impl Clone for RigidBody1D
Source§fn clone(&self) -> RigidBody1D
fn clone(&self) -> RigidBody1D
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RigidBody1D
impl Debug for RigidBody1D
Source§impl PartialEq for RigidBody1D
impl PartialEq for RigidBody1D
Source§fn eq(&self, other: &RigidBody1D) -> bool
fn eq(&self, other: &RigidBody1D) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for RigidBody1D
impl StructuralPartialEq for RigidBody1D
Auto Trait Implementations§
impl Freeze for RigidBody1D
impl RefUnwindSafe for RigidBody1D
impl Send for RigidBody1D
impl Sync for RigidBody1D
impl Unpin for RigidBody1D
impl UnsafeUnpin for RigidBody1D
impl UnwindSafe for RigidBody1D
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more