FlightGear next
YASim.hxx
Go to the documentation of this file.
1#ifndef _YASIM_HXX
2#define _YASIM_HXX
3
4#include <FDM/flight.hxx>
5#include <vector>
6
7namespace yasim { class FGFDM; };
8
9class YASim : public FGInterface
10{
11public:
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.
22 static const char* staticSubsystemClassId() { return "yasim"; }
23
25 std::function<void(const std::string& from, const std::string& to)> fn
26 ) override;
27
28private:
29 void report();
30 void copyFromYASim();
31 void copyToYASim(bool copyState);
32
33 yasim::FGFDM* _fdm;
34 float _dt;
35 double _simTime;
36 enum {
37 NED,
38 UVW,
39 KNOTS,
40 MACH
41 } _speed_set;
42
43 class GearProps
44 {
45 public:
46 GearProps(SGPropertyNode_ptr gear_root);
47
48 SGPropertyNode_ptr has_brake;
49 SGPropertyNode_ptr wow;
50 SGPropertyNode_ptr compression_norm;
51 SGPropertyNode_ptr compression_m;
52 SGPropertyNode_ptr caster_angle_deg;
53 SGPropertyNode_ptr rollspeed_ms;
54 SGPropertyNode_ptr ground_is_solid;
55 SGPropertyNode_ptr ground_friction_factor;
56 };
57
58 SGPropertyNode_ptr _crashed;
59 SGPropertyNode_ptr _pressure_inhg, _temp_degc, _density_slugft3;
60 SGPropertyNode_ptr _gear_agl_m, _gear_agl_ft;
61 SGPropertyNode_ptr _pilot_g, _speed_setprop;
62 SGPropertyNode_ptr _catapult_launch_cmd, _tailhook_position_norm;
63 SGPropertyNode_ptr _launchbar_position_norm, _launchbar_holdback_pos_norm;
64 SGPropertyNode_ptr _launchbar_state, _launchbar_strop;
65 std::vector<GearProps> _gearProps;
66};
67
68#endif // _YASIM_HXX
void property_associations(std::function< void(const std::string &from, const std::string &to)> fn) override
Definition YASim.cxx:57
~YASim()
Definition YASim.cxx:50
void bind() override
Definition YASim.cxx:92
void init() override
Definition YASim.cxx:129
void reinit() override
Reinit the FDM.
Definition YASim.cxx:591
YASim(double dt)
Definition YASim.cxx:38
void update(double dt) override
Definition YASim.cxx:256
static const char * staticSubsystemClassId()
Definition YASim.hxx:22
void report(Airplane *a)