]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGTranslation.h
Fixes from Cameron Moore:
[flightgear.git] / src / FDM / JSBSim / FGTranslation.h
index c4a068b67ea8d55cfd30c8f70c74c62d1a971d71..faac818d251160114f000a7ce3fad8d2e0998b07 100644 (file)
@@ -1,4 +1,4 @@
-/*******************************************************************************
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  Header:       FGTranslation.h
  Author:       Jon Berndt
@@ -27,9 +27,9 @@ HISTORY
 --------------------------------------------------------------------------------
 12/02/98   JSB   Created
  
-********************************************************************************
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 COMMENTS, REFERENCES,  and NOTES
-********************************************************************************
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 [1] 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
@@ -45,80 +45,92 @@ COMMENTS, REFERENCES,  and NOTES
   The order of rotations used in this class corresponds to a 3-2-1 sequence,
   or Y-P-R, or Z-Y-X, if you prefer.
  
-********************************************************************************
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 SENTRY
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 #ifndef FGTRANSLATION_H
 #define FGTRANSLATION_H
 
-/*******************************************************************************
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 INCLUDES
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 #ifdef FGFS
 #  include <simgear/compiler.h>
-#  ifdef FG_HAVE_STD_INCLUDES
+#  ifdef SG_HAVE_STD_INCLUDES
 #    include <cmath>
 #  else
 #    include <math.h>
 #  endif
 #else
-#  include <cmath>
+#  if defined(sgi) && !defined(__GNUC__)
+#    include <math.h>
+#  else
+#    include <cmath>
+#  endif
 #endif
 
 #include "FGModel.h"
-#include "FGMatrix.h"
+#include "FGMatrix33.h"
+#include "FGColumnVector3.h"
+#include "FGColumnVector4.h"
 
-/*******************************************************************************
+#define ID_TRANSLATION "$Id$"
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 CLASS DECLARATION
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 class FGTranslation : public FGModel {
 public:
   FGTranslation(FGFDMExec*);
-  ~FGTranslation(void);
-
-  inline FGColumnVector GetUVW(void) { return vUVW; }
-  inline FGColumnVector GetUVWdot(void) { return vUVWdot; }
-  inline FGColumnVector GetNcg(void) { return vNcg; }
-
-  inline float Getalpha(void) { return alpha; }
-  inline float Getbeta (void) { return beta; }
-  inline float Getqbar (void) { return qbar; }
-  inline float GetVt   (void) { return Vt; }
-  inline float GetMach (void) { return Mach; }
-
-
-  void SetUVW(FGColumnVector tt) { vUVW = tt; }
-
-  inline void Setalpha(float tt) { alpha = tt; }
-  inline void Setbeta (float tt) { beta  = tt; }
-  inline void Setqbar (float tt) { qbar = tt; }
-  inline void SetVt   (float tt) { Vt = tt; }
-  inline void SetMach (float tt) { Mach=tt; }
-
-  inline void SetAB(float t1, float t2) { alpha=t1; beta=t2; }
-
+  ~FGTranslation();
+
+  inline FGColumnVector3& GetUVW   (void)    { return vUVW; }
+  inline double           GetUVW   (int idx) { return vUVW(idx); }
+  inline FGColumnVector3& GetUVWdot(void)    { return vUVWdot; }
+  inline double           GetUVWdot(int idx) { return vUVWdot(idx); }
+  inline FGColumnVector3& GetvAeroUVW (void)    { return vAeroUVW; }
+  inline double           GetvAeroUVW (int idx) { return vAeroUVW(idx); }
+
+  inline double Getalpha(void) { return alpha; }
+  inline double Getbeta (void) { return beta; }
+  inline double Getqbar (void) { return qbar; }
+  inline double GetVt   (void) { return Vt; }
+  inline double GetMach (void) { return Mach; }
+  inline double Getadot (void) { return adot; }
+  inline double Getbdot (void) { return bdot; }
+
+  void SetUVW(FGColumnVector3 tt) { vUVW = tt; }
+
+  inline void Setalpha(double tt) { alpha = tt; }
+  inline void Setbeta (double tt) { beta  = tt; }
+  inline void Setqbar (double tt) { qbar = tt; }
+  inline void SetVt   (double tt) { Vt = tt; }
+  inline void SetMach (double tt) { Mach=tt; }
+  inline void Setadot (double tt) { adot = tt; }
+  inline void Setbdot (double tt) { bdot = tt; }
+
+  inline void SetAB(double t1, double t2) { alpha=t1; beta=t2; }
+  
   bool Run(void);
 
-protected:
-
 private:
-  FGColumnVector vUVW,vWindUVW;
-  FGColumnVector vUVWdot;
-  FGColumnVector vNcg;
-  FGColumnVector vPQR;
-  FGColumnVector vForces;
-  FGColumnVector vEuler;
-
-  float Vt, qbar, Mach;
-  float Mass, dt;
-  float alpha, beta;
-  float rho;
-
-  void GetState(void);
+  FGColumnVector3 vUVW;
+  FGColumnVector3 vUVWdot;
+  FGColumnVector3 vlastUVWdot;
+  FGMatrix33       mVel;
+  FGColumnVector3 vAeroUVW;
+
+  double Vt, qbar, Mach;
+  double dt;
+  double alpha, beta;
+  double adot,bdot;
+
+  void Debug(int from);
 };
 
-/******************************************************************************/
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 #endif
+