pub struct ClassicalElements {
pub p: f64,
pub a: f64,
pub ecc: f64,
pub incl: f64,
pub raan: f64,
pub argp: f64,
pub nu: f64,
pub arglat: f64,
pub truelon: f64,
pub lonper: f64,
pub orbit_type: OrbitType,
}Expand description
Classical (Keplerian) orbital elements in the Vallado convention.
Angles are radians. semi_latus_rectum is the primary size
element used by coe2rv so the representation stays well defined for
parabolic orbits, where the semi-major axis is infinite.
Fields§
§p: f64Semi-latus rectum p = h^2 / mu (km).
a: f64Semi-major axis a (km). f64::INFINITY for a parabolic orbit
(ecc == 1).
ecc: f64Eccentricity (dimensionless).
incl: f64Inclination in [0, pi] (rad).
raan: f64Right ascension of the ascending node in [0, 2*pi) (rad). Undefined
(f64::NAN) for equatorial orbits.
argp: f64Argument of perigee in [0, 2*pi) (rad). Undefined (f64::NAN) for
circular orbits.
nu: f64True anomaly in [0, 2*pi) (rad). Undefined (f64::NAN) for circular
orbits.
arglat: f64Argument of latitude u = argp + nu in [0, 2*pi) (rad). Defined for
circular inclined orbits, f64::NAN otherwise.
truelon: f64True longitude in [0, 2*pi) (rad). Defined for circular equatorial
orbits, f64::NAN otherwise.
lonper: f64Longitude of perigee in [0, 2*pi) (rad). Defined for elliptical
equatorial orbits, f64::NAN otherwise.
orbit_type: OrbitTypeGeometric classification of the orbit.
Implementations§
Source§impl ClassicalElements
impl ClassicalElements
Sourcepub fn new(p: f64, ecc: f64, incl: f64, raan: f64, argp: f64, nu: f64) -> Self
pub fn new(p: f64, ecc: f64, incl: f64, raan: f64, argp: f64, nu: f64) -> Self
Build a non-degenerate (elliptical inclined) element set from the six primary elements, leaving the auxiliary special-case angles undefined.
This is the convenience constructor for ordinary orbits fed to
coe2rv. For circular or equatorial orbits, populate the relevant
auxiliary angle and orbit_type directly, or obtain
the element set from rv2coe.
p is the semi-latus rectum (km); the semi-major axis is derived as
p / (1 - ecc^2).
Trait Implementations§
Source§impl Clone for ClassicalElements
impl Clone for ClassicalElements
Source§fn clone(&self) -> ClassicalElements
fn clone(&self) -> ClassicalElements
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ClassicalElements
Source§impl Debug for ClassicalElements
impl Debug for ClassicalElements
Source§impl PartialEq for ClassicalElements
impl PartialEq for ClassicalElements
Source§fn eq(&self, other: &ClassicalElements) -> bool
fn eq(&self, other: &ClassicalElements) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ClassicalElements
Auto Trait Implementations§
impl Freeze for ClassicalElements
impl RefUnwindSafe for ClassicalElements
impl Send for ClassicalElements
impl Sync for ClassicalElements
impl Unpin for ClassicalElements
impl UnsafeUnpin for ClassicalElements
impl UnwindSafe for ClassicalElements
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.