]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGAuxiliary.h
Sync. with JSBSim CVS.
[flightgear.git] / src / FDM / JSBSim / FGAuxiliary.h
index 08fba1e3444724e5430f441a083aff07831c0447..5a61290ffc39f31af911118258c5863cf0aa7136 100644 (file)
@@ -1,4 +1,4 @@
-/*******************************************************************************
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  Header:       FGAuxiliary.h
  Author:       Jon Berndt
@@ -28,68 +28,105 @@ HISTORY
 11/22/98   JSB   Created
   1/1/00   TP    Added calcs and getters for VTAS, VCAS, VEAS, Vground, in knots
  
-********************************************************************************
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 SENTRY
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 #ifndef FGAUXILIARY_H
 #define FGAUXILIARY_H
 
-/*******************************************************************************
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 INCLUDES
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
 #include "FGModel.h"
-#include "FGMatrix.h"
+#include "FGColumnVector3.h"
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+DEFINITIONS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+#define ID_AUXILIARY "$Id$"
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+FORWARD DECLARATIONS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+namespace JSBSim {
 
-/*******************************************************************************
-DEFINES
-*******************************************************************************/
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+CLASS DOCUMENTATION
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-/*******************************************************************************
+/** Encapsulates various uncategorized scheduled functions.
+    @author Tony Peden, Jon Berndt
+    @version $Id$
+*/
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 CLASS DECLARATION
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 class FGAuxiliary : public FGModel {
 public:
-  FGAuxiliary(FGFDMExec*);
-  ~FGAuxiliary(void);
+  /** Constructor
+      @param Executive a pointer to the parent executive object */
+  FGAuxiliary(FGFDMExec* Executive);
+  /// Destructor
+  ~FGAuxiliary();
 
+  /** Runs the Auxiliary routines; called by the Executive
+      @return false if no error */
   bool Run(void);
 
-  //use FGInitialCondition to set these speeds
-  inline float GetVcalibratedFPS(void) { return vcas; }
-  inline float GetVcalibratedKTS(void) { return vcas*FPSTOKTS; }
-  inline float GetVequivalentFPS(void) { return veas; }
-  inline float GetVequivalentKTS(void) { return veas*FPSTOKTS; }
-  
-  inline FGColumnVector GetPilotAccel(void) { return vPilotAccel; }
-  inline FGColumnVector GetNpilot(void) { return vPilotAccel*INVGRAVITY; }
+  // Use FGInitialCondition to set these speeds
+  inline double GetVcalibratedFPS(void) const { return vcas; }
+  inline double GetVcalibratedKTS(void) const { return vcas*fpstokts; }
+  inline double GetVequivalentFPS(void) const { return veas; }
+  inline double GetVequivalentKTS(void) const { return veas*fpstokts; }
+  inline double GetMachU(void) const { return machU; }
   
-  inline float GetEarthPositionAngle(void) { return earthPosAngle; }
+  inline double GetTotalTemperature(void) const { return tat; }
+  inline double GetTAT_C(void) const { return tatc; }
+
+  // total pressure above is freestream total pressure for subsonic only
+  // for supersonic it is the 1D total pressure behind a normal shock
+  inline double GetTotalPressure(void) const { return pt; }
   
-protected:
+  inline FGColumnVector3& GetPilotAccel(void) { return vPilotAccel; }
+  inline double GetPilotAccel(int idx) const { return vPilotAccel(idx); }
+  FGColumnVector3 GetNpilot(void) const { return vPilotAccelN; }
+  double GetNpilot(int idx) const { return vPilotAccelN(idx); }
 
-private:
-  float vcas;
-  float veas;
-  float mach;
-  float qbar,rhosl,rho,p,psl,pt;
-  //Don't add a getter for pt!
-  //pt above is freestream total pressure for subsonic only
-  //for supersonic it is the 1D total pressure behind a normal shock
-  //if a general freestream total is needed, e-mail Tony Peden
-  // (apeden@earthlink.net) or you can add it your self using the
-  // isentropic flow equations
+  inline double GetEarthPositionAngle(void) const { return earthPosAngle; }
   
+  double GetHeadWind(void);
+  double GetCrossWind(void);
   
-  FGColumnVector vPilotAccel;
+  void bind(void);
+  void unbind(void);
+
+private:
+  double vcas;
+  double veas;
+  double mach;
+  double machU;
+  double qbar,rhosl,rho,p,psl,pt,tat,sat,tatc;
+
+  // Don't add a getter for pt!
+
+  FGColumnVector3 vPilotAccel;
+  FGColumnVector3 vPilotAccelN;
+  FGColumnVector3 vToEyePt;
   
-  float earthPosAngle;
+  double earthPosAngle;
 
   void GetState(void);
+  void Debug(int from);
 };
 
-/******************************************************************************/
+} // namespace JSBSim
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 #endif
+