pub struct ZeroCrossings {
pub near_m: Option<f64>,
pub far_m: Option<f64>,
}Expand description
Both line-of-sight crossings a single fixed bore angle can produce (Tier 2 whole-branch
review, C2): a rifle whose sight sits above its bore generally crosses a level line of
sight TWICE on a rising shot — an ascending “near zero” close to the muzzle, and a
descending “far zero” past the apex. The classic 25/300-yard battle-zero pairing is one
bore angle producing both. TrajectorySolver’s internal find_zero_range and the public
calculate_zero_range_from_angle_* functions return both rather than silently choosing
one, because find_zero_angle’s own choice of root depends on the target distance it was
asked to solve for — the forward and inverse solvers are NOT a single-valued pair.
Either field may be None when the solved envelope doesn’t reach that crossing (e.g. a
short --max-range that stops before the far crossing, or a target height high enough
that the trajectory never rises to it at all). At least one is always Some on Ok.
Fields§
§near_m: Option<f64>Downrange distance (meters) of the near, ascending crossing, if the solved envelope reaches it.
far_m: Option<f64>Downrange distance (meters) of the far, descending crossing – what “sighted in at D yards” conventionally means – if the solved envelope reaches it.
Trait Implementations§
Source§impl Clone for ZeroCrossings
impl Clone for ZeroCrossings
Source§fn clone(&self) -> ZeroCrossings
fn clone(&self) -> ZeroCrossings
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 ZeroCrossings
Source§impl Debug for ZeroCrossings
impl Debug for ZeroCrossings
Source§impl PartialEq for ZeroCrossings
impl PartialEq for ZeroCrossings
impl StructuralPartialEq for ZeroCrossings
Auto Trait Implementations§
impl Freeze for ZeroCrossings
impl RefUnwindSafe for ZeroCrossings
impl Send for ZeroCrossings
impl Sync for ZeroCrossings
impl Unpin for ZeroCrossings
impl UnsafeUnpin for ZeroCrossings
impl UnwindSafe for ZeroCrossings
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> 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.