#ifdef FGFS
# include <simgear/compiler.h>
-# ifdef SG_HAVE_STD_INCLUDES
-# include <cmath>
-# else
-# include <math.h>
-# endif
+# include <math.h>
#else
# include <cmath>
#endif
#ifndef M_PI
# include <simgear/constants.h>
-# define M_PI SGD_PI
+# define M_PI SG_PI
#endif
#include "FGModel.h"
#include "FGMatrix.h"
-#define ID_ROTATION "$Header$"
+#define ID_ROTATION "$Id$"
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLASS DECLARATION
class FGRotation : public FGModel
{
- FGColumnVector vPQR;
- FGColumnVector vPQRdot;
- FGColumnVector vMoments;
- FGColumnVector vEuler;
- FGColumnVector vEulerRates;
-
- float cTht,sTht;
- float cPhi,sPhi;
- float cPsi,sPsi;
-
- float Ixx, Iyy, Izz, Ixz;
- float dt;
-
- void GetState(void);
-
public:
FGRotation(FGFDMExec*);
- ~FGRotation(void);
+ ~FGRotation();
bool Run(void);
inline FGColumnVector GetPQR(void) {return vPQR;}
+ inline float GetPQR(int axis) {return vPQR(axis);}
inline FGColumnVector GetPQRdot(void) {return vPQRdot;}
+ inline float GetPQRdot(int idx) {return vPQRdot(idx);}
inline FGColumnVector GetEuler(void) {return vEuler;}
+ inline float GetEuler(int axis) {return vEuler(axis);}
inline FGColumnVector GetEulerRates(void) { return vEulerRates; }
+ inline float GetEulerRates(int axis) { return vEulerRates(axis); }
inline void SetPQR(FGColumnVector tt) {vPQR = tt;}
inline void SetEuler(FGColumnVector tt) {vEuler = tt;}
inline float GetSintht(void) {return sTht;}
inline float GetSinpsi(void) {return sPsi;}
+private:
+ FGColumnVector vPQR;
+ FGColumnVector vPQRdot;
+ FGColumnVector vMoments;
+ FGColumnVector vEuler;
+ FGColumnVector vEulerRates;
+ FGColumnVector vlastPQRdot;
+
+ float cTht,sTht;
+ float cPhi,sPhi;
+ float cPsi,sPsi;
+
+ float Ixx, Iyy, Izz, Ixz;
+ float dt;
+ void GetState(void);
+ void Debug(void);
};
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#endif
+