X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2FJSBSim.hxx;h=80b3f3c3aaac930a1d3174c7cdf6d663884dc50f;hb=c112b8b8e169a427e8cb0da871347e5c10031479;hp=1a80371677d69ec2927a9f8d63bed724244060e9;hpb=ba9becbde11bbed6fff5b805952e1ee0fc395adc;p=flightgear.git diff --git a/src/FDM/JSBSim/JSBSim.hxx b/src/FDM/JSBSim/JSBSim.hxx index 1a8037167..80b3f3c3a 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 @@ -59,6 +58,7 @@ FORWARD DECLARATIONS namespace JSBSim { class FGAtmosphere; +class FGWinds; class FGFCS; class FGPropulsion; class FGMassBalance; @@ -69,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- @@ -110,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 @@ -200,10 +211,9 @@ 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], @@ -213,16 +223,18 @@ private: JSBSim::FGInitialCondition *fgic; bool needTrim; - 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; @@ -261,9 +273,11 @@ private: SGPropertyNode_ptr temperature; SGPropertyNode_ptr pressure; - SGPropertyNode_ptr density; + SGPropertyNode_ptr pressureSL; + 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; @@ -271,6 +285,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; @@ -279,12 +295,13 @@ private: bool crashed; + void do_trim(void); + + 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); - - void resetPropertyState(); };