1 #ifndef _YASIM_HXX 2 #define _YASIM_HXX 3 4 #include <FDM/flight.hxx> 5 #include <vector> 6 7 namespace yasim { class FGFDM; }; 8 9 class YASim : public FGInterface 10 { 11 public: 12 YASim(double dt); 13 ~YASim(); 14 15 // Subsystem API. 16 void bind() override; 17 void init() override; 18 void reinit() override; 19 void update(double dt) override; 20 21 // Subsystem identification. staticSubsystemClassId()22 static const char* staticSubsystemClassId() { return "yasim"; } 23 24 private: 25 void report(); 26 void copyFromYASim(); 27 void copyToYASim(bool copyState); 28 29 yasim::FGFDM* _fdm; 30 float _dt; 31 double _simTime; 32 enum { 33 NED, 34 UVW, 35 KNOTS, 36 MACH 37 } _speed_set; 38 39 class GearProps 40 { 41 public: 42 GearProps(SGPropertyNode_ptr gear_root); 43 44 SGPropertyNode_ptr has_brake; 45 SGPropertyNode_ptr wow; 46 SGPropertyNode_ptr compression_norm; 47 SGPropertyNode_ptr compression_m; 48 SGPropertyNode_ptr caster_angle_deg; 49 SGPropertyNode_ptr rollspeed_ms; 50 SGPropertyNode_ptr ground_is_solid; 51 SGPropertyNode_ptr ground_friction_factor; 52 }; 53 54 SGPropertyNode_ptr _crashed; 55 SGPropertyNode_ptr _pressure_inhg, _temp_degc, _density_slugft3; 56 SGPropertyNode_ptr _gear_agl_m, _gear_agl_ft; 57 SGPropertyNode_ptr _pilot_g, _speed_setprop; 58 SGPropertyNode_ptr _catapult_launch_cmd, _tailhook_position_norm; 59 SGPropertyNode_ptr _launchbar_position_norm, _launchbar_holdback_pos_norm; 60 SGPropertyNode_ptr _launchbar_state, _launchbar_strop; 61 std::vector<GearProps> _gearProps; 62 }; 63 64 #endif // _YASIM_HXX 65