Set min-macos-version for CMake 3.2.1
[fg:hoorays-flightgear.git] / src / Systems / pitot.hxx
1 // pitot.hxx - the pitot air system.
2 // Written by David Megginson, started 2002.
3 //
4 // Last modified by Eric van den Berg, 01 Nov 2013
5 // This file is in the Public Domain and comes with no warranty.
6
7
8 #ifndef __SYSTEMS_PITOT_HXX
9 #define __SYSTEMS_PITOT_HXX 1
10
11 #ifndef __cplusplus
12 # error This library requires C++
13 #endif
14
15 #include <simgear/compiler.h>
16
17 #include <string>
18 using std::string;
19
20 #include <simgear/props/props.hxx>
21 #include <simgear/structure/subsystem_mgr.hxx>
22
23
24 /**
25  * Model a pitot air system.
26  *
27  * The output is the sum of static and dynamic pressure (not just the
28  * dynamic pressure).
29  *
30  * Input properties:
31  *
32  * /systems/"name"/serviceable
33  * /environment/pressure-inhg
34  * /velocities/mach
35  *
36  * Output properties:
37  *
38  * /systems/"name"/total-pressure-inhg
39  * /systems/"name"/measured-total-pressure-inhg
40  */
41 class PitotSystem : public SGSubsystem
42 {
43
44 public:
45
46     PitotSystem ( SGPropertyNode *node );
47     virtual ~PitotSystem ();
48
49     virtual void init ();
50     virtual void bind ();
51     virtual void unbind ();
52     virtual void update (double dt);
53
54 private:
55
56     std::string _name;
57     int _num;
58     double _stall_factor;
59     SGPropertyNode_ptr _serviceable_node;
60     SGPropertyNode_ptr _pressure_node;
61     SGPropertyNode_ptr _mach_node;
62     SGPropertyNode_ptr _total_pressure_node;
63     SGPropertyNode_ptr _measured_total_pressure_node;
64     SGPropertyNode_ptr _alpha_deg_node;
65     SGPropertyNode_ptr _beta_deg_node;
66 };
67
68 #endif // __SYSTEMS_PITOT_HXX