pub struct CentralBody {
pub mass: f64,
pub radius: Option<f64>,
}Expand description
Mass and optional radius for a central body used in orbital calculations.
Fields§
§mass: f64Mass in kilograms.
radius: Option<f64>Optional radius in meters.
Implementations§
Source§impl CentralBody
impl CentralBody
Sourcepub fn new(mass: f64) -> Option<CentralBody>
pub fn new(mass: f64) -> Option<CentralBody>
Creates a central body with mass and no stored radius.
Returns None when mass is negative or not finite.
Sourcepub fn with_radius(mass: f64, radius: f64) -> Option<CentralBody>
pub fn with_radius(mass: f64, radius: f64) -> Option<CentralBody>
Creates a central body with mass and radius.
Returns None when mass is negative or not finite, or when radius is less than or
equal to zero or not finite.
Sourcepub fn gravitational_parameter(&self) -> Option<f64>
pub fn gravitational_parameter(&self) -> Option<f64>
Computes the body’s standard gravitational parameter.
Sourcepub fn orbital_radius_from_altitude(&self, altitude: f64) -> Option<f64>
pub fn orbital_radius_from_altitude(&self, altitude: f64) -> Option<f64>
Computes orbital radius from the stored body radius and an altitude.
Returns None when the body has no stored radius or when the inputs are invalid.
Sourcepub fn circular_orbital_speed_at_radius(
&self,
orbital_radius: f64,
) -> Option<f64>
pub fn circular_orbital_speed_at_radius( &self, orbital_radius: f64, ) -> Option<f64>
Computes circular orbital speed at a radius around this body.
§Examples
use use_orbit::CentralBody;
let earth = CentralBody::with_radius(5.972e24, 6.371e6);
let speed = earth.and_then(|body| body.circular_orbital_speed_at_radius(6_771_000.0));
assert!(speed.is_some_and(|value| value > 7_600.0));Sourcepub fn circular_orbital_period_at_radius(
&self,
orbital_radius: f64,
) -> Option<f64>
pub fn circular_orbital_period_at_radius( &self, orbital_radius: f64, ) -> Option<f64>
Computes circular orbital period at a radius around this body.
Sourcepub fn escape_speed_at_radius(&self, distance: f64) -> Option<f64>
pub fn escape_speed_at_radius(&self, distance: f64) -> Option<f64>
Computes escape speed at a radius around this body.
Trait Implementations§
Source§impl Clone for CentralBody
impl Clone for CentralBody
Source§fn clone(&self) -> CentralBody
fn clone(&self) -> CentralBody
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 CentralBody
impl Debug for CentralBody
Source§impl PartialEq for CentralBody
impl PartialEq for CentralBody
Source§fn eq(&self, other: &CentralBody) -> bool
fn eq(&self, other: &CentralBody) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for CentralBody
impl StructuralPartialEq for CentralBody
Auto Trait Implementations§
impl Freeze for CentralBody
impl RefUnwindSafe for CentralBody
impl Send for CentralBody
impl Sync for CentralBody
impl Unpin for CentralBody
impl UnsafeUnpin for CentralBody
impl UnwindSafe for CentralBody
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