- inline float Getrho(void) {return rho;}
- float CalcRho(float altitude);
-
- inline float GetTemperature(void){return temperature;}
- inline float GetDensity(void) {return density;} // use only after Run() has been called
- inline float GetPressure(void) {return pressure;}
- inline float GetSoundSpeed(void) {return soundspeed;}
-
- float GetTemperature(float altitude); //Rankine, altitude in feet
- float GetDensity(float altitude); //slugs/ft^3
- float GetPressure(float altitude); //lbs/ft^2
- float GetSoundSpeed(float altitude); //ft/s
-
+ bool InitModel(void);
+
+ /// Returns the temperature in degrees Rankine.
+ inline double GetTemperature(void) const {return *temperature;}
+ /** Returns the density in slugs/ft^3.
+ <i>This function may <b>only</b> be used if Run() is called first.</i> */
+ inline double GetDensity(void) const {return *density;}
+ /// Returns the pressure in psf.
+ inline double GetPressure(void) const {return *pressure;}
+ /// Returns the pressure at an arbitrary altitude in psf
+ double GetPressure(double alt);
+ /// Returns the speed of sound in ft/sec.
+ inline double GetSoundSpeed(void) const {return soundspeed;}
+
+ /// Returns the sea level temperature in degrees Rankine.
+ inline double GetTemperatureSL(void) const { return SLtemperature; }
+ /// Returns the sea level density in slugs/ft^3
+ inline double GetDensitySL(void) const { return SLdensity; }
+ /// Returns the sea level pressure in psf.
+ inline double GetPressureSL(void) const { return SLpressure; }
+ /// Returns the sea level speed of sound in ft/sec.
+ inline double GetSoundSpeedSL(void) const { return SLsoundspeed; }
+
+ /// Returns the ratio of at-altitude temperature over the sea level value.
+ inline double GetTemperatureRatio(void) const { return (*temperature)*rSLtemperature; }
+ /// Returns the ratio of at-altitude density over the sea level value.
+ inline double GetDensityRatio(void) const { return (*density)*rSLdensity; }
+ /// Returns the ratio of at-altitude pressure over the sea level value.
+ inline double GetPressureRatio(void) const { return (*pressure)*rSLpressure; }
+ /// Returns the ratio of at-altitude sound speed over the sea level value.
+ inline double GetSoundSpeedRatio(void) const { return soundspeed*rSLsoundspeed; }
+
+ /// Tells the simulator to use an externally calculated atmosphere model.
+ void UseExternal(void);
+ /// Tells the simulator to use the internal atmosphere model.
+ void UseInternal(void); //this is the default
+ /// Gets the boolean that tells if the external atmosphere model is being used.
+ bool External(void) { return useExternal; }
+
+ /// Provides the external atmosphere model with an interface to set the temperature.
+ inline void SetExTemperature(double t) { exTemperature=t; }
+ /// Provides the external atmosphere model with an interface to set the density.
+ inline void SetExDensity(double d) { exDensity=d; }
+ /// Provides the external atmosphere model with an interface to set the pressure.
+ inline void SetExPressure(double p) { exPressure=p; }
+
+ /// Sets the wind components in NED frame.
+ inline void SetWindNED(double wN, double wE, double wD) { vWindNED(1)=wN; vWindNED(2)=wE; vWindNED(3)=wD;}
+
+ /// Retrieves the wind components in NED frame.
+ inline FGColumnVector3& GetWindNED(void) { return vWindNED; }
+
+ /** Retrieves the wind direction. The direction is defined as north=0 and
+ increases counterclockwise. The wind heading is returned in radians.*/
+ inline double GetWindPsi(void) const { return psiw; }
+
+ inline void SetTurbGain(double tt) {TurbGain = tt;}
+ inline void SetTurbRate(double tt) {TurbRate = tt;}
+
+ inline double GetTurbPQR(int idx) const {return vTurbPQR(idx);}
+ inline FGColumnVector3& GetTurbPQR(void) {return vTurbPQR;}
+
+ void bind(void);
+ void unbind(void);
+
+