diff --git a/src/blackmisc/aviation/aircraftvelocity.cpp b/src/blackmisc/aviation/aircraftvelocity.cpp index b818a6768..1e0892fc0 100644 --- a/src/blackmisc/aviation/aircraftvelocity.cpp +++ b/src/blackmisc/aviation/aircraftvelocity.cpp @@ -17,8 +17,9 @@ BLACK_DEFINE_VALUEOBJECT_MIXINS(BlackMisc::Aviation, CAircraftVelocity) namespace BlackMisc::Aviation { const CSpeedUnit CAircraftVelocity::c_xyzSpeedUnit = CSpeedUnit::m_s(); + const CLengthUnit CAircraftVelocity::c_xyzLengthUnit = CLengthUnit::m(); const CAngleUnit CAircraftVelocity::c_pbhAngleUnit = CAngleUnit::rad(); - const CTimeUnit CAircraftVelocity::c_pbhTimeUnit = CTimeUnit::s(); + const CTimeUnit CAircraftVelocity::c_timeUnit = CTimeUnit::s(); CAircraftVelocity::CAircraftVelocity() = default; @@ -37,9 +38,9 @@ namespace BlackMisc::Aviation void CAircraftVelocity::setAngularVelocity(double pitch, double roll, double heading, CAngleUnit pbhAngleUnit, CTimeUnit pbhTimeUnit) { - m_pitch = pbhTimeUnit.convertFrom(c_pbhAngleUnit.convertFrom(pitch, pbhAngleUnit), c_pbhTimeUnit); - m_roll = pbhTimeUnit.convertFrom(c_pbhAngleUnit.convertFrom(roll, pbhAngleUnit), c_pbhTimeUnit); - m_heading = pbhTimeUnit.convertFrom(c_pbhAngleUnit.convertFrom(heading, pbhAngleUnit), c_pbhTimeUnit); + m_pitch = pbhTimeUnit.convertFrom(c_pbhAngleUnit.convertFrom(pitch, pbhAngleUnit), c_timeUnit); + m_roll = pbhTimeUnit.convertFrom(c_pbhAngleUnit.convertFrom(roll, pbhAngleUnit), c_timeUnit); + m_heading = pbhTimeUnit.convertFrom(c_pbhAngleUnit.convertFrom(heading, pbhAngleUnit), c_timeUnit); } double CAircraftVelocity::getVelocityX(CSpeedUnit unit) const @@ -59,24 +60,24 @@ namespace BlackMisc::Aviation double CAircraftVelocity::getPitchVelocity(CAngleUnit angleUnit, CTimeUnit timeUnit) const { - return c_pbhTimeUnit.convertFrom(angleUnit.convertFrom(m_pitch, c_pbhAngleUnit), timeUnit); + return c_timeUnit.convertFrom(angleUnit.convertFrom(m_pitch, c_pbhAngleUnit), timeUnit); } double CAircraftVelocity::getRollVelocity(CAngleUnit angleUnit, CTimeUnit timeUnit) const { - return c_pbhTimeUnit.convertFrom(angleUnit.convertFrom(m_roll, c_pbhAngleUnit), timeUnit); + return c_timeUnit.convertFrom(angleUnit.convertFrom(m_roll, c_pbhAngleUnit), timeUnit); } double CAircraftVelocity::getHeadingVelocity(CAngleUnit angleUnit, CTimeUnit timeUnit) const { - return c_pbhTimeUnit.convertFrom(angleUnit.convertFrom(m_heading, c_pbhAngleUnit), timeUnit); + return c_timeUnit.convertFrom(angleUnit.convertFrom(m_heading, c_pbhAngleUnit), timeUnit); } QString CAircraftVelocity::convertToQString(bool i18n) const { return u"Velocity: " % QStringLiteral("%1 %2 %3 ").arg(m_x).arg(m_y).arg(m_z) % c_xyzSpeedUnit.convertToQString(i18n) % u" | Rotation: " % QStringLiteral("%1 %2 %3 ").arg(m_pitch).arg(m_roll).arg(m_heading) % - c_pbhAngleUnit.convertToQString(i18n) % u"/" % c_pbhTimeUnit.convertToQString(i18n); + c_pbhAngleUnit.convertToQString(i18n) % u"/" % c_timeUnit.convertToQString(i18n); } QVariant CAircraftVelocity::propertyByIndex(CPropertyIndexRef index) const diff --git a/src/blackmisc/aviation/aircraftvelocity.h b/src/blackmisc/aviation/aircraftvelocity.h index a4fc255c0..447ddaf1f 100644 --- a/src/blackmisc/aviation/aircraftvelocity.h +++ b/src/blackmisc/aviation/aircraftvelocity.h @@ -73,14 +73,18 @@ namespace BlackMisc::Aviation //! \copydoc Mixin::Index::comparePropertyByIndex int comparePropertyByIndex(CPropertyIndexRef index, const CAircraftVelocity &compareValue) const; - private: - static const PhysicalQuantities::CAngleUnit c_pbhAngleUnit; //!< \todo Create a dedicated PQ class for angular velocity + //! Unit constants + //! @{ static const PhysicalQuantities::CSpeedUnit c_xyzSpeedUnit; - static const PhysicalQuantities::CTimeUnit c_pbhTimeUnit; + static const PhysicalQuantities::CLengthUnit c_xyzLengthUnit; + static const PhysicalQuantities::CAngleUnit c_pbhAngleUnit; // TODO Create a dedicated PQ class for angular velocity + static const PhysicalQuantities::CTimeUnit c_timeUnit; + //! @} - double m_x = 0; - double m_y = 0; - double m_z = 0; + private: + double m_x = 0; //!< Positive moves east + double m_y = 0; //!< Positive moves up + double m_z = 0; //!< Positive moves north double m_pitch = 0; double m_roll = 0; double m_heading = 0;