------ 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.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#undef MAX_ENGINES
-#include <Aircraft/aircraft.hxx>
-#include "math/FGColumnVector3.h"
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DEFINITIONS
#include <FDM/JSBSim/FGFDMExec.h>
namespace JSBSim {
-class FGState;
class FGAtmosphere;
+class FGWinds;
class FGFCS;
class FGPropulsion;
class FGMassBalance;
class FGAuxiliary;
class FGOutput;
class FGInitialCondition;
+class FGLocation;
+class FGAccelerations;
}
// Adding it here will cause a namespace clash in FlightGear -EMH-
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)
*/
/// 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
/** 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 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;
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 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;
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;
double hook_length;
bool got_wire;
+ 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);
-
};