]> git.mxchange.org Git - flightgear.git/blobdiff - JSBsim/FGState.h
New changes to address various feedback from initial release.
[flightgear.git] / JSBsim / FGState.h
index 842b5505984cc2f3580523d752dfc84628dac850..06970edabb77188e6f03a4ab91b902681f61671d 100644 (file)
@@ -32,9 +32,8 @@ global state variables (such as velocity, position, orientation, etc.).
 HISTORY
 --------------------------------------------------------------------------------
 11/17/98   JSB   Created
-*******************************************************************************/
 
-/*******************************************************************************
+********************************************************************************
 SENTRY
 *******************************************************************************/
 
@@ -47,6 +46,7 @@ INCLUDES
 
 #include <stdio.h>
 #include <fstream.h>
+#include "FGDefs.h"
 
 /*******************************************************************************
 DEFINES
@@ -56,186 +56,72 @@ DEFINES
 CLASS DECLARATION
 *******************************************************************************/
 
+class FGFDMExec;
 class FGState
 {
 public:
-   FGState(void);
+   FGState(FGFDMExec*);
   ~FGState(void);
 
   bool Reset(char*);
   bool StoreData(char*);
   bool DumpData(char*);
   bool DisplayData(void);
-  
-  inline float GetU(void) {return U;}
-  inline float GetV(void) {return V;}
-  inline float GetW(void) {return W;}
-
-  inline float GetVn(void) {return Vn;}
-  inline float GetVe(void) {return Ve;}
-  inline float GetVd(void) {return Vd;}
 
   inline float GetVt(void) {return Vt;}
 
-  inline float GetFx(void) {return Fx;}
-  inline float GetFy(void) {return Fy;}
-  inline float GetFz(void) {return Fz;}
-
-  inline float GetP(void) {return P;}
-  inline float GetQ(void) {return Q;}
-  inline float GetR(void) {return R;}
-
-  inline float GetQ0(void) {return Q0;}
-  inline float GetQ1(void) {return Q1;}
-  inline float GetQ2(void) {return Q2;}
-  inline float GetQ3(void) {return Q3;}
-
-  inline float GetL(void) {return L;}
-  inline float GetM(void) {return M;}
-  inline float GetN(void) {return N;}
-
-  inline float GetIxx(void) const {return Ixx;}
-  inline float GetIyy(void) const {return Iyy;}
-  inline float GetIzz(void) const {return Izz;}
-  inline float GetIxz(void) const {return Ixz;}
-
   inline float Getlatitude(void) {return latitude;}
   inline float Getlongitude(void) {return longitude;}
   inline float GetGeodeticLat(void) {return GeodeticLat;}
-  
-  inline float Getalpha(void) {return alpha;}
-  inline float Getbeta(void) {return beta;}
-  inline float Getgamma(void) {return gamma;}
 
   inline float Getadot(void) {return adot;}
   inline float Getbdot(void) {return bdot;}
-  
-  inline float GetUdot(void) {return Udot;}
-  inline float GetVdot(void) {return Vdot;}
-  inline float GetWdot(void) {return Wdot;}
-
-  inline float GetPdot(void) {return Pdot;}
-  inline float GetQdot(void) {return Qdot;}
-  inline float GetRdot(void) {return Rdot;}
 
   inline float Geth(void) {return h;}
   inline float Geta(void) {return a;}
   inline float GetMach(void) {return Mach;}
-  
-  inline float Getrho(void) {return rho;}
+
   inline float Getsim_time(void) {return sim_time;}
   inline float Getdt(void) {return dt;}
 
-  inline float Getphi(void) {return phi;}
-  inline float Gettht(void) {return tht;}
-  inline float Getpsi(void) {return psi;}
-
-  inline float Getg(void) {return g;}
-  inline float Getm(void) {return m;}
-
   inline float Getqbar(void) {return qbar;}
-  inline float GetT(int r, int c) {return T[r][c];}
-
-  inline void SetU(float tt) {U = tt;}
-  inline void SetV(float tt) {V = tt;}
-  inline void SetW(float tt) {W = tt;}
 
   inline void SetVt(float tt) {Vt = tt;}
 
-  inline void SetVn(float tt) {Vn = tt;}
-  inline void SetVe(float tt) {Ve = tt;}
-  inline void SetVd(float tt) {Vd = tt;}
-
-  inline void SetFx(float tt) {Fx = tt;}
-  inline void SetFy(float tt) {Fy = tt;}
-  inline void SetFz(float tt) {Fz = tt;}
-
-  inline void SetP(float tt) {P = tt;}
-  inline void SetQ(float tt) {Q = tt;}
-  inline void SetR(float tt) {R = tt;}
-
-  inline void SetL(float tt) {L = tt;}
-  inline void SetM(float tt) {M = tt;}
-  inline void SetN(float tt) {N = tt;}
-
-  inline void SetIxx(float tt) {Ixx = tt;}
-  inline void SetIyy(float tt) {Iyy = tt;}
-  inline void SetIzz(float tt) {Izz = tt;}
-  inline void SetIxz(float tt) {Ixz = tt;}
-
   inline void Setlatitude(float tt) {latitude = tt;}
   inline void Setlongitude(float tt) {longitude = tt;}
   inline void SetGeodeticLat(float tt) {GeodeticLat = tt;}
 
-  inline void Setalpha(float tt) {alpha = tt;}
-  inline void Setbeta(float tt) {beta = tt;}
-  inline void Setgamma(float tt) {gamma = tt;}
-
   inline void Setadot(float tt) {adot = tt;}
   inline void Setbdot(float tt) {bdot = tt;}
 
-  inline void SetUdot(float tt) {Udot = tt;}
-  inline void SetVdot(float tt) {Vdot = tt;}
-  inline void SetWdot(float tt) {Wdot = tt;}
-
-  inline void SetPdot(float tt) {Pdot = tt;}
-  inline void SetQdot(float tt) {Qdot = tt;}
-  inline void SetRdot(float tt) {Rdot = tt;}
-
-  inline void Setphi(float tt) {phi = tt;}
-  inline void Settht(float tt) {tht = tt;}
-  inline void Setpsi(float tt) {psi = tt;}
-
-  inline void Setg(float tt) {g = tt;}
-  inline void Setm(float tt) {m = tt;}
   inline void Setqbar(float tt) {qbar = tt;}
 
   inline void Seth(float tt) {h = tt;}
   inline void Seta(float tt) {a = tt;}
   inline void SetMach(float tt) {Mach = tt;}
 
-  inline void Setrho(float tt) {rho = tt;}
   inline float Setsim_time(float tt) {sim_time = tt; return sim_time;}
-  inline void Setdt(float tt) {dt = tt;}
-  inline void SetQ0123(float q0, float q1, float q2, float q3) {Q0=q0;Q1=q1;Q2=q2;Q3=q3;}
-  inline void SetT(int r, int c, float tt) {T[r][c] = tt;}
+  inline void  Setdt(float tt) {dt = tt;}
 
   inline float IncrTime(void) {sim_time+=dt;return sim_time;}
 
-  const float EarthRad;
-
 private:
 
-  float U, V, W, Fx, Fy, Fz;        // A/C body axis velocities and forces
-  float P, Q, R, L, M, N;           // A/C body axis rates and moments
-  float Q0, Q1, Q2, Q3;             // Quaternion elements
-  float Ixx, Iyy, Izz, Ixz;         // Moments of Inertia
   float Vt;                         // Total velocity
-  float Vn, Ve, Vd;                 // North, East, and Down local velocities
   float latitude, longitude;        // position
   float GeodeticLat;                // Geodetic Latitude
-  float alpha, beta, gamma;         // angle of attack, sideslip, and roll
   float adot, bdot;                 // alpha dot and beta dot
-  float phi, tht, psi;              // Euler angles
-  float Udot, Vdot, Wdot;           // A/C body axis accelerations
-  float Pdot, Qdot, Rdot;           // A/C body axis rotational accelerations
   float h, a;                       // altitude above sea level, speed of sound
-  float rho, qbar;                  // density of air in lb/ft^3, dynamic pressure
+  float qbar;                       // dynamic pressure
   float sim_time, dt;
-  float m, g;                       // mass and acceleration of gravity
-  float T[4][4];                    // Local to Body transformation matrix
   float Mach;                       // Mach number
 
-protected:
+  FGFDMExec* FDMExec;
 
+protected:
 
 };
 
-#ifndef FDM_MAIN
-extern FGState* State;
-#else
-FGState* State;
-#endif
-
 /******************************************************************************/
 #endif