]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGInitialCondition.h
Updated to match changes in radiostack.[ch]xx
[flightgear.git] / src / FDM / JSBSim / FGInitialCondition.h
index bc39d56a66e6d8958aa62bcfce9f5e19399ae743..a68bd00633f32ee9ad76aa1d87e355ad3ca5d671 100644 (file)
@@ -126,6 +126,10 @@ CLASS DOCUMENTATION
         considered equivalent to setting gamma.
    @author Anthony K. Peden
    @version $Id$
+    @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/FGInitialCondition.h?rev=HEAD&content-type=text/vnd.viewcvs-markup">
+         Header File </a>
+    @see <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jsbsim/JSBSim/FGInitialCondition.cpp?rev=HEAD&content-type=text/vnd.viewcvs-markup">
+         Source File </a>
 */
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -140,156 +144,162 @@ public:
   /// Destructor
   ~FGInitialCondition();
 
-  void SetVcalibratedKtsIC(float tt);
-  void SetVequivalentKtsIC(float tt);
-  inline void SetVtrueKtsIC(float tt)   { SetVtrueFpsIC(tt*ktstofps);   }
-  inline void SetVgroundKtsIC(float tt) { SetVgroundFpsIC(tt*ktstofps); }
-  void SetMachIC(float tt);
+  void SetVcalibratedKtsIC(double tt);
+  void SetVequivalentKtsIC(double tt);
+  inline void SetVtrueKtsIC(double tt)   { SetVtrueFpsIC(tt*ktstofps);   }
+  inline void SetVgroundKtsIC(double tt) { SetVgroundFpsIC(tt*ktstofps); }
+  void SetMachIC(double tt);
   
-  inline void SetAlphaDegIC(float tt)      { SetAlphaRadIC(tt*degtorad); }
-  inline void SetBetaDegIC(float tt)       { SetBetaRadIC(tt*degtorad);}
+  inline void SetAlphaDegIC(double tt)      { SetAlphaRadIC(tt*degtorad); }
+  inline void SetBetaDegIC(double tt)       { SetBetaRadIC(tt*degtorad);}
   
-  inline void SetPitchAngleDegIC(float tt) { SetPitchAngleRadIC(tt*degtorad); }
-  inline void SetRollAngleDegIC(float tt)  { SetRollAngleRadIC(tt*degtorad);}
-  inline void SetTrueHeadingDegIC(float tt){ SetTrueHeadingRadIC(tt*degtorad); }
+  inline void SetPitchAngleDegIC(double tt) { SetPitchAngleRadIC(tt*degtorad); }
+  inline void SetRollAngleDegIC(double tt)  { SetRollAngleRadIC(tt*degtorad);}
+  inline void SetTrueHeadingDegIC(double tt){ SetTrueHeadingRadIC(tt*degtorad); }
   
-  void SetClimbRateFpmIC(float tt);
-  inline void SetFlightPathAngleDegIC(float tt) { SetFlightPathAngleRadIC(tt*degtorad); }
+  void SetClimbRateFpmIC(double tt);
+  inline void SetFlightPathAngleDegIC(double tt) { SetFlightPathAngleRadIC(tt*degtorad); }
 
-  void SetAltitudeFtIC(float tt);
-  void SetAltitudeAGLFtIC(float tt);
+  void SetAltitudeFtIC(double tt);
+  void SetAltitudeAGLFtIC(double tt);
   
   void SetSeaLevelRadiusFtIC(double tt);
   void SetTerrainAltitudeFtIC(double tt);
 
-  inline void SetLatitudeDegIC(float tt)  { latitude=tt*degtorad; }
-  inline void SetLongitudeDegIC(float tt) { longitude=tt*degtorad; }
+  inline void SetLatitudeDegIC(double tt)  { latitude=tt*degtorad; }
+  inline void SetLongitudeDegIC(double tt) { longitude=tt*degtorad; }
 
   
-  inline float GetVcalibratedKtsIC(void) { return vc*fpstokts; }
-  inline float GetVequivalentKtsIC(void) { return ve*fpstokts; }
-  inline float GetVgroundKtsIC(void) { return vg*fpstokts; }
-  inline float GetVtrueKtsIC(void) { return vt*fpstokts; }
-  inline float GetMachIC(void) { return mach; }
+  inline double GetVcalibratedKtsIC(void) const { return vc*fpstokts; }
+  inline double GetVequivalentKtsIC(void) const { return ve*fpstokts; }
+  inline double GetVgroundKtsIC(void) const { return vg*fpstokts; }
+  inline double GetVtrueKtsIC(void) const { return vt*fpstokts; }
+  inline double GetMachIC(void) const { return mach; }
   
-  inline float GetClimbRateFpmIC(void) { return hdot*60; }
-  inline float GetFlightPathAngleDegIC(void) { return gamma*radtodeg; }
+  inline double GetClimbRateFpmIC(void) const { return hdot*60; }
+  inline double GetFlightPathAngleDegIC(void)const  { return gamma*radtodeg; }
   
