pub struct Orbit {
pub x: f64,
pub y: f64,
pub z: f64,
pub vx: f64,
pub vy: f64,
pub vz: f64,
pub dt: Epoch,
pub frame: Frame,
pub stm: Option<Matrix6<f64>>,
}
Expand description
Orbit defines an orbital state
Unless noted otherwise, algorithms are from GMAT 2016a StateConversionUtil.cpp. Regardless of the constructor used, this struct stores all the state information in Cartesian coordinates as these are always non singular. Note: although not yet supported, this struct may change once True of Date or other nutation frames are added to the toolkit.
Fields
x: f64
in km
y: f64
in km
z: f64
in km
vx: f64
in km/s
vy: f64
in km/s
vz: f64
in km/s
dt: Epoch
frame: Frame
Frame contains everything we need to compute state information
stm: Option<Matrix6<f64>>
Optionally stores the state transition matrix from the start of the propagation until the current time (i.e. trajectory STM, not step-size STM)
Implementations
sourceimpl Orbit
impl Orbit
sourcepub fn cartesian(
x: f64,
y: f64,
z: f64,
vx: f64,
vy: f64,
vz: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn cartesian(
x: f64,
y: f64,
z: f64,
vx: f64,
vy: f64,
vz: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit in the provided frame at the provided Epoch.
Units: km, km, km, km/s, km/s, km/s
sourcepub fn cartesian_stm(
x: f64,
y: f64,
z: f64,
vx: f64,
vy: f64,
vz: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn cartesian_stm(
x: f64,
y: f64,
z: f64,
vx: f64,
vy: f64,
vz: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit and initializes its STM.
sourcepub fn from_position(x: f64, y: f64, z: f64, dt: Epoch, frame: Frame) -> Self
pub fn from_position(x: f64, y: f64, z: f64, dt: Epoch, frame: Frame) -> Self
Creates a new Orbit in the provided frame at the provided Epoch in time with 0.0 velocity.
Units: km, km, km
sourcepub fn cartesian_vec(state: &Vector6<f64>, dt: Epoch, frame: Frame) -> Self
pub fn cartesian_vec(state: &Vector6<f64>, dt: Epoch, frame: Frame) -> Self
Creates a new Orbit around in the provided frame from the borrowed state vector
The state vector must be x, y, z, vx, vy, vz. This function is a shortcut to cartesian
and as such it has the same unit requirements.
sourcepub fn velocity(&self) -> Vector3<f64>
pub fn velocity(&self) -> Vector3<f64>
Returns the velocity vector of this Orbit in [km/s, km/s, km/s]
sourcepub fn to_cartesian_vec(self) -> Vector6<f64>
pub fn to_cartesian_vec(self) -> Vector6<f64>
Returns this state as a Cartesian Vector6 in [km, km, km, km/s, km/s, km/s]
Note that the time is not returned in the vector.
sourcepub fn distance_to(&self, other: &Orbit) -> f64
pub fn distance_to(&self, other: &Orbit) -> f64
Returns the distance in kilometers between this state and another state. Will panic is the frames are different
sourcepub fn distance_to_point(&self, other: &Vector3<f64>) -> f64
pub fn distance_to_point(&self, other: &Vector3<f64>) -> f64
Returns the distance in kilometers between this state and a point assumed to be in the same frame.
sourcepub fn r_hat(&self) -> Vector3<f64>
pub fn r_hat(&self) -> Vector3<f64>
Returns the unit vector in the direction of the state radius
sourcepub fn v_hat(&self) -> Vector3<f64>
pub fn v_hat(&self) -> Vector3<f64>
Returns the unit vector in the direction of the state velocity
sourcepub fn keplerian(
sma: f64,
ecc: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn keplerian(
sma: f64,
ecc: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit around the provided Celestial or Geoid frame from the Keplerian orbital elements.
Units: km, none, degrees, degrees, degrees, degrees
WARNING: This function will panic if the singularities in the conversion are expected. NOTE: The state is defined in Cartesian coordinates as they are non-singular. This causes rounding errors when creating a state from its Keplerian orbital elements (cf. the state tests). One should expect these errors to be on the order of 1e-12.
sourcepub fn keplerian_altitude(
sma_altitude: f64,
ecc: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn keplerian_altitude(
sma_altitude: f64,
ecc: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit from the provided semi-major axis altitude in kilometers
sourcepub fn keplerian_apsis_radii(
r_a: f64,
r_p: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn keplerian_apsis_radii(
r_a: f64,
r_p: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit from the provided radii of apoapsis and periapsis, in kilometers
sourcepub fn keplerian_apsis_altitude(
a_a: f64,
a_p: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn keplerian_apsis_altitude(
a_a: f64,
a_p: f64,
inc: f64,
raan: f64,
aop: f64,
ta: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit from the provided altitudes of apoapsis and periapsis, in kilometers
sourcepub fn keplerian_vec(state: &Vector6<f64>, dt: Epoch, frame: Frame) -> Self
pub fn keplerian_vec(state: &Vector6<f64>, dt: Epoch, frame: Frame) -> Self
Creates a new Orbit around the provided frame from the borrowed state vector
The state vector must be sma, ecc, inc, raan, aop, ta. This function is a shortcut to cartesian
and as such it has the same unit requirements.
sourcepub fn from_geodesic(
latitude: f64,
longitude: f64,
height: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn from_geodesic(
latitude: f64,
longitude: f64,
height: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit from the geodetic latitude (φ), longitude (λ) and height with respect to the ellipsoid of the frame.
Units: degrees, degrees, km
NOTE: This computation differs from the spherical coordinates because we consider the flattening of body.
Reference: G. Xu and Y. Xu, “GPS”, DOI 10.1007/978-3-662-50367-6_2, 2016
WARNING: This uses the rotational rates known to Nyx. For other objects, use from_altlatlong
for other celestial bodies.
sourcepub fn from_altlatlong(
latitude: f64,
longitude: f64,
height: f64,
angular_velocity: f64,
dt: Epoch,
frame: Frame
) -> Self
pub fn from_altlatlong(
latitude: f64,
longitude: f64,
height: f64,
angular_velocity: f64,
dt: Epoch,
frame: Frame
) -> Self
Creates a new Orbit from the latitude (φ), longitude (λ) and height with respect to the frame’s ellipsoid.
Units: degrees, degrees, km, rad/s NOTE: This computation differs from the spherical coordinates because we consider the flattening of body. Reference: G. Xu and Y. Xu, “GPS”, DOI 10.1007/978-3-662-50367-6_2, 2016
sourcepub fn to_keplerian_vec(self) -> Vector6<f64>
pub fn to_keplerian_vec(self) -> Vector6<f64>
Returns this state as a Keplerian Vector6 in [km, none, degrees, degrees, degrees, degrees]
Note that the time is not returned in the vector.
sourcepub fn with_radius(self, new_radius: &Vector3<f64>) -> Self
pub fn with_radius(self, new_radius: &Vector3<f64>) -> Self
Returns a copy of the state with a new radius
sourcepub fn with_velocity(self, new_velocity: &Vector3<f64>) -> Self
pub fn with_velocity(self, new_velocity: &Vector3<f64>) -> Self
Returns a copy of the state with a new radius
sourcepub fn add_sma(self, delta_sma: f64) -> Self
pub fn add_sma(self, delta_sma: f64) -> Self
Returns a copy of the state with a provided SMA added to the current one
sourcepub fn sma_altitude(&self) -> f64
pub fn sma_altitude(&self) -> f64
Returns the SMA altitude in km
sourcepub fn add_ecc(self, delta_ecc: f64) -> Self
pub fn add_ecc(self, delta_ecc: f64) -> Self
Returns a copy of the state with a provided ECC added to the current one
sourcepub fn add_inc(self, delta_inc: f64) -> Self
pub fn add_inc(self, delta_inc: f64) -> Self
Returns a copy of the state with a provided INC added to the current one
sourcepub fn add_aop(self, delta_aop: f64) -> Self
pub fn add_aop(self, delta_aop: f64) -> Self
Returns a copy of the state with a provided AOP added to the current one
sourcepub fn add_raan(self, delta_raan: f64) -> Self
pub fn add_raan(self, delta_raan: f64) -> Self
Returns a copy of the state with a provided RAAN added to the current one
sourcepub fn ta(&self) -> f64
pub fn ta(&self) -> f64
Returns the true anomaly in degrees between 0 and 360.0
NOTE: This function will emit a warning stating that the TA should be avoided if in a very near circular orbit Code from https://github.com/ChristopherRabotin/GMAT/blob/80bde040e12946a61dae90d9fc3538f16df34190/src/gmatutil/util/StateConversionUtil.cpp#L6835
LIMITATION: For an orbit whose true anomaly is (very nearly) 0.0 or 180.0, this function may return either 0.0 or 180.0 with a very small time increment. This is due to the precision of the cosine calculation: if the arccosine calculation is out of bounds, the sign of the cosine of the true anomaly is used to determine whether the true anomaly should be 0.0 or 180.0. In other words, there is an ambiguity in the computation in the true anomaly exactly at 180.0 and 0.0.
sourcepub fn add_ta(self, delta_ta: f64) -> Self
pub fn add_ta(self, delta_ta: f64) -> Self
Returns a copy of the state with a provided TA added to the current one
sourcepub fn with_apoapsis_periapsis(self, new_ra: f64, new_rp: f64) -> Self
pub fn with_apoapsis_periapsis(self, new_ra: f64, new_rp: f64) -> Self
Returns a copy of this state with the provided apoasis and periapse
sourcepub fn add_apoapsis_periapsis(self, delta_ra: f64, delta_rp: f64) -> Self
pub fn add_apoapsis_periapsis(self, delta_ra: f64, delta_rp: f64) -> Self
Returns a copy of this state with the provided apoasis and periapse added to the current values
sourcepub fn aol(&self) -> f64
pub fn aol(&self) -> f64
Returns the argument of latitude in degrees
NOTE: If the orbit is near circular, the AoL will be computed from the true longitude instead of relying on the ill-defined true anomaly.
sourcepub fn periapsis(&self) -> f64
pub fn periapsis(&self) -> f64
Returns the radius of periapsis (or perigee around Earth), in kilometers.
sourcepub fn apoapsis(&self) -> f64
pub fn apoapsis(&self) -> f64
Returns the radius of apoapsis (or apogee around Earth), in kilometers.
sourcepub fn periapsis_altitude(&self) -> f64
pub fn periapsis_altitude(&self) -> f64
Returns the altitude of periapsis (or perigee around Earth), in kilometers.
sourcepub fn apoapsis_altitude(&self) -> f64
pub fn apoapsis_altitude(&self) -> f64
Returns the altitude of apoapsis (or apogee around Earth), in kilometers.
sourcepub fn ea(&self) -> f64
pub fn ea(&self) -> f64
Returns the eccentric anomaly in degrees
This is a conversion from GMAT’s StateConversionUtil::TrueToEccentricAnomaly
sourcepub fn ma(&self) -> f64
pub fn ma(&self) -> f64
Returns the mean anomaly in degrees
This is a conversion from GMAT’s StateConversionUtil::TrueToMeanAnomaly
sourcepub fn semi_parameter(&self) -> f64
pub fn semi_parameter(&self) -> f64
Returns the semi parameter (or semilatus rectum)
sourcepub fn is_brouwer_short_valid(&self) -> bool
pub fn is_brouwer_short_valid(&self) -> bool
Returns whether this state satisfies the requirement to compute the Mean Brouwer Short orbital element set.
This is a conversion from GMAT’s StateConversionUtil::CartesianToBrouwerMeanShort.
The details are at the log level info
.
NOTE: Mean Brouwer Short are only defined around Earth. However, nyx
does not check the
main celestial body around which the state is defined (GMAT does perform this verification).
sourcepub fn geodetic_longitude(&self) -> f64
pub fn geodetic_longitude(&self) -> f64
Returns the geodetic longitude (λ) in degrees. Value is between 0 and 360 degrees.
Although the reference is not Vallado, the math from Vallado proves to be equivalent. Reference: G. Xu and Y. Xu, “GPS”, DOI 10.1007/978-3-662-50367-6_2, 2016
sourcepub fn geodetic_latitude(&self) -> f64
pub fn geodetic_latitude(&self) -> f64
Returns the geodetic latitude (φ) in degrees. Value is between -180 and +180 degrees.
Reference: Vallado, 4th Ed., Algorithm 12 page 172.
sourcepub fn geodetic_height(&self) -> f64
pub fn geodetic_height(&self) -> f64
Returns the geodetic height in km.
Reference: Vallado, 4th Ed., Algorithm 12 page 172.
sourcepub fn right_ascension(&self) -> f64
pub fn right_ascension(&self) -> f64
Returns the right ascension of this orbit in degrees
sourcepub fn declination(&self) -> f64
pub fn declination(&self) -> f64
Returns the declination of this orbit in degrees
sourcepub fn semi_minor_axis(&self) -> f64
pub fn semi_minor_axis(&self) -> f64
Returns the semi minor axis in km, includes code for a hyperbolic orbit
sourcepub fn velocity_declination(&self) -> f64
pub fn velocity_declination(&self) -> f64
Returns the velocity declination of this orbit in degrees
pub fn b_plane(&self) -> Result<BPlane, NyxError>
sourcepub fn vinf_periapsis(&self, turn_angle_degrees: f64) -> Result<f64, NyxError>
pub fn vinf_periapsis(&self, turn_angle_degrees: f64) -> Result<f64, NyxError>
Returns the radius of periapse in kilometers for the provided turn angle of this hyperbolic orbit.
sourcepub fn vinf_turn_angle(&self, periapsis_km: f64) -> Result<f64, NyxError>
pub fn vinf_turn_angle(&self, periapsis_km: f64) -> Result<f64, NyxError>
Returns the turn angle in degrees for the provided radius of periapse passage of this hyperbolic orbit
sourcepub fn hyperbolic_anomaly(&self) -> Result<f64, NyxError>
pub fn hyperbolic_anomaly(&self) -> Result<f64, NyxError>
Returns the hyperbolic anomaly in degrees between 0 and 360.0
sourcepub fn dcm_from_traj_frame(&self, from: Frame) -> Result<Matrix3<f64>, NyxError>
pub fn dcm_from_traj_frame(&self, from: Frame) -> Result<Matrix3<f64>, NyxError>
Returns the direct cosine rotation matrix to convert to this state’s frame (inertial or otherwise).
Example
let dcm_vnc2inertial = orbit.dcm_from_traj_frame(Frame::VNC)?; let vector_inertial = dcm_vnc2inertial * vector_vnc;
sourcepub fn dcm6x6_from_traj_frame(
&self,
from: Frame
) -> Result<Matrix6<f64>, NyxError>
pub fn dcm6x6_from_traj_frame(
&self,
from: Frame
) -> Result<Matrix6<f64>, NyxError>
Returns a 6x6 DCM to convert to this inertial state. WARNING: This DCM does NOT contain the corrections needed for the transport theorem, and therefore the velocity rotation is wrong.
sourcepub fn with_dv(self, dv: Vector3<f64>) -> Self
pub fn with_dv(self, dv: Vector3<f64>) -> Self
Copies this orbit after applying the provided delta-v (in km/s)
sourcepub fn rotate_by(&mut self, dcm: Matrix6<f64>)
pub fn rotate_by(&mut self, dcm: Matrix6<f64>)
Rotate this state provided a direct cosine matrix of position and velocity
sourcepub fn with_rotation_by(&self, dcm: Matrix6<f64>) -> Self
pub fn with_rotation_by(&self, dcm: Matrix6<f64>) -> Self
Rotate this state provided a direct cosine matrix of position and velocity
sourcepub fn position_rotated_by(&mut self, dcm: Matrix3<f64>)
pub fn position_rotated_by(&mut self, dcm: Matrix3<f64>)
Rotate the position and the velocity of this state provided a direct cosine matrix of position and velocity WARNING: You only want to use this if you’ll only be using the position components of the rotated state. This does not account for the transport theorem and therefore is physically WRONG.
sourcepub fn with_position_rotated_by(&self, dcm: Matrix3<f64>) -> Self
pub fn with_position_rotated_by(&self, dcm: Matrix3<f64>) -> Self
Rotate the position of this state provided a direct cosine matrix of position and velocity WARNING: You only want to use this if you’ll only be using the position components of the rotated state. This does not account for the transport theorem and therefore is physically WRONG.
sourcepub fn enable_stm(&mut self)
pub fn enable_stm(&mut self)
Sets the STM of this state of identity, which also enables computation of the STM for spacecraft navigation
sourcepub fn disable_stm(&mut self)
pub fn disable_stm(&mut self)
Disable the STM of this state
sourcepub fn without_stm(self) -> Self
pub fn without_stm(self) -> Self
Copies the current state but disables the STM
sourcepub fn rss(&self, other: &Self) -> (f64, f64)
pub fn rss(&self, other: &Self) -> (f64, f64)
Returns the root sum square error between this state and the other, in kilometers for the position and kilometers per second in velocity
sourcepub fn eq_within(&self, other: &Self, radial_tol: f64, velocity_tol: f64) -> bool
pub fn eq_within(&self, other: &Self, radial_tol: f64, velocity_tol: f64) -> bool
Returns whether this orbit and another are equal within the specified radial and velocity absolute tolerances
sourcepub fn to_objectives(
&self,
params: &[StateParameter]
) -> Result<Vec<Objective>, NyxError>
pub fn to_objectives(
&self,
params: &[StateParameter]
) -> Result<Vec<Objective>, NyxError>
Use the current orbit as a template to generate mission design objectives. Note: this sets the objective tolerances to be quite tight, so consider modifying them.
sourcepub fn disperse(
&self,
mean: Vector6<f64>,
cov: Matrix6<f64>
) -> Result<MultivariateNormal<Orbit>, NyxError>
pub fn disperse(
&self,
mean: Vector6<f64>,
cov: Matrix6<f64>
) -> Result<MultivariateNormal<Orbit>, NyxError>
Create a multivariate normal dispersion structure from this orbit with the provided mean and covariance, specified as {X, Y, Z, VX, VY, VZ} in km and km/s
sourcepub fn disperse_zero_mean(
&self,
cov: Matrix6<f64>
) -> Result<MultivariateNormal<Orbit>, NyxError>
pub fn disperse_zero_mean(
&self,
cov: Matrix6<f64>
) -> Result<MultivariateNormal<Orbit>, NyxError>
Create a multivariate normal dispersion structure from this orbit with the provided covariance, specified as {X, Y, Z, VX, VY, VZ} in km and km/s
Trait Implementations
sourceimpl Add<Matrix<f64, Const<6>, Const<1>, <DefaultAllocator as Allocator<f64, Const<6>, Const<1>>>::Buffer>> for Orbit
impl Add<Matrix<f64, Const<6>, Const<1>, <DefaultAllocator as Allocator<f64, Const<6>, Const<1>>>::Buffer>> for Orbit
sourceimpl AddAssign<Orbit> for Orbit
impl AddAssign<Orbit> for Orbit
sourcefn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
+=
operation. Read moresourceimpl EstimateFrom<BaseSpacecraft<GuidanceMode>> for Orbit
impl EstimateFrom<BaseSpacecraft<GuidanceMode>> for Orbit
sourcefn extract(from: Spacecraft) -> Self
fn extract(from: Spacecraft) -> Self
sourceimpl EstimateFrom<Orbit> for Orbit
impl EstimateFrom<Orbit> for Orbit
sourceimpl EventEvaluator<Orbit> for Event
impl EventEvaluator<Orbit> for Event
fn epoch_precision(&self) -> Duration
fn value_precision(&self) -> f64
fn eval(&self, state: &Orbit) -> f64
fn eval_crossing(&self, prev_state: &S, next_state: &S) -> bool
sourceimpl EventEvaluator<Orbit> for PenumbraEvent
impl EventEvaluator<Orbit> for PenumbraEvent
sourcefn epoch_precision(&self) -> Duration
fn epoch_precision(&self) -> Duration
Stop searching when the time has converged to less than 0.1 seconds
sourcefn value_precision(&self) -> f64
fn value_precision(&self) -> f64
Finds the slightest penumbra within 2%(i.e. 98% in visibility)
fn eval(&self, observer: &Orbit) -> f64
fn eval_crossing(&self, prev_state: &S, next_state: &S) -> bool
sourceimpl EventEvaluator<Orbit> for UmbraEvent
impl EventEvaluator<Orbit> for UmbraEvent
sourcefn epoch_precision(&self) -> Duration
fn epoch_precision(&self) -> Duration
Stop searching when the time has converged to less than 0.1 seconds
sourcefn value_precision(&self) -> f64
fn value_precision(&self) -> f64
Finds the darkest part of an eclipse within 2% of penumbra (i.e. 98% in shadow)
fn eval(&self, observer: &Orbit) -> f64
fn eval_crossing(&self, prev_state: &S, next_state: &S) -> bool
sourceimpl InterpState for Orbit
impl InterpState for Orbit
sourcefn params() -> Vec<StateParameter>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
fn params() -> Vec<StateParameter>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
sourcefn value_and_deriv(&self, param: &StateParameter) -> Result<(f64, f64), NyxError>
fn value_and_deriv(&self, param: &StateParameter) -> Result<(f64, f64), NyxError>
sourcefn set_value_and_deriv(
&mut self,
param: &StateParameter,
value: f64,
_: f64
) -> Result<(), NyxError>
fn set_value_and_deriv(
&mut self,
param: &StateParameter,
value: f64,
_: f64
) -> Result<(), NyxError>
sourceimpl MeasurementDevice<Orbit, StdMeasurement> for GroundStation
impl MeasurementDevice<Orbit, StdMeasurement> for GroundStation
sourcefn measure(&self, rx: &Orbit) -> Option<StdMeasurement>
fn measure(&self, rx: &Orbit) -> Option<StdMeasurement>
Perform a measurement from the ground station to the receiver (rx).
fn orbital_state(&self) -> Orbit
sourcefn expected_state(&self) -> Orbit
fn expected_state(&self) -> Orbit
sourceimpl PartialEq<Orbit> for Orbit
impl PartialEq<Orbit> for Orbit
sourceimpl State for Orbit
impl State for Orbit
Implementation of Orbit as a State for orbital dynamics with STM
sourcefn zeros() -> Self
fn zeros() -> Self
Returns a state whose position, velocity and frame are zero, and STM is I_{6x6}.
type VecLength = Const<42>
sourcefn reset_stm(&mut self)
fn reset_stm(&mut self)
sourcefn as_vector(&self) -> Result<OVector<f64, Const<42>>, NyxError>
fn as_vector(&self) -> Result<OVector<f64, Const<42>>, NyxError>
sourcefn set(
&mut self,
epoch: Epoch,
vector: &OVector<f64, Const<42>>
) -> Result<(), NyxError>
fn set(
&mut self,
epoch: Epoch,
vector: &OVector<f64, Const<42>>
) -> Result<(), NyxError>
sourcefn stm(&self) -> Result<Matrix6<f64>, NyxError>
fn stm(&self) -> Result<Matrix6<f64>, NyxError>
sourcefn add(self, other: OVector<f64, Self::Size>) -> Self
fn add(self, other: OVector<f64, Self::Size>) -> Self
sourceimpl SubAssign<Orbit> for Orbit
impl SubAssign<Orbit> for Orbit
sourcefn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
-=
operation. Read moreimpl Copy for Orbit
Auto Trait Implementations
impl RefUnwindSafe for Orbit
impl Send for Orbit
impl Sync for Orbit
impl Unpin for Orbit
impl UnwindSafe for Orbit
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Printing<T> for Twhere
T: Display,
impl<T> Printing<T> for Twhere
T: Display,
fn to_str(self) -> String
fn to_str(self) -> String
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Self
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read morefn 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).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.