]> git.mxchange.org Git - flightgear.git/blob - src/Systems/submodel.hxx
David Culp:
[flightgear.git] / src / Systems / submodel.hxx
1 // submodel.hxx - models a releasable submodel.
2 // Written by Dave Culp, started Aug 2004
3 //
4 // This file is in the Public Domain and comes with no warranty.
5
6
7 #ifndef __SYSTEMS_SUBMODEL_HXX
8 #define __SYSTEMS_SUBMODEL_HXX 1
9
10 #ifndef __cplusplus
11 # error This library requires C++
12 #endif
13
14 #include <simgear/props/props.hxx>
15 #include <simgear/structure/subsystem_mgr.hxx>
16 #include <AIModel/AIManager.hxx>
17
18
19 class SubmodelSystem : public SGSubsystem
20 {
21
22 public:
23
24     SubmodelSystem ();
25     ~SubmodelSystem ();
26
27     void init ();
28     void bind ();
29     void unbind ();
30     void update (double dt);
31     bool release (double dt);
32
33 private:
34
35     double x_offset, y_offset, z_offset;
36     double pitch_offset, yaw_offset;
37
38     SGPropertyNode_ptr _serviceable_node;
39     SGPropertyNode_ptr _trigger_node;
40     SGPropertyNode_ptr _amount_node;
41
42     SGPropertyNode_ptr _user_lat_node;
43     SGPropertyNode_ptr _user_lon_node;
44     SGPropertyNode_ptr _user_heading_node;
45     SGPropertyNode_ptr _user_alt_node;
46     SGPropertyNode_ptr _user_pitch_node;
47     SGPropertyNode_ptr _user_roll_node;
48     SGPropertyNode_ptr _user_yaw_node;
49     SGPropertyNode_ptr _user_speed_node;
50
51     double elapsed_time;
52     FGAIManager* ai;
53     double initial_velocity;
54     bool firing;
55 };
56
57 #endif // __SYSTEMS_SUBMODEL_HXX