mach_1_crossing_range_m

Function mach_1_crossing_range_m 

Source
pub fn mach_1_crossing_range_m(result: &TrajectoryResult) -> Option<f64>
Expand description

The downrange distance (meters) where the trajectory’s station Mach first drops below 1.0 (the “crossed_subsonic” transition), linearly interpolated between the bracketing solved points.

Mirrors MachTransitionTracker::record_downward_crossings’s crossed_subsonic event (cli_api.rs ~1744), reimplemented here because that tracker is a private cli_api.rs type, and the crossing distances it collects (transonic_distances) aren’t retained on TrajectoryResult itself — they’re only consumed to flag TrajectorySamples (trajectory_sampling::add_trajectory_flags), which requires trajectory sampling to be enabled. solve_profile_for_dsf solves with sampling off (it only needs result.points), so this recomputes the same crossing from the plain points array using the identical Mach divisor apply_dsf and the observation path use (velocity_magnitude / station_speed_of_sound_mps).

Returns None if the trajectory never goes subsonic within the solved points (still supersonic/transonic at the last point, an empty/degenerate solve, or a non-finite station speed of sound).