#ifndef CONTEXT_H #define CONTEXT_H #include #include #include #include "ace.h" typedef enum { BC_UNKNOWN = 0, BC_G1, BC_G2, BC_G3, BC_G4, BC_G5, BC_G6, BC_G7, } BallisticModel; typedef enum { ICAO, ASM, } AtmosphereModel; typedef struct { double scope_angle; double bullet_mass; double bore_height; double muzzle_velocity; double ballistic_coef; size_t drag_model; double twist_dir; } GunConfig; typedef struct { double temperature; double barometric_pressure; double relative_humidity; double wind_speed[2]; size_t wind_dir; AtmosphereModel atmosphere_model; } AtmoContext; typedef struct { double speed; double range; double inclination_angle; double latitude; size_t direction; } TargetContext; typedef struct { GunConfig gun; TargetContext target; AtmoContext atmosphere; size_t sim_steps; bool store_range_card; size_t stability_factor; } ATragMXContext; typedef struct { double w1; double w2; } Windage; typedef struct { double elev; Windage windage; double lead; double time_of_flight; double remaining_velocity; double remaining_energy; double coriolis_vdrift; double coriolis_hdrift; double spin_drift; double *range_card; } ATragMXSolution; #endif