]> git.mxchange.org Git - flightgear.git/blob - src/FDM/YASim/YASim.hxx
Fix for bug 1304 - crash loading XML route
[flightgear.git] / src / FDM / YASim / YASim.hxx
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 public:
11     YASim(double dt);
12     ~YASim();
13
14     // Load externally set stuff into the FDM
15     virtual void init();
16     virtual void bind();
17     virtual void reinit();
18
19     // Run an iteration
20     virtual void update(double dt);
21
22  private:
23
24     void report();
25     void copyFromYASim();
26     void copyToYASim(bool copyState);
27
28     yasim::FGFDM* _fdm;
29     float _dt;
30     double _simTime;
31     enum {
32         NED,
33         UVW,
34         KNOTS,
35         MACH
36     } _speed_set;
37
38     class GearProps
39     {
40     public:
41         GearProps(SGPropertyNode_ptr gear_root);
42
43         SGPropertyNode_ptr has_brake;
44         SGPropertyNode_ptr wow;
45         SGPropertyNode_ptr compression_norm;
46         SGPropertyNode_ptr compression_m;
47         SGPropertyNode_ptr caster_angle_deg;
48         SGPropertyNode_ptr rollspeed_ms;
49         SGPropertyNode_ptr ground_is_solid;
50         SGPropertyNode_ptr ground_friction_factor;
51     };
52
53     SGPropertyNode_ptr _crashed;
54     SGPropertyNode_ptr _pressure_inhg, _temp_degc, _density_slugft3;
55     SGPropertyNode_ptr _gear_agl_m, _gear_agl_ft;
56     SGPropertyNode_ptr _pilot_g, _speed_setprop;
57     SGPropertyNode_ptr _catapult_launch_cmd, _tailhook_position_norm;
58     SGPropertyNode_ptr _launchbar_position_norm, _launchbar_holdback_pos_norm;
59     SGPropertyNode_ptr _launchbar_state, _launchbar_strop;
60     std::vector<GearProps> _gearProps;
61 };
62
63 #endif // _YASIM_HXX