X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2FJSBSim.hxx;h=14766c6f631621d4c064a7c527198846b5ed295e;hb=800ac5a188b7d42e3696c00cf32b7d4e702c8b0b;hp=5bd13816b26b176962fc4220abe1863406141dd1;hpb=932b38a87e2870d23f9be9461b551f1e1fe556ba;p=flightgear.git diff --git a/src/FDM/JSBSim/JSBSim.hxx b/src/FDM/JSBSim/JSBSim.hxx index 5bd13816b..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,50 +230,72 @@ private: JSBSim::FGPropagate* Propagate; JSBSim::FGAuxiliary* Auxiliary; JSBSim::FGAerodynamics* Aerodynamics; - JSBSim::FGGroundReactions *GroundReactions; + JSBSim::FGGroundReactions* GroundReactions; + JSBSim::FGInertial* Inertial; int runcount; double trim_elev; double trim_throttle; - SGPropertyNode *startup_trim; - SGPropertyNode *trimmed; - SGPropertyNode *pitch_trim; - SGPropertyNode *throttle_trim; - SGPropertyNode *aileron_trim; - SGPropertyNode *rudder_trim; - SGPropertyNode *stall_warning; - - /* SGPropertyNode *elevator_pos_deg; - SGPropertyNode *left_aileron_pos_deg; - SGPropertyNode *right_aileron_pos_deg; - SGPropertyNode *rudder_pos_deg; - SGPropertyNode *flap_pos_deg; */ - - - SGPropertyNode *elevator_pos_pct; - SGPropertyNode *left_aileron_pos_pct; - SGPropertyNode *right_aileron_pos_pct; - SGPropertyNode *rudder_pos_pct; - SGPropertyNode *flap_pos_pct; - SGPropertyNode *speedbrake_pos_pct; - SGPropertyNode *spoilers_pos_pct; - - SGPropertyNode *gear_pos_pct; - - SGPropertyNode *temperature; - SGPropertyNode *pressure; - SGPropertyNode *density; - SGPropertyNode *turbulence_gain; - SGPropertyNode *turbulence_rate; - - SGPropertyNode *wind_from_north; - SGPropertyNode *wind_from_east; - SGPropertyNode *wind_from_down; + SGPropertyNode_ptr startup_trim; + SGPropertyNode_ptr trimmed; + SGPropertyNode_ptr pitch_trim; + SGPropertyNode_ptr throttle_trim; + SGPropertyNode_ptr aileron_trim; + SGPropertyNode_ptr rudder_trim; + SGPropertyNode_ptr stall_warning; + + /* SGPropertyNode_ptr elevator_pos_deg; + SGPropertyNode_ptr left_aileron_pos_deg; + SGPropertyNode_ptr right_aileron_pos_deg; + SGPropertyNode_ptr rudder_pos_deg; + SGPropertyNode_ptr flap_pos_deg; */ + + + SGPropertyNode_ptr elevator_pos_pct; + SGPropertyNode_ptr left_aileron_pos_pct; + SGPropertyNode_ptr right_aileron_pos_pct; + SGPropertyNode_ptr rudder_pos_pct; + SGPropertyNode_ptr flap_pos_pct; + 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; + SGPropertyNode_ptr wind_from_down; + + 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); };