X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWeatherCM%2FFGAirPressureItem.h;h=21192904b71b5949905a0e02681e3ce76869caaa;hb=a4e81f4ff075e6a3c0c2ea1b5a29c0bcdfdbc671;hp=c6622b34c81e03795dd521921d570aa31876d21f;hpb=b645c8cf7e4aecc006b0d90a0ff7b4b0ad95cc62;p=flightgear.git diff --git a/src/WeatherCM/FGAirPressureItem.h b/src/WeatherCM/FGAirPressureItem.h index c6622b34c..21192904b 100644 --- a/src/WeatherCM/FGAirPressureItem.h +++ b/src/WeatherCM/FGAirPressureItem.h @@ -4,7 +4,7 @@ Author: Christian Mayer Date started: 28.05.99 - ---------- Copyright (C) 1999 Christian Mayer (vader@t-online.de) ---------- + -------- Copyright (C) 1999 Christian Mayer (fgfs@christianmayer.de) -------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -33,6 +33,14 @@ HISTORY 08.06.1999 Christian Mayer Added international air preasure formula 16.06.1999 Durk Talsma Portability for Linux 20.06.1999 Christian Mayer added lots of consts +11.10.1999 Christian Mayer changed set<> to map<> on Bernie Bright's + suggestion +19.10.1999 Christian Mayer change to use PLIB's sg instead of Point[2/3]D + and lots of wee code cleaning +15.12.1999 Christian Mayer changed the air pressure calculation to a much + more realistic formula. But as I need for that + the temperature I moved the code to + FGPhysicalProperties *****************************************************************************/ /****************************************************************************/ @@ -44,8 +52,9 @@ HISTORY /****************************************************************************/ /* INCLUDES */ /****************************************************************************/ -#include "FGWeatherDefs.h" #include + +#include "FGWeatherDefs.h" /****************************************************************************/ /* DEFINES */ @@ -57,36 +66,38 @@ FGAirPressureItem operator-(const FGAirPressureItem& arg); /* CLASS DECLARATION */ /* NOTE: The value stored in 'value' is the air preasure that we'd have at */ /* an altitude of 0.0 The correct airpreasure at the stored altitude */ -/* gets calulated when getValue() is called. */ +/* gets calulated in FGPhyiscalProperties as I need to know the */ +/* temperatures at the different altitudes for that. */ /****************************************************************************/ class FGAirPressureItem { private: - WeatherPrecition value; + WeatherPrecision value; //that's the airpressure at 0 metres + protected: public: - FGAirPressureItem(const WeatherPrecition& v) {value = v;} - FGAirPressureItem() {value = FG_WEATHER_DEFAULT_AIRPRESSURE;} + FGAirPressureItem(const WeatherPrecision v) {value = v; } + FGAirPressureItem() {value = FG_WEATHER_DEFAULT_AIRPRESSURE;} - //WeatherPrecition getValue(WeatherPrecition alt) { return value * pow(1.0 - 0.0065*alt/288.0, 5.255); }; + WeatherPrecision getValue() const + { + return value; + }; - WeatherPrecition getValue(const WeatherPrecition& alt) const + void setValue(WeatherPrecision p) { - return (WeatherPrecition)((value / 101325.0) * - ( - 1.01325e5 + alt * (-1.19459535223623e1 + alt * (5.50461110007561e-4 + alt * (-1.13574703113648e-8 + alt * 8.61601726143988e-14))) - )); + value = p; }; - - FGAirPressureItem& operator*=(const WeatherPrecition& arg); + + FGAirPressureItem& operator*=(const WeatherPrecision arg); FGAirPressureItem& operator+=(const FGAirPressureItem& arg); FGAirPressureItem& operator-=(const FGAirPressureItem& arg); friend FGAirPressureItem operator-(const FGAirPressureItem& arg); }; -inline FGAirPressureItem& FGAirPressureItem::operator*= (const WeatherPrecition& arg) +inline FGAirPressureItem& FGAirPressureItem::operator*= (const WeatherPrecision arg) { value *= arg; return *this;