Merge branch 'next' of git://gitorious.org/fg/simgear into next
This commit is contained in:
@@ -1212,6 +1212,22 @@ void SGMetarCloud::set(double alt, Coverage cov)
|
|||||||
_coverage = cov;
|
_coverage = cov;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SGMetarCloud::Coverage SGMetarCloud::getCoverage( const std::string & coverage )
|
||||||
|
{
|
||||||
|
if( coverage == "clear" ) return COVERAGE_CLEAR;
|
||||||
|
if( coverage == "few" ) return COVERAGE_FEW;
|
||||||
|
if( coverage == "scattered" ) return COVERAGE_SCATTERED;
|
||||||
|
if( coverage == "broken" ) return COVERAGE_BROKEN;
|
||||||
|
if( coverage == "overcast" ) return COVERAGE_OVERCAST;
|
||||||
|
return COVERAGE_NIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * SGMetarCloud::COVERAGE_NIL_STRING = "nil";
|
||||||
|
const char * SGMetarCloud::COVERAGE_CLEAR_STRING = "clear";
|
||||||
|
const char * SGMetarCloud::COVERAGE_FEW_STRING = "few";
|
||||||
|
const char * SGMetarCloud::COVERAGE_SCATTERED_STRING = "scattered";
|
||||||
|
const char * SGMetarCloud::COVERAGE_BROKEN_STRING = "broken";
|
||||||
|
const char * SGMetarCloud::COVERAGE_OVERCAST_STRING = "overcast";
|
||||||
|
|
||||||
void SGMetarVisibility::set(double dist, int dir, int mod, int tend)
|
void SGMetarVisibility::set(double dist, int dir, int mod, int tend)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -130,27 +130,35 @@ protected:
|
|||||||
class SGMetarCloud {
|
class SGMetarCloud {
|
||||||
friend class SGMetar;
|
friend class SGMetar;
|
||||||
public:
|
public:
|
||||||
enum Coverage {
|
enum Coverage {
|
||||||
COVERAGE_NIL = -1,
|
COVERAGE_NIL = -1,
|
||||||
COVERAGE_CLEAR = 0,
|
COVERAGE_CLEAR = 0,
|
||||||
COVERAGE_FEW = 1,
|
COVERAGE_FEW = 1,
|
||||||
COVERAGE_SCATTERED = 2,
|
COVERAGE_SCATTERED = 2,
|
||||||
COVERAGE_BROKEN = 3,
|
COVERAGE_BROKEN = 3,
|
||||||
COVERAGE_OVERCAST = 4
|
COVERAGE_OVERCAST = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char * COVERAGE_NIL_STRING;
|
||||||
|
static const char * COVERAGE_CLEAR_STRING;
|
||||||
|
static const char * COVERAGE_FEW_STRING;
|
||||||
|
static const char * COVERAGE_SCATTERED_STRING;
|
||||||
|
static const char * COVERAGE_BROKEN_STRING;
|
||||||
|
static const char * COVERAGE_OVERCAST_STRING;
|
||||||
|
|
||||||
SGMetarCloud() : _coverage(COVERAGE_NIL), _altitude(NaN), _type(0), _type_long(0) {}
|
SGMetarCloud() : _coverage(COVERAGE_NIL), _altitude(NaN), _type(0), _type_long(0) {}
|
||||||
|
|
||||||
void set(double alt, Coverage cov = COVERAGE_NIL );
|
void set(double alt, Coverage cov = COVERAGE_NIL );
|
||||||
|
|
||||||
inline Coverage getCoverage() const { return _coverage; }
|
inline Coverage getCoverage() const { return _coverage; }
|
||||||
|
static Coverage getCoverage( const std::string & coverage );
|
||||||
inline double getAltitude_m() const { return _altitude; }
|
inline double getAltitude_m() const { return _altitude; }
|
||||||
inline double getAltitude_ft() const { return _altitude == NaN ? NaN : _altitude * SG_METER_TO_FEET; }
|
inline double getAltitude_ft() const { return _altitude == NaN ? NaN : _altitude * SG_METER_TO_FEET; }
|
||||||
inline const char *getTypeString() const { return _type; }
|
inline const char *getTypeString() const { return _type; }
|
||||||
inline const char *getTypeLongString() const { return _type_long; }
|
inline const char *getTypeLongString() const { return _type_long; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Coverage _coverage; // quarters: 0 -> clear ... 4 -> overcast
|
Coverage _coverage; // quarters: 0 -> clear ... 4 -> overcast
|
||||||
double _altitude; // 1000 m
|
double _altitude; // 1000 m
|
||||||
const char *_type; // CU
|
const char *_type; // CU
|
||||||
const char *_type_long; // cumulus
|
const char *_type_long; // cumulus
|
||||||
@@ -170,20 +178,20 @@ public:
|
|||||||
RTD
|
RTD
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Intensity {
|
enum Intensity {
|
||||||
NIL = 0,
|
NIL = 0,
|
||||||
LIGHT = 1,
|
LIGHT = 1,
|
||||||
MODERATE = 2,
|
MODERATE = 2,
|
||||||
HEAVY = 3
|
HEAVY = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Weather {
|
struct Weather {
|
||||||
Weather() { intensity = NIL; vincinity = false; }
|
Weather() { intensity = NIL; vincinity = false; }
|
||||||
Intensity intensity;
|
Intensity intensity;
|
||||||
bool vincinity;
|
bool vincinity;
|
||||||
vector<string> descriptions;
|
vector<string> descriptions;
|
||||||
vector<string> phenomena;
|
vector<string> phenomena;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline const char *getData() const { return _data; }
|
inline const char *getData() const { return _data; }
|
||||||
inline const char *getUnusedData() const { return _m; }
|
inline const char *getUnusedData() const { return _m; }
|
||||||
@@ -232,7 +240,7 @@ public:
|
|||||||
inline const vector<SGMetarCloud>& getClouds() const { return _clouds; }
|
inline const vector<SGMetarCloud>& getClouds() const { return _clouds; }
|
||||||
inline const map<string, SGMetarRunway>& getRunways() const { return _runways; }
|
inline const map<string, SGMetarRunway>& getRunways() const { return _runways; }
|
||||||
inline const vector<string>& getWeather() const { return _weather; }
|
inline const vector<string>& getWeather() const { return _weather; }
|
||||||
inline const vector<struct Weather> getWeather2() const { return _weather2; }
|
inline const vector<struct Weather> getWeather2() const { return _weather2; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
string _url;
|
string _url;
|
||||||
@@ -259,7 +267,7 @@ protected:
|
|||||||
int _hail;
|
int _hail;
|
||||||
int _snow;
|
int _snow;
|
||||||
bool _cavok;
|
bool _cavok;
|
||||||
vector<struct Weather> _weather2;
|
vector<struct Weather> _weather2;
|
||||||
|
|
||||||
SGMetarVisibility _min_visibility;
|
SGMetarVisibility _min_visibility;
|
||||||
SGMetarVisibility _max_visibility;
|
SGMetarVisibility _max_visibility;
|
||||||
|
|||||||
Reference in New Issue
Block a user