1pub use cli_api::{
19 calculate_zero_angle, calculate_zero_angle_with_conditions, estimate_bc_fit,
20 estimate_bc_from_trajectory, interpolate_powder_temp_curve,
21 resolve_powder_adjusted_velocity, run_monte_carlo, run_monte_carlo_with_direction_std_dev,
22 run_monte_carlo_with_wind, run_monte_carlo_with_wind_and_direction_std_dev,
23 run_monte_carlo_with_wind_and_direction_std_dev_seeded, AtmosphericConditions,
24 BallisticInputs, BallisticsError, BcEstimate, BcFitMode, MonteCarloParams,
25 MonteCarloResults, TrajectoryPoint, TrajectoryResult, TrajectorySolver, WindConditions,
26 DEFAULT_HIT_RADIUS_M, MAX_TRAJECTORY_POINTS, TARGET_NOT_REACHED_SENTINEL_M,
27};
28pub use atmosphere::{AtmoSegment, AtmoSock};
29pub use drag_model::DragModel;
30pub use moving_target::{
31 calculate_lead, lead_from_tof, mover_ring, LeadComponents, LeadError, LeadSolution,
32};
33pub use solve_json::{
34 decode_solve_request_v1, ResolvedSolveRequestV1, SolveErrorCodeV1, SolveErrorEnvelopeV1,
35 SolveRequestV1, SolveSuccessV1, MAX_SOLVE_JSON_SAMPLES_V1, SOLVE_JSON_SCHEMA_VERSION_V1,
36};
37pub use solve_v1::solve_v1;
38pub use trajectory_observation::{
39 TrajectoryObservation, TrajectoryObservationError, TrajectoryObservationFlag,
40 TrajectoryTermination,
41};
42pub use trajectory_sampling::MAX_TRAJECTORY_SAMPLES;
43
44pub mod cli_api;
46pub mod moving_target;
47mod drag_model;
48#[cfg(feature = "ffi")]
51pub mod ffi;
52pub mod solve_json;
53pub mod solve_v1;
54pub mod terminal_plot;
55pub mod truing;
57pub mod wez;
59pub mod trajectory_observation;
60#[cfg(target_arch = "wasm32")]
61pub mod wasm;
62#[cfg(test)]
63mod wasm_tests;
64pub mod atmosphere;
66pub mod constants;
67pub mod drag;
68mod drag_tables;
69pub mod wind;
70pub mod wind_shear;
72pub mod derivatives;
74pub mod trajectory_sampling;
75pub mod fast_trajectory;
77pub mod trajectory_integration;
79pub mod pitch_damping;
81pub mod spin_decay;
82pub mod spin_drift;
83pub mod spin_drift_advanced;
84pub mod precession_nutation;
86pub mod aerodynamic_jump;
88pub mod angle_calculations;
90pub mod transonic_drag;
91pub mod reynolds;
93pub mod form_factor;
95pub mod bc_estimation;
97pub mod cluster_bc;
98pub mod monte_carlo;
99pub mod stability;
100pub mod stability_advanced;
101
102#[cfg(feature = "online")]
104pub mod api_client;
105
106#[cfg(feature = "online")]
108pub mod bc_table_download;
109
110pub mod bc_table;
112
113pub mod bc_table_5d;
115
116#[cfg(feature = "profile-import")]
118pub mod profile_import;
119
120pub(crate) type InternalBallisticInputs = BallisticInputs;
122
123#[derive(Debug, Clone)]
125pub struct BCSegmentData {
126 pub velocity_min: f64,
127 pub velocity_max: f64,
128 pub bc_value: f64,
129}