pub struct TrajectoryResult {Show 20 fields
pub max_range: f64,
pub max_height: f64,
pub time_of_flight: f64,
pub impact_velocity: f64,
pub impact_energy: f64,
pub projectile_mass_kg: f64,
pub line_of_sight_height_m: f64,
pub station_speed_of_sound_mps: f64,
pub termination: TrajectoryTermination,
pub points: Vec<TrajectoryPoint>,
pub sampled_points: Option<Vec<TrajectorySample>>,
pub min_pitch_damping: Option<f64>,
pub transonic_mach: Option<f64>,
pub angular_state: Option<AngularState>,
pub max_yaw_angle: Option<f64>,
pub max_precession_angle: Option<f64>,
pub aerodynamic_jump: Option<AerodynamicJumpComponents>,
pub mach_1_2_distance_m: Option<f64>,
pub mach_1_0_distance_m: Option<f64>,
pub mach_0_9_distance_m: Option<f64>,
}Fields§
§max_range: f64§max_height: f64§time_of_flight: f64§impact_velocity: f64§impact_energy: f64§projectile_mass_kg: f64Projectile mass used to derive full-state observation energy.
line_of_sight_height_m: f64Height of the horizontal line of sight in the solver’s ground-referenced frame.
station_speed_of_sound_mps: f64Station speed of sound used for Mach observations and transition flags.
termination: TrajectoryTerminationExplicit reason the integration stopped; consumers must not infer this from the endpoint.
points: Vec<TrajectoryPoint>§sampled_points: Option<Vec<TrajectorySample>>§min_pitch_damping: Option<f64>§transonic_mach: Option<f64>§angular_state: Option<AngularState>§max_yaw_angle: Option<f64>§max_precession_angle: Option<f64>§aerodynamic_jump: Option<AerodynamicJumpComponents>§mach_1_2_distance_m: Option<f64>Downrange distance (m) of the downward Mach 1.2 crossing (station speed of sound),
populated identically by all three solver paths (Euler/RK4/RK45). None if the
trajectory never crosses 1.2 while descending (e.g. launched already below 1.2, or the
solve terminates while still above it). MBA-1405: feeds mv_calibration_window.
mach_1_0_distance_m: Option<f64>Downrange distance (m) of the downward Mach 1.0 crossing. None if the trajectory
never goes subsonic within the solve. MBA-1405: the far edge of the MV calibration
window (mv_calibration_window) is this distance.
mach_0_9_distance_m: Option<f64>Downrange distance (m) of the downward Mach 0.9 crossing. None if the trajectory
never crosses 0.9 while descending. MBA-1405: feeds dsf_window_start. NOTE: unlike
the 1.2/1.0 crossings, this one is intentionally NOT reflected in the historical flat
transonic_distances Vec threaded through
crate::trajectory_sampling::TrajectoryData — existing consumers of that Vec
interpret it strictly as {1.2, 1.0}, so this field is the only place the 0.9
crossing is recorded.
Implementations§
Source§impl TrajectoryResult
impl TrajectoryResult
Sourcepub fn observation_at_range_checked(
&self,
distance_m: f64,
) -> Result<TrajectoryObservation, TrajectoryObservationError>
pub fn observation_at_range_checked( &self, distance_m: f64, ) -> Result<TrajectoryObservation, TrajectoryObservationError>
Return a checked full-state observation at an in-range downrange distance.
Unlike Self::position_at_range, this method never clamps an out-of-range request to
the final point.
Sourcepub fn sample_observations(
&self,
interval_m: f64,
max_samples: usize,
) -> Result<Vec<TrajectoryObservation>, TrajectoryObservationError>
pub fn sample_observations( &self, interval_m: f64, max_samples: usize, ) -> Result<Vec<TrajectoryObservation>, TrajectoryObservationError>
Sample checked observations on a regular distance grid and include the exact terminal point once.
Regular grid points are strictly before the actual reached range. If the terminal is
off-grid it is appended; if it is on-grid it appears only as the final terminal sample.
max_samples lets protocol layers enforce a limit smaller than the engine-wide hard cap.
Trait Implementations§
Source§impl Clone for TrajectoryResult
impl Clone for TrajectoryResult
Source§fn clone(&self) -> TrajectoryResult
fn clone(&self) -> TrajectoryResult
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for TrajectoryResult
impl RefUnwindSafe for TrajectoryResult
impl Send for TrajectoryResult
impl Sync for TrajectoryResult
impl Unpin for TrajectoryResult
impl UnwindSafe for TrajectoryResult
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<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 more§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).§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.