]> git.mxchange.org Git - flightgear.git/blobdiff - src/Systems/submodel.hxx
Boris Koenig:
[flightgear.git] / src / Systems / submodel.hxx
index 56e3ac8549118a96f333531c6e8bb78244f379b0..a0c4dd6398e51e3f78b9626bf767c5b800b70a3d 100644 (file)
@@ -25,9 +25,12 @@ class SubmodelSystem : public SGSubsystem
 
 public:
 
+
  typedef struct {
-  SGPropertyNode_ptr trigger;
-  SGPropertyNode_ptr prop;
+  SGPropertyNode* trigger;
+  SGPropertyNode* prop;
+  SGPropertyNode* contents_node;
+  
   string             name;
   string             model;
   double             speed;
@@ -45,19 +48,29 @@ public:
   double             life;
   double             buoyancy;
   bool               wind;
-    
+  bool               first_time;
+  double             cd;
+  double             weight;
+  double             contents;
  } submodel; 
 
  typedef struct {
   double     lat;
   double     lon;
   double     alt;
+  double     roll;
   double     azimuth;
   double     elevation;
   double     speed;
   double     wind_from_east;
   double     wind_from_north;
-  
+  double     speed_down_fps;
+  double     speed_east_fps;
+  double     speed_north_fps;
+  double     total_speed_down;
+  double     total_speed_east;
+  double     total_speed_north;
+  double     mass;
  } IC_struct;  
 
     SubmodelSystem ();
@@ -70,6 +83,7 @@ public:
     void update (double dt);
     bool release (submodel* sm, double dt);
     void transform (submodel* sm);
+    void updatelat( double lat );
 
 private:
 
@@ -79,23 +93,48 @@ private:
     submodel_vector_type       submodels;
     submodel_vector_iterator   submodel_iterator;
 
+    float trans[3][3];
+    float in[3];
+    float out[3];
+
+    double Rx, Ry, Rz;
+    double Sx, Sy, Sz;
+    double Tx, Ty, Tz;
+
+    float cosRx, sinRx;
+    float cosRy, sinRy;
+    float cosRz, sinRz;
+
+    double ft_per_deg_longitude;
+    double ft_per_deg_latitude;
 
     double x_offset, y_offset, z_offset;
     double pitch_offset, yaw_offset;
 
-    SGPropertyNode_ptr _serviceable_node;
-    SGPropertyNode_ptr _user_lat_node;
-    SGPropertyNode_ptr _user_lon_node;
-    SGPropertyNode_ptr _user_heading_node;
-    SGPropertyNode_ptr _user_alt_node;
-    SGPropertyNode_ptr _user_pitch_node;
-    SGPropertyNode_ptr _user_roll_node;
-    SGPropertyNode_ptr _user_yaw_node;
-    SGPropertyNode_ptr _user_speed_node;
-       SGPropertyNode_ptr _user_wind_from_east_node;
-    SGPropertyNode_ptr _user_wind_from_north_node;
+    static const double lbs_to_slugs; //conversion factor
+
+    SGPropertyNode* _serviceable_node;
+    SGPropertyNode* _user_lat_node;
+    SGPropertyNode* _user_lon_node;
+    SGPropertyNode* _user_heading_node;
+    SGPropertyNode* _user_alt_node;
+    SGPropertyNode* _user_pitch_node;
+    SGPropertyNode* _user_roll_node;
+    SGPropertyNode* _user_yaw_node;
+    SGPropertyNode* _user_alpha_node;
+    SGPropertyNode* _user_speed_node;
+    SGPropertyNode* _user_wind_from_east_node;
+    SGPropertyNode* _user_wind_from_north_node;
+    SGPropertyNode* _user_speed_down_fps_node;
+    SGPropertyNode* _user_speed_east_fps_node;
+    SGPropertyNode* _user_speed_north_fps_node;
+
     FGAIManager* ai;
     IC_struct  IC;
+
 };
 
 #endif // __SYSTEMS_SUBMODEL_HXX
+
+
+