]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/JSBSim.hxx
Merge branch 'next' into durk-atc
[flightgear.git] / src / FDM / JSBSim / JSBSim.hxx
index d6f5f1b8c510e92a7b34f6bcbffef7792e4ea7a9..4e8cf18809cdf0e546c3405b8d9c043afab49ab1 100644 (file)
@@ -8,16 +8,16 @@
 ------ Copyright (C) 1999 - 2000  Curtis L. Olson (curt@flightgear.org) ------
 
  This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
+ modify it under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation; either version 2 of the
  License, or (at your option) any later version.
 
  This program is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- General Public License for more details.
Lesser General Public License for more details.
 
- You should have received a copy of the GNU General Public License
+ You should have received a copy of the GNU Lesser General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
@@ -38,8 +38,6 @@ INCLUDES
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 #undef MAX_ENGINES
-#include <Aircraft/aircraft.hxx>
-#include "math/FGColumnVector3.h"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
@@ -59,7 +57,6 @@ FORWARD DECLARATIONS
 #include <FDM/JSBSim/FGFDMExec.h>
 
 namespace JSBSim {
-class FGState;
 class FGAtmosphere;
 class FGFCS;
 class FGPropulsion;
@@ -71,6 +68,7 @@ class FGPropagate;
 class FGAuxiliary;
 class FGOutput;
 class FGInitialCondition;
+class FGLocation;
 }
 
 // Adding it here will cause a namespace clash in FlightGear -EMH-
@@ -87,7 +85,7 @@ CLASS DOCUMENTATION
     documentation for main for direction on running JSBSim apart from FlightGear.
     @author Curtis L. Olson (original)
     @author Tony Peden (Maintained and refined)
-    @version $Id$
+    @version $Id: JSBSim.hxx,v 1.15 2010/10/07 03:45:40 jberndt Exp $
     @see main in file JSBSim.cpp (use main() wrapper for standalone usage)
 */
 
@@ -112,6 +110,15 @@ public:
     /// Reset flight params to a specific position
     void init();
 
+    /// Unbind properties
+    void unbind();
+
+    /// Suspend integration
+    void suspend();
+
+    /// Resume integration
+    void resume();
+
     /// @name Position Parameter Set
     //@{
     /** Set geocentric latitude
@@ -202,20 +209,18 @@ public:
     /** Update the position based on inputs, positions, velocities, etc.
         @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);
 
     bool get_agl_ft(double t, const double pt[3], double alt_off,
                     double contact[3], double normal[3], double vel[3],
-                    double *agl);
+                    double angularVel[3], double *agl);
 private:
     JSBSim::FGFDMExec *fdmex;
     JSBSim::FGInitialCondition *fgic;
     bool needTrim;
 
-    JSBSim::FGState*        State;
     JSBSim::FGAtmosphere*   Atmosphere;
     JSBSim::FGFCS*          FCS;
     JSBSim::FGPropulsion*   Propulsion;
@@ -265,8 +270,10 @@ private:
     SGPropertyNode_ptr temperature;
     SGPropertyNode_ptr pressure;
     SGPropertyNode_ptr density;
+    SGPropertyNode_ptr ground_wind;
     SGPropertyNode_ptr turbulence_gain;
     SGPropertyNode_ptr turbulence_rate;
+    SGPropertyNode_ptr turbulence_model;
 
     SGPropertyNode_ptr wind_from_north;
     SGPropertyNode_ptr wind_from_east;
@@ -274,6 +281,8 @@ private:
 
     SGPropertyNode_ptr slaved;
 
+    static std::map<std::string,int> TURBULENCE_TYPE_NAMES;
+
     double last_hook_tip[3];
     double last_hook_root[3];
     JSBSim::FGColumnVector3 hook_root_struct;
@@ -282,11 +291,14 @@ private:
 
     bool crashed;
 
+    void do_trim(void);
+
+    double getMachFromVcas(double vcas);
+    bool update_ground_cache(JSBSim::FGLocation cart, double* cart_pos, double dt);
     void init_gear(void);
     void update_gear(void);
 
     void update_external_forces(double t_off);
-
 };