]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/JSBSim.hxx
Fix stall widths for the "auxilliary" (reverse flow) stalls so they
[flightgear.git] / src / FDM / JSBSim / JSBSim.hxx
index 67bdae4cfa68f31db9f38a1c575382156d52f485..64f1dfcb1364b5ff226e2055972c2833939caf82 100644 (file)
@@ -53,10 +53,11 @@ DEFINITIONS
 FORWARD DECLARATIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#include <simgear/misc/props.hxx>
+#include <simgear/props/props.hxx>
 
 #include <FDM/JSBSim/FGFDMExec.h>
 
+namespace JSBSim {
 class FGState;
 class FGAtmosphere;
 class FGFCS;
@@ -65,16 +66,13 @@ class FGMassBalance;
 class FGAerodynamics;
 class FGInertial;
 class FGAircraft;
-class FGTranslation;
-class FGRotation;
-class FGPosition;
+class FGPropagate;
 class FGAuxiliary;
 class FGOutput;
 class FGInitialCondition;
+}
 
-/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+using namespace JSBSim;
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 CLASS DOCUMENTATION
@@ -116,17 +114,17 @@ public:
     //@{
     /** Set geocentric latitude
         @param lat latitude in radians measured from the 0 meridian where
-                        the westerly direction is positive and east is negative */
+                   the westerly direction is positive and east is negative */
     void set_Latitude(double lat);  // geocentric
 
     /** Set longitude
         @param lon longitude in radians measured from the equator where
-                        the northerly direction is positive and south is negative */
+                   the northerly direction is positive and south is negative */
     void set_Longitude(double lon);
 
     /** Set altitude
         Note: this triggers a recalculation of AGL altitude
-             @param alt altitude in feet */
+        @param alt altitude in feet */
     void set_Altitude(double alt);        // triggers re-calc of AGL altitude
     //@}
 
@@ -136,33 +134,33 @@ public:
     //@{
     /** Sets calibrated airspeed
         Setting this will trigger a recalc of the other velocity terms.
-             @param vc Calibrated airspeed in ft/sec */
+        @param vc Calibrated airspeed in ft/sec */
     void set_V_calibrated_kts(double vc);
 
     /** Sets Mach number.
         Setting this will trigger a recalc of the other velocity terms.
-             @param mach Mach number */
+        @param mach Mach number */
     void set_Mach_number(double mach);
 
     /** Sets velocity in N-E-D coordinates.
         Setting this will trigger a recalc of the other velocity terms.
-             @param north velocity northward in ft/sec
-             @param east velocity eastward in ft/sec
-             @param down velocity downward in ft/sec */
+        @param north velocity northward in ft/sec
+        @param east velocity eastward in ft/sec
+        @param down velocity downward in ft/sec */
     void set_Velocities_Local( double north, double east, double down );
 
     /** Sets aircraft velocity in stability frame.
         Setting this will trigger a recalc of the other velocity terms.
-             @param u X velocity in ft/sec
-             @param v Y velocity  in ft/sec
-             @param w Z velocity in ft/sec */
+        @param u X velocity in ft/sec
+        @param v Y velocity  in ft/sec
+        @param w Z velocity in ft/sec */
     void set_Velocities_Wind_Body( double u, double v, double w);
     //@}
 
     /** Euler Angle Parameter Set
         @param phi roll angle in radians
-             @param theta pitch angle in radians
-             @param psi heading angle in radians */
+        @param theta pitch angle in radians
+        @param psi heading angle in radians */
     void set_Euler_Angles( double phi, double theta, double psi );
 
     /// @name Flight Path Parameter Set
@@ -181,36 +179,35 @@ public:
     //@{
     /** Sets the atmospheric static pressure
         @param p pressure in psf */
-    void set_Static_pressure(double p);
+//     void set_Static_pressure(double p);
 
     /** Sets the atmospheric temperature
         @param T temperature in degrees rankine */
-    void set_Static_temperature(double T);
+//     void set_Static_temperature(double T);
 
     /** Sets the atmospheric density.
         @param rho air density slugs/cubic foot */
-    void set_Density(double rho);
+//     void set_Density(double rho);
 
     /** Sets the velocity of the local airmass for wind modeling.
         @param wnorth velocity north in fps
         @param weast velocity east in fps
         @param wdown velocity down in fps*/
-    void set_Velocities_Local_Airmass (double wnorth,
-                                      double weast,
-                                      double wdown );
     /// @name Position Parameter Update
     //@{
 
 
     /** Update the position based on inputs, positions, velocities, etc.
-        @param multiloop number of times to loop through the FDM
-             @return true if successful */
-    void update( int multiloop );
+        @param dt delta time in seconds. */
+    void update(double dt);
     bool ToggleDataLogging(bool state);
     bool ToggleDataLogging(void);
     void do_trim(void);
     void update_ic(void);
 
+    //** Handle a crash of the user aircraft. */
+    void crash_handler();
+
 private:
     FGFDMExec *fdmex;
     FGInitialCondition *fgic;
@@ -222,17 +219,15 @@ private:
     FGPropulsion*   Propulsion;
     FGMassBalance*  MassBalance;
     FGAircraft*     Aircraft;
-    FGTranslation*  Translation;
-    FGRotation*     Rotation;
-    FGPosition*     Position;
+    FGPropagate*    Propagate;
     FGAuxiliary*    Auxiliary;
     FGAerodynamics* Aerodynamics;
     FGGroundReactions *GroundReactions;
 
     int runcount;
-    float trim_elev;
-    float trim_throttle;
-    
+    double trim_elev;
+    double trim_throttle;
+
     SGPropertyNode *startup_trim;
     SGPropertyNode *trimmed;
     SGPropertyNode *pitch_trim;
@@ -240,25 +235,41 @@ private:
     SGPropertyNode *aileron_trim;
     SGPropertyNode *rudder_trim;
     SGPropertyNode *stall_warning;
-    
+
     /* SGPropertyNode *elevator_pos_deg;
     SGPropertyNode *left_aileron_pos_deg;
     SGPropertyNode *right_aileron_pos_deg;
     SGPropertyNode *rudder_pos_deg;
     SGPropertyNode *flap_pos_deg; */
 
-    
+
     SGPropertyNode *elevator_pos_pct;
     SGPropertyNode *left_aileron_pos_pct;
     SGPropertyNode *right_aileron_pos_pct;
     SGPropertyNode *rudder_pos_pct;
     SGPropertyNode *flap_pos_pct;
-    
+    SGPropertyNode *speedbrake_pos_pct;
+    SGPropertyNode *spoilers_pos_pct;
+
     SGPropertyNode *gear_pos_pct;
-    
+
+    SGPropertyNode *temperature;
+    SGPropertyNode *pressure;
+    SGPropertyNode *density;
+    SGPropertyNode *turbulence_gain;
+    SGPropertyNode *turbulence_rate;
+
+    SGPropertyNode *wind_from_north;
+    SGPropertyNode *wind_from_east;
+    SGPropertyNode *wind_from_down;
+
     void init_gear(void);
     void update_gear(void);
-    
+
+    bool reset_on_crash;
+    bool crashed;
+    string crash_message;
+
 };