]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGLGear.h
Fix stall widths for the "auxilliary" (reverse flow) stalls so they
[flightgear.git] / src / FDM / JSBSim / FGLGear.h
index e849d229e0e282cd8e8564f268288e72c9dadb1c..9b4e02db6af7afed7957b9bb1bfe325cec809780 100644 (file)
@@ -42,13 +42,11 @@ INCLUDES
 #  include <simgear/compiler.h>
 #endif
 
-#include <string>
+#include "FGJSBBase.h"
+#include "FGFDMExec.h"
 #include "FGConfigFile.h"
-#include "FGMatrix33.h"
 #include "FGColumnVector3.h"
-#include "FGColumnVector4.h"
-#include "FGFDMExec.h"
-#include "FGJSBBase.h"
+#include <string>
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
@@ -63,17 +61,13 @@ FORWARD DECLARATIONS
 namespace JSBSim {
 
 class FGAircraft;
-class FGPosition;
-class FGRotation;
+class FGPropagate;
 class FGFCS;
 class FGState;
 class FGMassBalance;
+class FGAuxiliary;
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs]
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 CLASS DOCUMENTATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
@@ -166,15 +160,11 @@ CLASS DOCUMENTATION
     @author Jon S. Berndt
     @version $Id$
     @see Richard E. McFarland, "A Standard Kinematic Model for Flight Simulation at
-          NASA-Ames", NASA CR-2497, January 1975
+     NASA-Ames", NASA CR-2497, January 1975
     @see Barnes W. McCormick, "Aerodynamics, Aeronautics, and Flight Mechanics",
-          Wiley & Sons, 1979 ISBN 0-471-03032-5
+     Wiley & Sons, 1979 ISBN 0-471-03032-5
     @see W. A. Ragsdale, "A Generic Landing Gear Dynamics Model for LASRS++",
      AIAA-2000-4303
-    @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/FGLGear.h?rev=HEAD&content-type=text/vnd.viewcvs-markup">
-         Header File </a>
-    @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/FGLGear.cpp?rev=HEAD&content-type=text/vnd.viewcvs-markup">
-         Source File </a>
 */
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -193,7 +183,7 @@ public:
   /** Constructor
       @param Executive a pointer to the parent executive object
       @param File a pointer to the config file instance */
-  FGLGear(FGConfigFile* File, FGFDMExec* Executive);
+  FGLGear(FGConfigFile* File, FGFDMExec* Executive, int number);
   /** Constructor
       @param lgear a reference to an existing FGLGear object     */
   FGLGear(const FGLGear& lgear);
@@ -224,7 +214,13 @@ public:
   /// Gets the gear compression force in pounds
   inline double  GetCompForce(void) {return Force()(3);    }
   inline double  GetBrakeFCoeff(void) {return BrakeFCoeff;}
-  
+  inline double GetXYZ(int i) {return vXYZ(i);}
+
+  /// Gets the current normalized tire pressure
+  inline double  GetTirePressure(void) { return TirePressureNorm; }
+  /// Sets the new normalized tire pressure
+  inline void    SetTirePressure(double p) { TirePressureNorm = p; }
+
   /// Sets the brake value in percent (0 - 100)
   inline void SetBrake(double bp) {brakePct = bp;}
 
@@ -234,23 +230,34 @@ public:
   /** Get the console touchdown reporting feature
       @return true if reporting is turned on */
   inline bool GetReport(void)    { return ReportEnable; }
-  inline double GetSteerAngle(void) { return SteerAngle;}
-  inline double GetstaticFCoeff(void) { return staticFCoeff;}
-  
+  double GetSteerNorm(void) const { return radtodeg/maxSteerAngle*SteerAngle; }
+  double GetDefaultSteerAngle(double cmd) const { return cmd*maxSteerAngle; }
+  double GetstaticFCoeff(void) { return staticFCoeff; }
+  double GetdynamicFCoeff(void) { return dynamicFCoeff; }
+  double GetrollingFCoeff(void) { return rollingFCoeff; }
+
   inline int GetBrakeGroup(void) { return (int)eBrakeGrp; }
   inline int GetSteerType(void)  { return (int)eSteerType; }
