pub struct Collision1D {
pub body_a: CollisionBody1D,
pub body_b: CollisionBody1D,
pub coefficient_of_restitution: f64,
}Expand description
A one-dimensional collision configuration with two bodies and a restitution coefficient.
Fields§
§body_a: CollisionBody1D§body_b: CollisionBody1D§coefficient_of_restitution: f64Implementations§
Source§impl Collision1D
impl Collision1D
Sourcepub fn new(
body_a: CollisionBody1D,
body_b: CollisionBody1D,
coefficient_of_restitution: f64,
) -> Option<Self>
pub fn new( body_a: CollisionBody1D, body_b: CollisionBody1D, coefficient_of_restitution: f64, ) -> Option<Self>
Creates a one-dimensional collision when the restitution coefficient is valid.
Sourcepub fn final_velocities(&self) -> Option<(f64, f64)>
pub fn final_velocities(&self) -> Option<(f64, f64)>
Computes the final velocities of both bodies.
§Examples
use use_collision::{Collision1D, CollisionBody1D};
let body_a = CollisionBody1D::new(1.0, 1.0).unwrap();
let body_b = CollisionBody1D::new(1.0, -1.0).unwrap();
let collision = Collision1D::new(body_a, body_b, 1.0).unwrap();
let (final_a, final_b) = collision.final_velocities().unwrap();
assert!((final_a + 1.0).abs() < 1.0e-12);
assert!((final_b - 1.0).abs() < 1.0e-12);Sourcepub fn final_bodies(&self) -> Option<(CollisionBody1D, CollisionBody1D)>
pub fn final_bodies(&self) -> Option<(CollisionBody1D, CollisionBody1D)>
Computes the final body states after the collision.
Sourcepub fn initial_kinetic_energy(&self) -> Option<f64>
pub fn initial_kinetic_energy(&self) -> Option<f64>
Computes the initial total kinetic energy.
Sourcepub fn final_kinetic_energy(&self) -> Option<f64>
pub fn final_kinetic_energy(&self) -> Option<f64>
Computes the final total kinetic energy.
Sourcepub fn kinetic_energy_loss(&self) -> Option<f64>
pub fn kinetic_energy_loss(&self) -> Option<f64>
Computes the total kinetic energy lost in the collision.
Sourcepub fn kinetic_energy_loss_fraction(&self) -> Option<f64>
pub fn kinetic_energy_loss_fraction(&self) -> Option<f64>
Computes the fraction of kinetic energy lost in the collision.
Trait Implementations§
Source§impl Clone for Collision1D
impl Clone for Collision1D
Source§fn clone(&self) -> Collision1D
fn clone(&self) -> Collision1D
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 Collision1D
impl Debug for Collision1D
Source§impl PartialEq for Collision1D
impl PartialEq for Collision1D
Source§fn eq(&self, other: &Collision1D) -> bool
fn eq(&self, other: &Collision1D) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for Collision1D
impl StructuralPartialEq for Collision1D
Auto Trait Implementations§
impl Freeze for Collision1D
impl RefUnwindSafe for Collision1D
impl Send for Collision1D
impl Sync for Collision1D
impl Unpin for Collision1D
impl UnsafeUnpin for Collision1D
impl UnwindSafe for Collision1D
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