public:
FGTranslation(FGFDMExec*);
~FGTranslation();
-
+
+ inline double GetUVW (int idx) const { return vUVW(idx); }
inline FGColumnVector3& GetUVW (void) { return vUVW; }
- inline float GetUVW (int idx) { return vUVW(idx); }
inline FGColumnVector3& GetUVWdot(void) { return vUVWdot; }
- inline float GetUVWdot(int idx) { return vUVWdot(idx); }
- inline FGColumnVector3& GetvAero (void) { return vAero; }
- inline float GetvAero (int idx) { return vAero(idx); }
-
- 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; }
- inline float Getadot (void) { return adot; }
- inline float Getbdot (void) { return bdot; }
+ inline double GetUVWdot(int idx) const { return vUVWdot(idx); }
+ inline FGColumnVector3& GetAeroUVW (void) { return vAeroUVW; }
+ inline double GetAeroUVW (int idx) const { return vAeroUVW(idx); }
+
+ double Getalpha(void) const { return alpha; }
+ double Getbeta (void) const { return beta; }
+ inline double GetMagBeta(void) const { return fabs(beta); }
+ double Getqbar (void) const { return qbar; }
+ double GetqbarUW (void) const { return qbarUW; }
+ double GetqbarUV (void) const { return qbarUV; }
+ inline double GetVt (void) const { return Vt; }
+ double GetMach (void) const { return Mach; }
+ double Getadot (void) const { return adot; }
+ double Getbdot (void) const { return bdot; }
void SetUVW(FGColumnVector3 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 Setadot (float tt) { adot = tt; }
- inline void Setbdot (float tt) { bdot = tt; }
-
- inline void SetAB(float t1, float t2) { alpha=t1; beta=t2; }
+ void SetAeroUVW(FGColumnVector3 tt) { vAeroUVW = tt; }
+
+ inline void Setalpha(double tt) { alpha = tt; }
+ inline void Setbeta (double tt) { beta = tt; }
+ inline void Setqbar (double tt) { qbar = tt; }
+ inline void SetqbarUW (double tt) { qbarUW = tt; }
+ inline void SetqbarUV (double tt) { qbarUV = 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);
+ void bind(void);
+ void unbind(void);
+
private:
FGColumnVector3 vUVW;
FGColumnVector3 vUVWdot;
- FGColumnVector3 vlastUVWdot;
- FGMatrix33 mVel;
- FGColumnVector3 vAero;
-
- float Vt, qbar, Mach;
- float dt;
- float alpha, beta;
- float adot,bdot;
-
- void Debug(void);
+ FGColumnVector3 vUVWdot_prev[3];
+ FGMatrix33 mVel;
+ FGColumnVector3 vAeroUVW;
+
+ double Vt, Mach;
+ double qbar, qbarUW, qbarUV;
+ double dt;
+ double alpha, beta;
+ double adot,bdot;
+ void Debug(int from);
};
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%