]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/metarproperties.hxx
Basics on catalog list model in the GUI.
[flightgear.git] / src / Environment / metarproperties.hxx
index 221219f98a62035d6395d39ace789fb1ca5b92a2..6404642f327675bd1fcd9072194a106d65af31ff 100644 (file)
 #ifndef __METARPROPERTIES_HXX
 #define __METARPROPERTIES_HXX
 
-#include <Airports/simple.hxx>
+#include <Airports/airport.hxx>
 #include <simgear/props/props.hxx>
-#include "tiedpropertylist.hxx"
+#include <simgear/props/tiedpropertylist.hxx>
+
+class FGMetar;
 
 namespace Environment {
 
+class MagneticVariation;
+
 class MetarProperties : public SGReferenced
 {
 public:
@@ -36,16 +40,34 @@ public:
     virtual ~MetarProperties();
 
     SGPropertyNode_ptr get_root_node() const { return _rootNode; }
+    virtual bool isValid() const { return _metarValidNode->getBoolValue(); }
+    virtual const std::string & getStationId() const { return _station_id; }
+    virtual void setStationId( const std::string & value );
+    virtual void setMetar(SGSharedPtr<FGMetar> m);
+    virtual void invalidate();
 
 private:
-    const char * get_metar() const { return _metar.c_str(); }
+    const char * get_metar() const;
     void set_metar( const char * metar );
+    
     const char * get_station_id() const { return _station_id.c_str(); }
+    void set_station_id( const char * value );
     const char * get_decoded() const { return _decoded.c_str(); }
+    double get_magnetic_variation_deg() const;
+    double get_magnetic_dip_deg() const;
+    double get_wind_from_north_fps() const { return _wind_from_north_fps; }
+    double get_wind_from_east_fps() const { return _wind_from_east_fps; }
+    double get_base_wind_dir() const { return _base_wind_dir; }
+    double get_wind_speed() const { return _wind_speed; }
+    void set_wind_from_north_fps( double value );
+    void set_wind_from_east_fps( double value );
+    void set_base_wind_dir( double value );
+    void set_wind_speed( double value );
 
+    SGSharedPtr<FGMetar> _metar;
     SGPropertyNode_ptr _rootNode;
     SGPropertyNode_ptr _metarValidNode;
-    std::string _metar;
+    
     std::string _station_id;
     double _station_elevation;
     double _station_latitude;
@@ -71,9 +93,19 @@ private:
     double _snow;
     bool _snow_cover;
     std::string _decoded;
-
-    TiedPropertyList _tiedProperties;
+    int _day;
+    int _hour;
+    int _minute;
+    bool _cavok;
+protected:
+    simgear::TiedPropertyList _tiedProperties;
+    MagneticVariation * _magneticVariation;
 };
 
+inline void MetarProperties::set_station_id( const char * value )
+{ 
+    _station_id = value; 
+}
+
 } // namespace
 #endif // __METARPROPERTIES_HXX