diff --git a/src/blackmisc/weather/temperaturelayer.cpp b/src/blackmisc/weather/temperaturelayer.cpp index a9a4544b8..042996736 100644 --- a/src/blackmisc/weather/temperaturelayer.cpp +++ b/src/blackmisc/weather/temperaturelayer.cpp @@ -23,8 +23,11 @@ namespace BlackMisc namespace Weather { - CTemperatureLayer::CTemperatureLayer(const CAltitude &level, const CTemperature &value, double relativeHumidity) : - m_level(level), m_temperature(value), m_relativeHumidity(relativeHumidity) + CTemperatureLayer::CTemperatureLayer(const CAltitude &level, + const CTemperature &value, + const CTemperature &dewPoint, + double relativeHumidity) : + m_level(level), m_temperature(value), m_dewPoint(dewPoint), m_relativeHumidity(relativeHumidity) { } CVariant CTemperatureLayer::propertyByIndex(const BlackMisc::CPropertyIndex &index) const diff --git a/src/blackmisc/weather/temperaturelayer.h b/src/blackmisc/weather/temperaturelayer.h index ab9f11e3c..2624f8454 100644 --- a/src/blackmisc/weather/temperaturelayer.h +++ b/src/blackmisc/weather/temperaturelayer.h @@ -42,7 +42,10 @@ namespace BlackMisc CTemperatureLayer() = default; //! Constructor - CTemperatureLayer(const BlackMisc::Aviation::CAltitude &level, const PhysicalQuantities::CTemperature &value, double relativeHumidity); + CTemperatureLayer(const BlackMisc::Aviation::CAltitude &level, + const PhysicalQuantities::CTemperature &temperature, + const PhysicalQuantities::CTemperature &dewPoint, + double relativeHumidity); //! Set level void setLevel(const BlackMisc::Aviation::CAltitude &level) { m_level = level; } @@ -56,6 +59,12 @@ namespace BlackMisc //! Get temperature PhysicalQuantities::CTemperature getTemperature() const { return m_temperature; } + //! Set dew point + void setDewPoint(const PhysicalQuantities::CTemperature &value) { m_dewPoint = value; } + + //! Get dew point + PhysicalQuantities::CTemperature getDewPoint() const { return m_dewPoint; } + //! Set relative humidity void setRelativeHumidity(double value) { m_relativeHumidity = value; } @@ -75,6 +84,7 @@ namespace BlackMisc BLACK_ENABLE_TUPLE_CONVERSION(CTemperatureLayer) BlackMisc::Aviation::CAltitude m_level; PhysicalQuantities::CTemperature m_temperature; + PhysicalQuantities::CTemperature m_dewPoint; double m_relativeHumidity = 0; }; } // namespace @@ -84,6 +94,7 @@ Q_DECLARE_METATYPE(BlackMisc::Weather::CTemperatureLayer) BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Weather::CTemperatureLayer, ( attr(o.m_level), attr(o.m_temperature), + attr(o.m_dewPoint), attr(o.m_relativeHumidity) )) diff --git a/src/plugins/weatherdata/gfs/weatherdatagfs.cpp b/src/plugins/weatherdata/gfs/weatherdatagfs.cpp index aecacce90..d9dc78bec 100644 --- a/src/plugins/weatherdata/gfs/weatherdatagfs.cpp +++ b/src/plugins/weatherdata/gfs/weatherdatagfs.cpp @@ -246,7 +246,7 @@ namespace BlackWxPlugin GfsIsobaricLayer isobaricLayer = isobaricLayerIt.value(); CAltitude level(isobaricLayerIt.key(), CAltitude::MeanSeaLevel, CLengthUnit::ft()); - CTemperatureLayer temperature(level, CTemperature(isobaricLayer.temperature, CTemperatureUnit::K()), isobaricLayer.relativeHumidity); + CTemperatureLayer temperature(level, CTemperature(isobaricLayer.temperature, CTemperatureUnit::K()), {}, isobaricLayer.relativeHumidity); temperatureLayers.insert(temperature); double windDirection = -1 * CMathUtils::rad2deg(std::atan2(-isobaricLayer.windU, isobaricLayer.windV));