pub struct ResolvedShotV1 {
pub max_range_m: f64,
pub zero_distance_m: Option<f64>,
pub muzzle_angle_rad: f64,
pub aim_azimuth_rad: f64,
pub shot_azimuth_rad: f64,
pub shooting_angle_rad: f64,
pub cant_angle_rad: f64,
pub target_height_m: f64,
pub ground_threshold_m: f64,
pub zero_poi_up_m: Option<f64>,
pub zero_poi_right_m: Option<f64>,
pub drops_reference: Option<DropsReferenceV1>,
}Expand description
Resolved shot geometry.
zero_distance_m records caller zeroing intent, while muzzle_angle_rad is always the
effective angle used by the engine. A zero-distance solve therefore populates both fields.
A raw request may also supply both together (0.33.0 decision-support Task 2’s
From<&ResolvedSolveRequestV1> for SolveRequestV1 always does, to round-trip a resolved
request): muzzle_angle_rad then wins outright for elevation and no elevation search
runs, but zero_distance_m is not otherwise inert – it still drives the
windage-convergence bias (sight_offset_lateral_m / zero_poi_right_m), still gates
equivalent_horizontal_range_m, and still widens the required wind coverage. A
zero_distance_elevation_not_resolved warning names this whenever both are supplied.
Fields§
§max_range_m: f64§zero_distance_m: Option<f64>§muzzle_angle_rad: f64§aim_azimuth_rad: f64§shot_azimuth_rad: f64§shooting_angle_rad: f64§cant_angle_rad: f64§target_height_m: f64§ground_threshold_m: f64§zero_poi_up_m: Option<f64>Echo of the requested deliberate vertical POI offset at the zero range, meters (MBA-1359). Present only when the raw request supplied it.
zero_poi_right_m: Option<f64>Echo of the requested deliberate horizontal POI offset at the zero range, meters (MBA-1359). Present only when the raw request supplied it.
drops_reference: Option<DropsReferenceV1>Echo of the requested drops-reference plane (MBA-1403). Present only when the raw request supplied it.
Trait Implementations§
Source§impl Clone for ResolvedShotV1
impl Clone for ResolvedShotV1
Source§fn clone(&self) -> ResolvedShotV1
fn clone(&self) -> ResolvedShotV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResolvedShotV1
impl Debug for ResolvedShotV1
Source§impl<'de> Deserialize<'de> for ResolvedShotV1
impl<'de> Deserialize<'de> for ResolvedShotV1
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 ResolvedShotV1
impl PartialEq for ResolvedShotV1
Source§impl Serialize for ResolvedShotV1
impl Serialize for ResolvedShotV1
impl StructuralPartialEq for ResolvedShotV1
Auto Trait Implementations§
impl Freeze for ResolvedShotV1
impl RefUnwindSafe for ResolvedShotV1
impl Send for ResolvedShotV1
impl Sync for ResolvedShotV1
impl Unpin for ResolvedShotV1
impl UnsafeUnpin for ResolvedShotV1
impl UnwindSafe for ResolvedShotV1
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.