-  inline float GetAlphaDegIC(void)      { return alpha*radtodeg; }
-  inline float GetBetaDegIC(void)       { return beta*radtodeg; }
+  inline double GetAlphaDegIC(void) const { return alpha*radtodeg; }
+  inline double GetBetaDegIC(void) const  { return beta*radtodeg; }
   
-  inline float GetPitchAngleDegIC(void) { return theta*radtodeg; }
-  inline float GetRollAngleDegIC(void) { return phi*radtodeg; }
-  inline float GetHeadingDegIC(void)   { return psi*radtodeg; }
+  inline double GetPitchAngleDegIC(void) const { return theta*radtodeg; }
+  inline double GetRollAngleDegIC(void) const { return phi*radtodeg; }
+  inline double GetHeadingDegIC(void) const { return psi*radtodeg; }
 
-  inline float GetLatitudeDegIC(void)  { return latitude*radtodeg; }
-  inline float GetLongitudeDegIC(void) { return longitude*radtodeg; }
+  inline double GetLatitudeDegIC(void) const { return latitude*radtodeg; }
+  inline double GetLongitudeDegIC(void) const { return longitude*radtodeg; }
   
-  inline float GetAltitudeFtIC(void) { return altitude; }
-  inline float GetAltitudeAGLFtIC(void) { return altitude - terrain_altitude; }
+  inline double GetAltitudeFtIC(void) const { return altitude; }
+  inline double GetAltitudeAGLFtIC(void) const { return altitude - terrain_altitude; }
   
-  inline float GetSeaLevelRadiusFtIC(void)  { return sea_level_radius; }
-  inline float GetTerrainAltitudeFtIC(void) { return terrain_altitude; }
-
-  void SetVgroundFpsIC(float tt);
-  void SetVtrueFpsIC(float tt);
-  void SetUBodyFpsIC(float tt);
-  void SetVBodyFpsIC(float tt);
-  void SetWBodyFpsIC(float tt);
-  void SetVnorthFpsIC(float tt);
-  void SetVeastFpsIC(float tt);
-  void SetVdownFpsIC(float tt);
+  inline double GetSeaLevelRadiusFtIC(void) const { return sea_level_radius; }
+  inline double GetTerrainAltitudeFtIC(void) const { return terrain_altitude; }
+
+  void SetVgroundFpsIC(double tt);
+  void SetVtrueFpsIC(double tt);
+  void SetUBodyFpsIC(double tt);
+  void SetVBodyFpsIC(double tt);
+  void SetWBodyFpsIC(double tt);
+  void SetVnorthFpsIC(double tt);
+  void SetVeastFpsIC(double tt);
+  void SetVdownFpsIC(double tt);
   
-  void SetWindNEDFpsIC(float wN, float wE, float wD);
+  void SetWindNEDFpsIC(double wN, double wE, double wD);
  
-  void SetWindMagKtsIC(float mag);
-  void SetWindDirDegIC(float dir);
+  void SetWindMagKtsIC(double mag);
+  void SetWindDirDegIC(double dir);
  
-  void SetHeadWindKtsIC(float head);
-  void SetCrossWindKtsIC(float cross);// positive from left
+  void SetHeadWindKtsIC(double head);
+  void SetCrossWindKtsIC(double cross);// positive from left
  
-  void SetWindDownKtsIC(float wD);                                          
+  void SetWindDownKtsIC(double wD);                                          
   
