X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2FJSBSim.hxx;h=a0294d5b5d2ff071c9db6f6d4741cf2f28b68b54;hb=b09a2347a8fd699d222e63c2df525d1d10753d6b;hp=38c952bd260fdcd46965aa2a1c61625540706f6b;hpb=0bce31ae9a80c571b9126427c093b8dc3d3f6820;p=flightgear.git diff --git a/src/FDM/JSBSim/JSBSim.hxx b/src/FDM/JSBSim/JSBSim.hxx index 38c952bd2..a0294d5b5 100644 --- a/src/FDM/JSBSim/JSBSim.hxx +++ b/src/FDM/JSBSim/JSBSim.hxx @@ -38,7 +38,6 @@ INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ #undef MAX_ENGINES -#include "math/FGColumnVector3.h" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS @@ -58,8 +57,8 @@ FORWARD DECLARATIONS #include namespace JSBSim { -class FGState; class FGAtmosphere; +class FGWinds; class FGFCS; class FGPropulsion; class FGMassBalance; @@ -70,6 +69,8 @@ class FGPropagate; class FGAuxiliary; class FGOutput; class FGInitialCondition; +class FGLocation; +class FGAccelerations; } // Adding it here will cause a namespace clash in FlightGear -EMH- @@ -86,7 +87,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: JSBSim.hxx,v 1.13 2010/07/07 20:46:36 andgi Exp $ + @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) */ @@ -111,6 +112,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 @@ -201,30 +211,30 @@ 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; - JSBSim::FGMassBalance* MassBalance; - JSBSim::FGAircraft* Aircraft; - JSBSim::FGPropagate* Propagate; - JSBSim::FGAuxiliary* Auxiliary; - JSBSim::FGAerodynamics* Aerodynamics; + JSBSim::FGAtmosphere* Atmosphere; + JSBSim::FGWinds* Winds; + JSBSim::FGFCS* FCS; + JSBSim::FGPropulsion* Propulsion; + JSBSim::FGMassBalance* MassBalance; + JSBSim::FGAircraft* Aircraft; + JSBSim::FGPropagate* Propagate; + JSBSim::FGAuxiliary* Auxiliary; + JSBSim::FGAerodynamics* Aerodynamics; JSBSim::FGGroundReactions* GroundReactions; - JSBSim::FGInertial* Inertial; + JSBSim::FGInertial* Inertial; + JSBSim::FGAccelerations* Accelerations; int runcount; double trim_elev; @@ -263,9 +273,12 @@ private: SGPropertyNode_ptr temperature; SGPropertyNode_ptr pressure; + SGPropertyNode_ptr pressureSL; 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; @@ -273,6 +286,8 @@ private: SGPropertyNode_ptr slaved; + static std::map TURBULENCE_TYPE_NAMES; + double last_hook_tip[3]; double last_hook_root[3]; JSBSim::FGColumnVector3 hook_root_struct; @@ -281,11 +296,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); - };