-  
-  inline bool GetRetractable(void)         { return isRetractable;   }
-  inline bool GetGearUnitUp(void)          { return GearUp;          }
-  inline bool GetGearUnitDown(void)        { return GearDown;        }
-  inline double GetWheelSideForce(void)    { return SideForce;       }
-  inline double GetWheelRollForce(void)    { return RollingForce;    }
-  inline double GetBodyXForce(void)        { return vLocalForce(eX); }
-  inline double GetBodyYForce(void)        { return vLocalForce(eY); }
-  inline double GetWheelSlipAngle(void)    { return WheelSlip;       }
-  double GetWheelVel(int axis)             { return vWhlVelVec(axis);}
-  
+
+  bool GetSteerable(void) const { return eSteerType != stFixed; }
+  inline bool GetRetractable(void)      const  { return isRetractable;   }
+  inline bool GetGearUnitUp(void)       const  { return GearUp;          }
+  inline bool GetGearUnitDown(void)     const  { return GearDown;        }
+  inline double GetWheelSideForce(void) const  { return SideForce;       }
+  inline double GetWheelRollForce(void) const  { return RollingForce;    }
+  inline double GetBodyXForce(void)     const  { return vLocalForce(eX); }
+  inline double GetBodyYForce(void)     const  { return vLocalForce(eY); }
+  inline double GetWheelSlipAngle(void) const  { return WheelSlip;       }
+  double GetWheelVel(int axis)          const  { return vWhlVelVec(axis);}
+  double GetkSpring(void)               const  { return kSpring;         }
+  double GetbDamp(void)                 const  { return bDamp;           }
+  double GetmaxSteerAngle(void)         const  { return maxSteerAngle;   }
+  string GetsBrakeGroup(void)           const  { return sBrakeGroup;     }
+  string GetsRetractable(void)          const  { return sRetractable;    }
+  string GetsSteerType(void)            const  { return sSteerType;      }
+
 private:
+  int GearNumber;
   FGColumnVector3 vXYZ;
   FGColumnVector3 vMoment;
   FGColumnVector3 vWhlBodyVec;
@@ -278,6 +285,7 @@ private:
   double RollingForce, SideForce, FCoeff;
   double WheelSlip;
   double lastWheelSlip;
+  double TirePressureNorm;
   bool WOW;
   bool lastWOW;
   bool FirstContact;
@@ -287,21 +295,22 @@ private:
   bool ReportEnable;
   bool isRetractable;
   bool GearUp, GearDown;
+  bool Servicable;
   string name;
   string sSteerType;
   string sBrakeGroup;
   string sRetractable;
-  
+
   BrakeGroup eBrakeGrp;
   SteerType  eSteerType;
   double  maxSteerAngle;
 
-  FGFDMExec*  Exec;
-  FGState*    State;
-  FGAircraft* Aircraft;
-  FGPosition* Position;
-  FGRotation* Rotation;
-  FGFCS*      FCS;
+  FGFDMExec*     Exec;
+  FGState*       State;
+  FGAircraft*    Aircraft;
+  FGPropagate*   Propagate;
+  FGAuxiliary*   Auxiliary;
+  FGFCS*         FCS;
   FGMassBalance* MassBalance;
 
   void Report(ReportType rt);
@@ -309,13 +318,12 @@ private:
 };
 }
 #include "FGAircraft.h"
-#include "FGPosition.h"
-#include "FGRotation.h"
+#include "FGPropagate.h"
+#include "FGAuxiliary.h"
 #include "FGFCS.h"
 #include "FGMassBalance.h"
+#include "FGState.h"
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-#include "FGState.h"
-
 #endif