X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGAircraft.h;h=13a499bd54a693d790e1c25db3045ee86716364d;hb=642735ab18421db87a07d6841dd720fd4615bfff;hp=485d0efd33574c0e1a7b48b6e3e73f48e3ddcf8a;hpb=f7f17a4744aaa1dbcd9e64b1a4bc97de888ed892;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGAircraft.h b/src/FDM/JSBSim/models/FGAircraft.h index 485d0efd3..13a499bd5 100644 --- a/src/FDM/JSBSim/models/FGAircraft.h +++ b/src/FDM/JSBSim/models/FGAircraft.h @@ -4,7 +4,7 @@ Author: Jon S. Berndt Date started: 12/12/98 - ------------- Copyright (C) 1999 Jon S. Berndt (jsb@hal-pc.org) ------------- + ------------- Copyright (C) 1999 Jon S. Berndt (jon@jsbsim.org) ------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software @@ -38,26 +38,19 @@ SENTRY INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#ifdef FGFS -# include -# ifdef SG_HAVE_STD_INCLUDES -# include -# else -# include -# endif -#else -# include -#endif +#include +#include #include "FGModel.h" -#include -#include +#include "input_output/FGXMLElement.h" +#include "math/FGColumnVector3.h" +#include "math/FGMatrix33.h" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_AIRCRAFT "$Id$" +#define ID_AIRCRAFT "$Id: FGAircraft.h,v 1.19 2011/11/10 12:06:14 jberndt Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -98,10 +91,10 @@ CLASS DOCUMENTATION @endcode @author Jon S. Berndt - @version $Id$ + @version $Id: FGAircraft.h,v 1.19 2011/11/10 12:06:14 jberndt Exp $ @see Cooke, Zyda, Pratt, and McGhee, "NPSNET: Flight Simulation Dynamic Modeling - Using Quaternions", Presence, Vol. 1, No. 4, pp. 404-420 Naval Postgraduate - School, January 1994 + Using Quaternions", Presence, Vol. 1, No. 4, pp. 404-420 Naval Postgraduate + School, January 1994 @see D. M. Henderson, "Euler Angles, Quaternions, and Transformation Matrices", JSC 12960, July 1977 @see Richard E. McFarland, "A Standard Kinematic Model for Flight Simulation at @@ -126,9 +119,14 @@ public: ~FGAircraft(); /** Runs the Aircraft model; called by the Executive + Can pass in a value indicating if the executive is directing the simulation to Hold. + @param Holding if true, the executive has been directed to hold the sim from + advancing time. Some models may ignore this flag, such as the Input + model, which may need to be active to listen on a socket for the + "Resume" command to be given. @see JSBSim.cpp documentation @return false if no error */ - bool Run(void); + bool Run(bool Holding); bool InitModel(void); @@ -140,7 +138,7 @@ public: /** Gets the aircraft name @return the name of the aircraft as a string type */ - inline string GetAircraftName(void) { return AircraftName; } + const std::string& GetAircraftName(void) const { return AircraftName; } /// Gets the wing area double GetWingArea(void) const { return WingArea; } @@ -148,45 +146,52 @@ public: double GetWingSpan(void) const { return WingSpan; } /// Gets the average wing chord double Getcbar(void) const { return cbar; } - inline double GetWingIncidence(void) const { return WingIncidence; } - inline double GetWingIncidenceDeg(void) const { return WingIncidence*radtodeg; } - inline double GetHTailArea(void) const { return HTailArea; } - inline double GetHTailArm(void) const { return HTailArm; } - inline double GetVTailArea(void) const { return VTailArea; } - inline double GetVTailArm(void) const { return VTailArm; } - inline double Getlbarh(void) const { return lbarh; } // HTailArm / cbar - inline double Getlbarv(void) const { return lbarv; } // VTailArm / cbar - inline double Getvbarh(void) const { return vbarh; } // H. Tail Volume - inline double Getvbarv(void) const { return vbarv; } // V. Tail Volume - inline FGColumnVector3& GetMoments(void) { return vMoments; } - inline double GetMoments(int idx) const { return vMoments(idx); } - inline FGColumnVector3& GetForces(void) { return vForces; } - inline double GetForces(int idx) const { return vForces(idx); } - inline FGColumnVector3& GetBodyAccel(void) { return vBodyAccel; } - inline double GetBodyAccel(int idx) { return vBodyAccel(idx); } - inline FGColumnVector3& GetNcg (void) { return vNcg; } - inline double GetNcg(int idx) { return vNcg(idx); } - inline FGColumnVector3& GetXYZrp(void) { return vXYZrp; } - inline FGColumnVector3& GetXYZvrp(void) { return vXYZvrp; } - inline FGColumnVector3& GetXYZep(void) { return vXYZep; } - inline double GetXYZrp(int idx) const { return vXYZrp(idx); } - inline double GetXYZvrp(int idx) const { return vXYZvrp(idx); } - inline double GetXYZep(int idx) const { return vXYZep(idx); } - inline void SetAircraftName(string name) {AircraftName = name;} - inline void SetHoldDown(int hd) {HoldDown = hd;} - inline int GetHoldDown(void) const {return HoldDown;} + double GetWingIncidence(void) const { return WingIncidence; } + double GetWingIncidenceDeg(void) const { return WingIncidence*radtodeg; } + double GetHTailArea(void) const { return HTailArea; } + double GetHTailArm(void) const { return HTailArm; } + double GetVTailArea(void) const { return VTailArea; } + double GetVTailArm(void) const { return VTailArm; } + double Getlbarh(void) const { return lbarh; } // HTailArm / cbar + double Getlbarv(void) const { return lbarv; } // VTailArm / cbar + double Getvbarh(void) const { return vbarh; } // H. Tail Volume + double Getvbarv(void) const { return vbarv; } // V. Tail Volume + const FGColumnVector3& GetMoments(void) const { return vMoments; } + double GetMoments(int idx) const { return vMoments(idx); } + const FGColumnVector3& GetForces(void) const { return vForces; } + double GetForces(int idx) const { return vForces(idx); } + const FGColumnVector3& GetXYZrp(void) const { return vXYZrp; } + const FGColumnVector3& GetXYZvrp(void) const { return vXYZvrp; } + const FGColumnVector3& GetXYZep(void) const { return vXYZep; } + double GetXYZrp(int idx) const { return vXYZrp(idx); } + double GetXYZvrp(int idx) const { return vXYZvrp(idx); } + double GetXYZep(int idx) const { return vXYZep(idx); } + void SetAircraftName(const std::string& name) {AircraftName = name;} + void SetHoldDown(int hd) {HoldDown = hd;} + int GetHoldDown(void) const {return HoldDown;} void SetXYZrp(int idx, double value) {vXYZrp(idx) = value;} void SetWingArea(double S) {WingArea = S;} - double GetNlf(void); - - inline FGColumnVector3& GetNwcg(void) { return vNwcg; } - void bind(void); void unbind(void); + struct Inputs { + FGColumnVector3 AeroForce; + FGColumnVector3 PropForce; + FGColumnVector3 GroundForce; + FGColumnVector3 ExternalForce; + FGColumnVector3 BuoyantForce; + FGColumnVector3 AeroMoment; + FGColumnVector3 PropMoment; + FGColumnVector3 GroundMoment; + FGColumnVector3 ExternalMoment; + FGColumnVector3 BuoyantMoment; + FGMatrix33 Tl2b; + double Weight; + } in; + private: FGColumnVector3 vMoments; FGColumnVector3 vForces; @@ -194,15 +199,12 @@ private: FGColumnVector3 vXYZvrp; FGColumnVector3 vXYZep; FGColumnVector3 vDXYZcg; - FGColumnVector3 vBodyAccel; - FGColumnVector3 vNcg; - FGColumnVector3 vNwcg; double WingArea, WingSpan, cbar, WingIncidence; double HTailArea, VTailArea, HTailArm, VTailArm; double lbarh,lbarv,vbarh,vbarv; int HoldDown; - string AircraftName; + std::string AircraftName; void Debug(int from); };