Ref T335, misc improvements in value objects

* allow to reset PBH for terrain probe
* check for null altitude before converting
* function isTerrainProbe for model/aircraft
This commit is contained in:
Klaus Basan
2018-09-06 08:49:40 +02:00
committed by Roland Winklmeier
parent 916f2f6180
commit 651ead5b51
6 changed files with 24 additions and 3 deletions

View File

@@ -979,6 +979,15 @@ namespace BlackMisc
m_pressureAltitude = altitude;
}
void CAircraftSituation::setZeroPBH()
{
static const CAngle za(0, CAngleUnit::deg());
static const CHeading zh(za, CHeading::True);
this->setPitch(za);
this->setBank(za);
this->setHeading(zh);
}
QString CAircraftSituation::getPBHInfo() const
{
static const QString pbh("P: %1 %2 B: %3 %4 H: %5 %6");

View File

@@ -413,6 +413,9 @@ namespace BlackMisc
//! Set bank (angle)
void setBank(const PhysicalQuantities::CAngle &bank) { m_bank = bank; }
//! Set PBH values to 0 (zero)
void setZeroPBH();
//! Get PBH info (all together)
QString getPBHInfo() const;

View File

@@ -101,6 +101,7 @@ namespace BlackMisc
void CAltitude::convertToPressureAltitude(const CPressure &seaLevelPressure)
{
if (m_altitudeType == PressureAltitude) { return; }
if (this->isNull()) { return; }
const CPressure deltaPressure = standardISASeaLevelPressure() - seaLevelPressure;
const double deltaPressureV = deltaPressure.value(CPressureUnit::mbar());
const double deltaAltitudeV = deltaPressureV * 30.0; // 30.0 ft per mbar
@@ -111,6 +112,8 @@ namespace BlackMisc
CAltitude CAltitude::toPressureAltitude(const CPressure &seaLevelPressure) const
{
if (seaLevelPressure.isNull()) { return CAltitude::null(); }
if (this->isNull()) { return CAltitude::null(); }
CAltitude other(*this);
other.convertToPressureAltitude(seaLevelPressure);
return other;