-  void SetClimbRateFpsIC(float tt);
-  inline float GetVgroundFpsIC(void) { return vg; }
-  inline float GetVtrueFpsIC(void) { return vt; }
-  inline float GetWindUFpsIC(void) { return uw; }
-  inline float GetWindVFpsIC(void) { return vw; }
-  inline float GetWindWFpsIC(void) { return ww; }
-  inline float GetWindNFpsIC(void) { return wnorth; }
-  inline float GetWindEFpsIC(void) { return weast; }
-  inline float GetWindDFpsIC(void) { return wdown; }
-  inline float GetWindFpsIC(void)  { return sqrt(wnorth*wnorth + weast*weast); }
-  float GetWindDirDegIC(void); 
-  inline float GetClimbRateFpsIC(void) { return hdot; }
-  float GetUBodyFpsIC(void);
-  float GetVBodyFpsIC(void);
-  float GetWBodyFpsIC(void);
-  void SetFlightPathAngleRadIC(float tt);
-  void SetAlphaRadIC(float tt);
-  void SetPitchAngleRadIC(float tt);
-  void SetBetaRadIC(float tt);
-  void SetRollAngleRadIC(float tt);
-  void SetTrueHeadingRadIC(float tt);
-  inline void SetLatitudeRadIC(float tt)  { latitude=tt; }
-  inline void SetLongitudeRadIC(float tt) { longitude=tt; }
-  inline float GetFlightPathAngleRadIC(void) { return gamma; }
-  inline float GetAlphaRadIC(void)      { return alpha; }
-  inline float GetPitchAngleRadIC(void) { return theta; }
-  inline float GetBetaRadIC(void)       { return beta; }
-  inline float GetRollAngleRadIC(void) { return phi; }
-  inline float GetHeadingRadIC(void)   { return psi; }
-  inline float GetLatitudeRadIC(void) { return latitude; }
-  inline float GetLongitudeRadIC(void) { return longitude; }
-  inline float GetThetaRadIC(void) { return theta; }
-  inline float GetPhiRadIC(void)   { return phi; }
-  inline float GetPsiRadIC(void)   { return psi; }
+  void SetClimbRateFpsIC(double tt);
+  inline double GetVgroundFpsIC(void) const  { return vg; }
+  inline double GetVtrueFpsIC(void) const { return vt; }
+  inline double GetWindUFpsIC(void) const { return uw; }
+  inline double GetWindVFpsIC(void) const { return vw; }
+  inline double GetWindWFpsIC(void) const { return ww; }
+  inline double GetWindNFpsIC(void) const { return wnorth; }
+  inline double GetWindEFpsIC(void) const { return weast; }
+  inline double GetWindDFpsIC(void) const { return wdown; }
+  inline double GetWindFpsIC(void)  const { return sqrt(wnorth*wnorth + weast*weast); }
+  double GetWindDirDegIC(void); 
+  inline double GetClimbRateFpsIC(void) const { return hdot; }
+  double GetUBodyFpsIC(void);
+  double GetVBodyFpsIC(void);
+  double GetWBodyFpsIC(void);
+  void SetFlightPathAngleRadIC(double tt);
+  void SetAlphaRadIC(double tt);
+  void SetPitchAngleRadIC(double tt);
+  void SetBetaRadIC(double tt);
+  void SetRollAngleRadIC(double tt);
+  void SetTrueHeadingRadIC(double tt);
+  inline void SetLatitudeRadIC(double tt) { latitude=tt; }
+  inline void SetLongitudeRadIC(double tt) { longitude=tt; }
+  inline double GetFlightPathAngleRadIC(void) const { return gamma; }
+  inline double GetAlphaRadIC(void) const      { return alpha; }
+  inline double GetPitchAngleRadIC(void) const { return theta; }
+  inline double GetBetaRadIC(void) const       { return beta; }
+  inline double GetRollAngleRadIC(void) const  { return phi; }
+  inline double GetHeadingRadIC(void) const   { return psi; }
+  inline double GetLatitudeRadIC(void) const { return latitude; }
+  inline double GetLongitudeRadIC(void) const { return longitude; }
+  inline double GetThetaRadIC(void) const { return theta; }
+  inline double GetPhiRadIC(void)  const  { return phi; }
+  inline double GetPsiRadIC(void) const   { return psi; }
 
   inline speedset GetSpeedSet(void) { return lastSpeedSet; }
   inline windset GetWindSet(void) { return lastWindSet; }
   
-  bool Load(string path, string acname, string fname);
+  bool Load(string acpath, string acname, string rstname);
+  
+  void bind(void);
+  void unbind(void);
 
+  
 private:
-  float vt,vc,ve,vg;
-  float mach;
-  float altitude,hdot;
-  float latitude,longitude;
-  float u,v,w;
-  float uw,vw,ww;
-  float vnorth,veast,vdown;
-  float wnorth,weast,wdown;
-  float whead, wcross, wdir, wmag;
+  double vt,vc,ve,vg;
+  double mach;
+  double altitude,hdot;
+  double latitude,longitude;
+  double u,v,w;
+  double uw,vw,ww;
+  double vnorth,veast,vdown;
+  double wnorth,weast,wdown;
+  double whead, wcross, wdir, wmag;
   double sea_level_radius;
   double terrain_altitude;
   double radius_to_vehicle;
 
-  float  alpha, beta, theta, phi, psi, gamma;
-  float salpha,sbeta,stheta,sphi,spsi,sgamma;
-  float calpha,cbeta,ctheta,cphi,cpsi,cgamma;
+  double  alpha, beta, theta, phi, psi, gamma;
+  double salpha,sbeta,stheta,sphi,spsi,sgamma;
+  double calpha,cbeta,ctheta,cphi,cpsi,cgamma;
 
-  float xlo, xhi,xmin,xmax;
+  double xlo, xhi,xmin,xmax;
 
-  typedef float (FGInitialCondition::*fp)(float x);
+  typedef double (FGInitialCondition::*fp)(double x);
   fp sfunc;
 
   speedset lastSpeedSet;
   windset lastWindSet;
 
   FGFDMExec *fdmex;
+  FGPropertyManager *PropertyManager;
 
   bool getAlpha(void);
   bool getTheta(void);
-  bool getMachFromVcas(float *Mach,float vcas);
+  bool getMachFromVcas(double *Mach,double vcas);
 
-  float GammaEqOfTheta(float Theta);
-  float GammaEqOfAlpha(float Alpha);
-  float calcVcas(float Mach);
+  double GammaEqOfTheta(double Theta);
+  double GammaEqOfAlpha(double Alpha);
+  double calcVcas(double Mach);
   void calcUVWfromNED(void);
   void calcWindUVW(void);
 
-  bool findInterval(float x,float guess);
-  bool solve(float *y, float x);
+  bool findInterval(double x,double guess);
+  bool solve(double *y, double x);
+  void Debug(int from);
 };
 
 #endif