]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim.hxx
Syncing with latest JSBSim code with retractable landing gear support.
[flightgear.git] / src / FDM / JSBSim.hxx
index a25bb91b379b6ed53ed8dc21536aa35c29fb686a..6d9f66f345bdacf7e44fec89d0f969478e6311f2 100644 (file)
@@ -37,8 +37,6 @@ SENTRY
 INCLUDES
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#include <FDM/JSBSim/FGFDMExec.h>
-#include <FDM/JSBSim/FGInitialCondition.h>
 #undef MAX_ENGINES
 #include <Aircraft/aircraft.hxx>
 
@@ -48,10 +46,32 @@ DEFINITIONS
 
 #define ID_JSBSIMXX "$Header JSBSim.hxx,v 1.4 2000/10/22 14:02:16 jsb Exp $"
 
+#define METERS_TO_FEET 3.2808398950
+#define RADTODEG 57.2957795
+
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FORWARD DECLARATIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
+#include <simgear/misc/props.hxx>
+
+#include <FDM/JSBSim/FGFDMExec.h>
+
+class FGState;
+class FGAtmosphere;
+class FGFCS;
+class FGPropulsion;
+class FGMassBalance;
+class FGAerodynamics;
+class FGInertial;
+class FGAircraft;
+class FGTranslation;
+class FGRotation;
+class FGPosition;
+class FGAuxiliary;
+class FGOutput;
+class FGInitialCondition;
+
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
@@ -188,7 +208,9 @@ public:
     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
@@ -196,29 +218,41 @@ public:
     bool update( int multiloop );
     bool ToggleDataLogging(bool state);
     bool ToggleDataLogging(void);
+    void do_trim(void);
 
 private:
     FGFDMExec *fdmex;
     FGInitialCondition *fgic;
     bool needTrim;
 
-    FGState*       State;
-    FGAtmosphere*  Atmosphere;
-    FGFCS*         FCS;
-    FGPropulsion*  Propulsion;
-    FGAircraft*    Aircraft;
-    FGTranslation* Translation;
-    FGRotation*    Rotation;
-    FGPosition*    Position;
-    FGAuxiliary*   Auxiliary;
+    FGState*        State;
+    FGAtmosphere*   Atmosphere;
+    FGFCS*          FCS;
+    FGPropulsion*   Propulsion;
+    FGMassBalance*  MassBalance;
+    FGAircraft*     Aircraft;
+    FGTranslation*  Translation;
+    FGRotation*     Rotation;
+    FGPosition*     Position;
+    FGAuxiliary*    Auxiliary;
+    FGAerodynamics* Aerodynamics;
+    FGGroundReactions *GroundReactions;
 
     int runcount;
     float trim_elev;
     float trim_throttle;
     
-    SGValue *trimmed;
+    SGPropertyNode *startup_trim;
+    SGPropertyNode *trimmed;
+    SGPropertyNode *pitch_trim;
+    SGPropertyNode *throttle_trim;
+    SGPropertyNode *aileron_trim;
+    SGPropertyNode *rudder_trim;
+    SGPropertyNode *stall_warning;
+    
+    void init_gear(void);
+    void update_gear(void);
     
-    void snap_shot(void);
 };