pub struct ProjectileV1 {
pub mass_kg: f64,
pub diameter_m: f64,
pub length_m: Option<f64>,
pub drag_model: DragModelV1,
pub ballistic_coefficient: f64,
pub drag_table: Option<DragTableV1>,
pub bc_segments: Option<Vec<BcSegmentV1>>,
}Expand description
Projectile inputs supported by solve-json v1.
Fields§
§mass_kg: f64§diameter_m: f64§length_m: Option<f64>§drag_model: DragModelV1§ballistic_coefficient: f64§drag_table: Option<DragTableV1>A caller-supplied drag curve replacing drag_model’s (MBA-1597). See DragTableV1.
bc_segments: Option<Vec<BcSegmentV1>>A velocity-banded BC ladder (MBA-1598): solve-json’s form of the CLI’s --bc-segment.
See BcSegmentV1 for the band rules.
ballistic_coefficient stays required and validated beside it, but flies only in an
interior gap between two bands, and blended into the bands within up to 25 fps either
side of a gap edge. Below the lowest band, or at or above the highest, the nearest edge
band applies, so under a gapless ladder the scalar never flies. A one-band ladder’s BC
must match ballistic_coefficient (see ONE_BAND_BC_RELATIVE_TOLERANCE_V1). Band BCs are referenced to drag_model, and bands are selected by airspeed (speed relative to
the air mass). Interior band and gap edges are smoothstep-blended
(velocity_segment_bc in src/bc_estimation.rs). Refused alongside
drag_table, which replaces the drag_model curve the band BCs are measured against,
and alongside corrections.bc5d_table_path, which builds its own ladder from
ballistic_coefficient.
Trait Implementations§
Source§impl Clone for ProjectileV1
impl Clone for ProjectileV1
Source§impl Debug for ProjectileV1
impl Debug for ProjectileV1
Source§impl<'de> Deserialize<'de> for ProjectileV1
impl<'de> Deserialize<'de> for ProjectileV1
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ProjectileV1
impl PartialEq for ProjectileV1
Source§impl Serialize for ProjectileV1
impl Serialize for ProjectileV1
impl StructuralPartialEq for ProjectileV1
Auto Trait Implementations§
impl Freeze for ProjectileV1
impl RefUnwindSafe for ProjectileV1
impl Send for ProjectileV1
impl Sync for ProjectileV1
impl Unpin for ProjectileV1
impl UnsafeUnpin for ProjectileV1
impl UnwindSafe for ProjectileV1
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.