pub enum BcReferenceStandard {
Icao,
ArmyStandardMetro,
}Expand description
Which standard atmosphere a ballistic coefficient’s numeric value is referenced to (MBA-1365).
A BC is not a pure property of the bullet — it also encodes an assumed reference air
density. This engine’s retardation constant (crate::constants::CD_TO_RETARD) is
calibrated against the ICAO Standard Atmosphere’s sea-level density
(crate::constants::ICAO_DENSITY_LB_FT3), which most modern published BCs already
assume. Some vendors (notably Sierra, Hornady, and Barnes for many bullets) instead
publish BCs referenced to the older, denser Army Standard Metro atmosphere
(crate::constants::ASM_DENSITY_LB_FT3). Feeding an ASM-referenced BC into this
engine as if it were ICAO-referenced under-predicts drag by about 1.8% — declaring
ArmyStandardMetro here corrects for that exactly once, at input normalization (see
crate::constants::ASM_TO_ICAO_BC and TrajectorySolver::new).
Does not apply when a custom drag table (BallisticInputs::custom_drag_table) is
active: that path divides by sectional density, not a BC value, so no BC reference
conversion is physically meaningful there (see
BallisticInputs::bc_reference_standard_inert_warning).
Variants§
Icao
The ICAO Standard Atmosphere reference density — matches this engine’s retardation constant. The default; byte-identical to pre-MBA-1365 behavior.
ArmyStandardMetro
The (older) Army Standard Metro reference density used by some vendor-published BCs (e.g. many Sierra/Hornady/Barnes bullets).
Trait Implementations§
Source§impl Clone for BcReferenceStandard
impl Clone for BcReferenceStandard
Source§fn clone(&self) -> BcReferenceStandard
fn clone(&self) -> BcReferenceStandard
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 BcReferenceStandard
Source§impl Debug for BcReferenceStandard
impl Debug for BcReferenceStandard
Source§impl Default for BcReferenceStandard
impl Default for BcReferenceStandard
Source§fn default() -> BcReferenceStandard
fn default() -> BcReferenceStandard
impl Eq for BcReferenceStandard
Source§impl PartialEq for BcReferenceStandard
impl PartialEq for BcReferenceStandard
impl StructuralPartialEq for BcReferenceStandard
Source§impl ValueEnum for BcReferenceStandard
impl ValueEnum for BcReferenceStandard
Auto Trait Implementations§
impl Freeze for BcReferenceStandard
impl RefUnwindSafe for BcReferenceStandard
impl Send for BcReferenceStandard
impl Sync for BcReferenceStandard
impl Unpin for BcReferenceStandard
impl UnsafeUnpin for BcReferenceStandard
impl UnwindSafe for BcReferenceStandard
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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.