]> git.mxchange.org Git - flightgear.git/blob - src/AIModel/performancedata.hxx
Stuart Buchanan:
[flightgear.git] / src / AIModel / performancedata.hxx
1 #ifndef PERFORMANCEDATA_HXX
2 #define PERFORMANCEDATA_HXX
3
4 #include <string>
5 #include <map>
6
7 class FGAIAircraft;
8
9 /**
10 Data storage for aircraft performance data. This is used to properly simulate the flight of AIAircrafts.
11  
12         @author Thomas F�rster <t.foerster@biologie.hu-berlin.de>
13 */
14 class PerformanceData
15 {
16 public:
17     PerformanceData(double acceleration,
18                     double deceleration,
19                     double climbRate,
20                     double descentRate,
21                     double vRotate,
22                     double vTakeOff,
23                     double vClimb,
24                     double vCruise,
25                     double vDescent,
26                     double vApproach,
27                     double vTouchdown,
28                     double vTaxi);
29     PerformanceData(const std::string& filename);
30     ~PerformanceData();
31
32     double actualSpeed(FGAIAircraft* ac, double tgt_speed, double dt);
33     double actualBankAngle(FGAIAircraft* ac, double tgt_roll, double dt);
34     double actualPitch(FGAIAircraft* ac, double tgt_pitch, double dt);
35     double actualHeading(FGAIAircraft* ac, double tgt_heading, double dt);
36     double actualAltitude(FGAIAircraft* ac, double tgt_altitude, double dt);
37     double actualVerticalSpeed(FGAIAircraft* ac, double tgt_vs, double dt);
38
39     bool gearExtensible(const FGAIAircraft* ac);
40
41     inline double climbRate        () { return _climbRate; };
42     inline double descentRate      () { return _descentRate; };
43     inline double vRotate          () { return _vRotate; };
44     inline double maximumBankAngle () { return _maxbank; };
45     inline double acceleration     () { return _acceleration; };
46     inline double vTaxi            () { return _vTaxi; };
47     inline double vTakeoff         () { return _vTakeOff; };
48     inline double vClimb           () { return _vClimb; };
49     inline double vDescent         () { return _vDescent; };
50     inline double vApproach        () { return _vApproach; };
51     inline double vTouchdown       () { return _vTouchdown; };
52     inline double vCruise          () { return _vCruise; };
53     
54 private:
55     double _acceleration;
56     double _deceleration;
57     double _climbRate;
58     double _descentRate;
59     double _vRotate;
60     double _vTakeOff;
61     double _vClimb;
62     double _vCruise;
63     double _vDescent;
64     double _vApproach;
65     double _vTouchdown;
66     double _vTaxi;
67
68     double _rollrate;
69     double _maxbank;
70 };
71
72 #endif