From b74de43ce0d7cc6c8febc245b3c9163e77f15d88 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 10 Jul 2018 17:15:25 +0200 Subject: [PATCH] Ref T268, compare for CAltitude --- src/blackmisc/aviation/altitude.cpp | 14 ++++++++++++-- src/blackmisc/aviation/altitude.h | 9 ++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/blackmisc/aviation/altitude.cpp b/src/blackmisc/aviation/altitude.cpp index dadccf21d..2d2083c73 100644 --- a/src/blackmisc/aviation/altitude.cpp +++ b/src/blackmisc/aviation/altitude.cpp @@ -8,11 +8,12 @@ */ #include "blackmisc/aviation/altitude.h" -#include "blackmisc/iconlist.h" -#include "blackmisc/icons.h" #include "blackmisc/pq/measurementunit.h" #include "blackmisc/pq/constants.h" #include "blackmisc/pq/pqstring.h" +#include "blackmisc/comparefunctions.h" +#include "blackmisc/iconlist.h" +#include "blackmisc/icons.h" #include #include @@ -337,6 +338,15 @@ namespace BlackMisc return BlackMisc::CIcon::iconByIndex(CIcons::GeoPosition); } + int CAltitude::compare(const CAltitude &otherAltitude) const + { + if (this->getReferenceDatum() != otherAltitude.getReferenceDatum()) + { + return Compare::compare(static_cast(this->getReferenceDatum()), static_cast(otherAltitude.getReferenceDatum())); + } + return CLength::compare(*this, otherAltitude); + } + const CAltitude &CAltitude::null() { static const CAltitude null(0, CAltitude::MeanSeaLevel, CLengthUnit::nullUnit()); diff --git a/src/blackmisc/aviation/altitude.h b/src/blackmisc/aviation/altitude.h index eff9db2c0..74ef7edf5 100644 --- a/src/blackmisc/aviation/altitude.h +++ b/src/blackmisc/aviation/altitude.h @@ -67,9 +67,9 @@ namespace BlackMisc */ enum ReferenceDatum { - MeanSeaLevel = 0, //!< MSL - AboveGround, //!< AGL - FlightLevel //!< Flight level + MeanSeaLevel = 0, //!< MSL + AboveGround, //!< AGL + FlightLevel //!< Flight level }; //! Altitude type @@ -185,6 +185,9 @@ namespace BlackMisc //! \copydoc BlackMisc::Mixin::Icon::toIcon BlackMisc::CIcon toIcon() const; + //! \copydoc PhysicalQuantities::CPhysicalQuantity::compare + int compare(const CAltitude &otherAltitude) const; + //! Null altitude (MSL) static const CAltitude &null();