X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2FJSBSim.hxx;h=14766c6f631621d4c064a7c527198846b5ed295e;hb=800ac5a188b7d42e3696c00cf32b7d4e702c8b0b;hp=cc2cfb03aebdd1cda80a9e0264a15c7ee6ccd0bf;hpb=e85b413f9967793669bd1a996c253a61a768256c;p=flightgear.git diff --git a/src/FDM/JSBSim/JSBSim.hxx b/src/FDM/JSBSim/JSBSim.hxx index cc2cfb03a..14766c6f6 100644 --- a/src/FDM/JSBSim/JSBSim.hxx +++ b/src/FDM/JSBSim/JSBSim.hxx @@ -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,7 +38,7 @@ INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ #undef MAX_ENGINES -#include +#include "math/FGColumnVector3.h" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS @@ -58,7 +58,6 @@ FORWARD DECLARATIONS #include namespace JSBSim { -class FGState; class FGAtmosphere; class FGFCS; class FGPropulsion; @@ -86,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) */ @@ -111,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 @@ -206,12 +214,14 @@ public: 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 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; @@ -220,7 +230,8 @@ private: JSBSim::FGPropagate* Propagate; JSBSim::FGAuxiliary* Auxiliary; JSBSim::FGAerodynamics* Aerodynamics; - JSBSim::FGGroundReactions *GroundReactions; + JSBSim::FGGroundReactions* GroundReactions; + JSBSim::FGInertial* Inertial; int runcount; double trim_elev; @@ -249,13 +260,21 @@ private: SGPropertyNode_ptr speedbrake_pos_pct; SGPropertyNode_ptr spoilers_pos_pct; + SGPropertyNode_ptr ab_brake_engaged; + SGPropertyNode_ptr ab_brake_left_pct; + SGPropertyNode_ptr ab_brake_right_pct; + SGPropertyNode_ptr gear_pos_pct; + SGPropertyNode_ptr wing_fold_pos_pct; + SGPropertyNode_ptr tailhook_pos_pct; 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; @@ -263,9 +282,20 @@ 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; + double hook_length; + bool got_wire; + + bool crashed; + void init_gear(void); void update_gear(void); + void update_external_forces(double t_off); };