+ 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(double wN, double wE, double wD);
+
+ void SetWindMagKtsIC(double mag);
+ void SetWindDirDegIC(double dir);
+
+ void SetHeadWindKtsIC(double head);
+ void SetCrossWindKtsIC(double cross);// positive from left
+
+ void SetWindDownKtsIC(double wD);
+
+ 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 rstname, bool useStoredPath = true );
+
+ void bind(void);
+ void unbind(void);
+
+
+private:
+ 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;
+
+ double alpha, beta, theta, phi, psi, gamma;
+ double salpha,sbeta,stheta,sphi,spsi,sgamma;
+ double calpha,cbeta,ctheta,cphi,cpsi,cgamma;
+
+ double xlo, xhi,xmin,xmax;
+
+ typedef double (FGInitialCondition::*fp)(double x);