diff --git a/samples/blackmisc/samplesjson.cpp b/samples/blackmisc/samplesjson.cpp index 16023f1ca..9a1cea17e 100644 --- a/samples/blackmisc/samplesjson.cpp +++ b/samples/blackmisc/samplesjson.cpp @@ -77,8 +77,7 @@ namespace BlackSample qDebug() << "------- Enter -----"; cin.readLine(); - CAircraftSituation situation(geoPos, CAltitude(1000, CAltitude::AboveGround, CLengthUnit::ft()), - CHeading(10, CHeading::True, CAngleUnit::deg()), + CAircraftSituation situation(geoPos, CHeading(10, CHeading::True, CAngleUnit::deg()), CAngle(12, CAngleUnit::deg()), CAngle(5, CAngleUnit::deg()), CSpeed(111, CSpeedUnit::km_h())); CSimulatedAircraft aircraft(CCallsign("DAMBZ"), CUser("123456", "Joe Pilot"), situation); diff --git a/samples/blackmisc/samplesperformance.cpp b/samples/blackmisc/samplesperformance.cpp index 6655f24bb..d4a6afdd3 100644 --- a/samples/blackmisc/samplesperformance.cpp +++ b/samples/blackmisc/samplesperformance.cpp @@ -490,10 +490,9 @@ namespace BlackSample { CCallsign callsign("CS" + QString::number(cs)); CCoordinateGeodetic coordinate(cs, cs, cs); - CAltitude alt(cs, CAltitude::MeanSeaLevel, CLengthUnit::m()); for (int t = 0; t < numberOfTimes; t++) { - CAircraftSituation s(callsign, coordinate, alt); + CAircraftSituation s(callsign, coordinate); s.setMSecsSinceEpoch(baseTimeEpoch + DeltaTime * t); situations.push_back(s); } diff --git a/samples/cliclient/client.cpp b/samples/cliclient/client.cpp index a3226f9e4..dcc95eca5 100644 --- a/samples/cliclient/client.cpp +++ b/samples/cliclient/client.cpp @@ -355,8 +355,7 @@ namespace BlackSample QString xpdrMode; args >> lat >> lon >> alt >> hdg >> pitch >> bank >> gs >> com1 >> com2 >> xpdrCode >> xpdrMode; BlackMisc::Simulation::CSimulatedAircraft aircraft("", BlackMisc::Network::CUser(), BlackMisc::Aviation::CAircraftSituation( - BlackMisc::Geo::CCoordinateGeodetic(lat, lon, 0), - BlackMisc::Aviation::CAltitude(alt, BlackMisc::Aviation::CAltitude::MeanSeaLevel, BlackMisc::PhysicalQuantities::CLengthUnit::ft()), + BlackMisc::Geo::CCoordinateGeodetic(lat, lon, alt), BlackMisc::Aviation::CHeading(hdg, BlackMisc::Aviation::CHeading::True, BlackMisc::PhysicalQuantities::CAngleUnit::deg()), BlackMisc::PhysicalQuantities::CAngle(pitch, BlackMisc::PhysicalQuantities::CAngleUnit::deg()), BlackMisc::PhysicalQuantities::CAngle(bank, BlackMisc::PhysicalQuantities::CAngleUnit::deg()), @@ -393,8 +392,7 @@ namespace BlackSample double gs; args >> lat >> lon >> alt >> hdg >> pitch >> bank >> gs; updateOwnSituation(BlackMisc::Aviation::CAircraftSituation( - BlackMisc::Geo::CCoordinateGeodetic(lat, lon, 0), - BlackMisc::Aviation::CAltitude(alt, BlackMisc::Aviation::CAltitude::MeanSeaLevel, BlackMisc::PhysicalQuantities::CLengthUnit::ft()), + BlackMisc::Geo::CCoordinateGeodetic(lat, lon, alt), BlackMisc::Aviation::CHeading(hdg, BlackMisc::Aviation::CHeading::True, BlackMisc::PhysicalQuantities::CAngleUnit::deg()), BlackMisc::PhysicalQuantities::CAngle(pitch, BlackMisc::PhysicalQuantities::CAngleUnit::deg()), BlackMisc::PhysicalQuantities::CAngle(bank, BlackMisc::PhysicalQuantities::CAngleUnit::deg()), diff --git a/src/blackcore/context/contextownaircraft.cpp b/src/blackcore/context/contextownaircraft.cpp index 93e25432e..76fd73c6f 100644 --- a/src/blackcore/context/contextownaircraft.cpp +++ b/src/blackcore/context/contextownaircraft.cpp @@ -46,8 +46,8 @@ namespace BlackCore CCoordinateGeodetic( CLatitude::fromWgs84("N 049° 18' 17"), CLongitude::fromWgs84("E 008° 27' 05"), - CLength(0, CLengthUnit::m())), - CAltitude(312, CAltitude::MeanSeaLevel, CLengthUnit::ft()) + CAltitude(312, CAltitude::MeanSeaLevel, CLengthUnit::ft()) + ) ); return situation; } diff --git a/src/blackcore/vatsim/networkvatlib.cpp b/src/blackcore/vatsim/networkvatlib.cpp index 15a076c62..a80975d01 100644 --- a/src/blackcore/vatsim/networkvatlib.cpp +++ b/src/blackcore/vatsim/networkvatlib.cpp @@ -800,8 +800,7 @@ namespace BlackCore // if altered in underlying classes, this change needs to be reverted CAircraftSituation situation( callsign, - CCoordinateGeodetic(position->latitude, position->longitude), - CAltitude(position->altitudePressure, CAltitude::MeanSeaLevel, CLengthUnit::ft()), + CCoordinateGeodetic(position->latitude, position->longitude, position->altitudePressure), CHeading(position->heading, CHeading::True, CAngleUnit::deg()), CAngle(position->pitch, CAngleUnit::deg()), CAngle(position->bank, CAngleUnit::deg()), @@ -878,8 +877,7 @@ namespace BlackCore { CAircraftSituation situation( CCallsign(sender), - CCoordinateGeodetic(position->latitude, position->longitude, 0.0), - CAltitude(position->altitudeTrue, CAltitude::MeanSeaLevel, CLengthUnit::ft()), + CCoordinateGeodetic(position->latitude, position->longitude, position->altitudeTrue), CHeading(position->heading, CHeading::True, CAngleUnit::deg()), CAngle(position->pitch, CAngleUnit::deg()), CAngle(position->bank, CAngleUnit::deg()), diff --git a/src/blackcore/vatsim/vatsimdatafilereader.cpp b/src/blackcore/vatsim/vatsimdatafilereader.cpp index d1e74db41..50cd1d658 100644 --- a/src/blackcore/vatsim/vatsimdatafilereader.cpp +++ b/src/blackcore/vatsim/vatsimdatafilereader.cpp @@ -289,7 +289,7 @@ namespace BlackCore const double lng = clientPartsMap["longitude"].toDouble(); const double alt = clientPartsMap["altitude"].toDouble(); const CFrequency frequency = CFrequency(clientPartsMap["frequency"].toDouble(), CFrequencyUnit::MHz()); - CCoordinateGeodetic position(lat, lng, -1); + CCoordinateGeodetic position(lat, lng, alt); CAltitude altitude(alt, CAltitude::MeanSeaLevel, CLengthUnit::ft()); QString flightPlanRemarks = clientPartsMap["planned_remarks"]; @@ -308,7 +308,7 @@ namespace BlackCore { // Pilot section const double groundspeed = clientPartsMap["groundspeed"].toDouble(); - CAircraftSituation situation(position, altitude); + CAircraftSituation situation(position); situation.setGroundSpeed(CSpeed(groundspeed, CSpeedUnit::kts())); CSimulatedAircraft currentAircraft(user.getCallsign().getStringAsSet(), user, situation); diff --git a/src/blackmisc/aviation/aircraftsituation.cpp b/src/blackmisc/aviation/aircraftsituation.cpp index 9ae9fc4d0..f407b5660 100644 --- a/src/blackmisc/aviation/aircraftsituation.cpp +++ b/src/blackmisc/aviation/aircraftsituation.cpp @@ -27,13 +27,13 @@ namespace BlackMisc CAircraftSituation::CAircraftSituation() : m_groundElevation({ 0, nullptr }, CAltitude::MeanSeaLevel) {} - CAircraftSituation::CAircraftSituation(const CCoordinateGeodetic &position, const CAltitude &altitude, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation) - : m_position(position), m_altitude(altitude), m_heading(heading), m_pitch(pitch), + CAircraftSituation::CAircraftSituation(const CCoordinateGeodetic &position, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation) + : m_position(position), m_heading(heading), m_pitch(pitch), m_bank(bank), m_groundSpeed(gs), m_groundElevation(groundElevation) {} - CAircraftSituation::CAircraftSituation(const CCallsign &correspondingCallsign, const CCoordinateGeodetic &position, const CAltitude &altitude, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation) + CAircraftSituation::CAircraftSituation(const CCallsign &correspondingCallsign, const CCoordinateGeodetic &position, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation) : m_correspondingCallsign(correspondingCallsign), - m_position(position), m_altitude(altitude), m_heading(heading), m_pitch(pitch), + m_position(position), m_heading(heading), m_pitch(pitch), m_bank(bank), m_groundSpeed(gs), m_groundElevation(groundElevation) { m_correspondingCallsign.setTypeHint(CCallsign::Aircraft); @@ -42,7 +42,6 @@ namespace BlackMisc QString CAircraftSituation::convertToQString(bool i18n) const { QString s(this->m_position.toQString(i18n)); - s.append(" altitude: ").append(this->m_altitude.toQString(i18n)); s.append(" bank: ").append(this->m_bank.toQString(i18n)); s.append(" pitch: ").append(this->m_pitch.toQString(i18n)); s.append(" gs: ").append(this->m_groundSpeed.toQString(i18n)); @@ -74,7 +73,7 @@ namespace BlackMisc case IndexLongitude: return this->longitude().propertyByIndex(index.copyFrontRemoved()); case IndexAltitude: - return this->m_altitude.propertyByIndex(index.copyFrontRemoved()); + return this->getAltitude().propertyByIndex(index.copyFrontRemoved()); case IndexHeading: return this->m_heading.propertyByIndex(index.copyFrontRemoved()); case IndexPitch: @@ -105,9 +104,6 @@ namespace BlackMisc case IndexPosition: this->m_position.setPropertyByIndex(index.copyFrontRemoved(), variant); break; - case IndexAltitude: - this->m_altitude.setPropertyByIndex(index.copyFrontRemoved(), variant); - break; case IndexPitch: this->m_pitch.setPropertyByIndex(index.copyFrontRemoved(), variant); break; @@ -143,7 +139,7 @@ namespace BlackMisc return this->m_position.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getPosition()); break; case IndexAltitude: - return this->m_altitude.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getAltitude()); + return this->getAltitude().comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getAltitude()); break; case IndexPitch: return this->m_pitch.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getPitch()); @@ -185,15 +181,15 @@ namespace BlackMisc CLength CAircraftSituation::getHeightAboveGround() const { - if (this->m_altitude.getReferenceDatum() == CAltitude::AboveGround) + if (this->getAltitude().getReferenceDatum() == CAltitude::AboveGround) { // we have a sure value return this->getAltitude(); } const CLength gh(getGroundElevation()); - if (!gh.isNull() && !m_altitude.isNull()) + if (!gh.isNull() && !getAltitude().isNull()) { - return m_altitude - gh; + return getAltitude() - gh; } return { 0, nullptr }; } diff --git a/src/blackmisc/aviation/aircraftsituation.h b/src/blackmisc/aviation/aircraftsituation.h index 580819a2d..cbc941670 100644 --- a/src/blackmisc/aviation/aircraftsituation.h +++ b/src/blackmisc/aviation/aircraftsituation.h @@ -61,7 +61,7 @@ namespace BlackMisc CAircraftSituation(); //! Comprehensive constructor - CAircraftSituation(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, + CAircraftSituation(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CHeading &heading = {}, const BlackMisc::PhysicalQuantities::CAngle &pitch = {}, const BlackMisc::PhysicalQuantities::CAngle &bank = {}, @@ -70,7 +70,7 @@ namespace BlackMisc //! Comprehensive constructor CAircraftSituation(const BlackMisc::Aviation::CCallsign &correspondingCallsign, - const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, + const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CHeading &heading = {}, const BlackMisc::PhysicalQuantities::CAngle &pitch = {}, const BlackMisc::PhysicalQuantities::CAngle &bank = {}, @@ -102,11 +102,7 @@ namespace BlackMisc virtual bool isOnGroundGuessed() const; //! \copydoc Geo::ICoordinateGeodetic::geodeticHeight - const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const override - { - static const BlackMisc::PhysicalQuantities::CLength gh { 0, nullptr }; - return gh; - } + const BlackMisc::Aviation::CAltitude &geodeticHeight() const override { return this->m_position.geodeticHeight(); } //! \copydoc Geo::ICoordinateGeodetic::normalVector virtual QVector3D normalVector() const override { return this->m_position.normalVector(); } @@ -130,10 +126,10 @@ namespace BlackMisc void setHeading(const BlackMisc::Aviation::CHeading &heading) { this->m_heading = heading; } //! Get altitude (true) - const BlackMisc::Aviation::CAltitude &getAltitude() const { return this->m_altitude; } + const BlackMisc::Aviation::CAltitude &getAltitude() const { return this->m_position.geodeticHeight(); } //! Set altitude - void setAltitude(const BlackMisc::Aviation::CAltitude &altitude) { this->m_altitude = altitude; } + void setAltitude(const BlackMisc::Aviation::CAltitude &altitude) { this->m_position.setGeodeticHeight(altitude); } //! Get pitch const BlackMisc::PhysicalQuantities::CAngle &getPitch() const { return this->m_pitch; } @@ -180,7 +176,6 @@ namespace BlackMisc private: CCallsign m_correspondingCallsign; BlackMisc::Geo::CCoordinateGeodetic m_position; - BlackMisc::Aviation::CAltitude m_altitude; BlackMisc::Aviation::CHeading m_heading; BlackMisc::PhysicalQuantities::CAngle m_pitch; BlackMisc::PhysicalQuantities::CAngle m_bank; @@ -193,7 +188,6 @@ namespace BlackMisc CAircraftSituation, BLACK_METAMEMBER(correspondingCallsign), BLACK_METAMEMBER(position), - BLACK_METAMEMBER(altitude), BLACK_METAMEMBER(heading), BLACK_METAMEMBER(pitch), BLACK_METAMEMBER(bank), diff --git a/src/xbus/traffic.cpp b/src/xbus/traffic.cpp index 6df6beac0..b2a32459b 100644 --- a/src/xbus/traffic.cpp +++ b/src/xbus/traffic.cpp @@ -238,8 +238,7 @@ namespace XBus plane->situations.push_frontMaxElements( { callsign, - BlackMisc::Geo::CCoordinateGeodetic(latitude, longitude, 0), - CAltitude(altitude, CAltitude::MeanSeaLevel, CLengthUnit::ft()), + BlackMisc::Geo::CCoordinateGeodetic(latitude, longitude, altitude), CHeading(heading, CHeading::True, CAngleUnit::deg()), CAngle(pitch, CAngleUnit::deg()), CAngle(roll, CAngleUnit::deg()), diff --git a/tests/blackcore/testinterpolator.cpp b/tests/blackcore/testinterpolator.cpp index dd9ed2ff7..5cb3e0214 100644 --- a/tests/blackcore/testinterpolator.cpp +++ b/tests/blackcore/testinterpolator.cpp @@ -159,7 +159,7 @@ namespace BlackCoreTest CAircraftSituation CTestInterpolator::getTestSituation(const CCallsign &callsign, int number, qint64 ts, qint64 deltaT, qint64 offset) { - CAltitude a(number, CAltitude::MeanSeaLevel, CLengthUnit::m()); + CAltitude alt(number, CAltitude::MeanSeaLevel, CLengthUnit::m()); CLatitude lat(number, CAngleUnit::deg()); CLongitude lng(180.0 + number, CAngleUnit::deg()); CHeading heading(number * 10, CHeading::True, CAngleUnit::deg()); @@ -167,8 +167,8 @@ namespace BlackCoreTest CAngle pitch(number, CAngleUnit::deg()); CSpeed gs(number * 10, CSpeedUnit::km_h()); CAltitude gndElev({ 0, CLengthUnit::m() }, CAltitude::MeanSeaLevel); - CCoordinateGeodetic c(lat, lng, {}); - CAircraftSituation s(callsign, c, a, heading, pitch, bank, gs, gndElev); + CCoordinateGeodetic c(lat, lng, alt); + CAircraftSituation s(callsign, c, heading, pitch, bank, gs, gndElev); s.setMSecsSinceEpoch(ts - deltaT * number); // values in past s.setTimeOffsetMs(offset); return s; diff --git a/tests/blackmisc/testaviation.cpp b/tests/blackmisc/testaviation.cpp index e7daee1e3..c22318f9d 100644 --- a/tests/blackmisc/testaviation.cpp +++ b/tests/blackmisc/testaviation.cpp @@ -179,8 +179,7 @@ namespace BlackMiscTest CCoordinateGeodetic( CLatitude::fromWgs84("N 049° 18' 17"), CLongitude::fromWgs84("E 008° 27' 05"), - CLength(0, CLengthUnit::m())), - CAltitude(312, CAltitude::MeanSeaLevel, CLengthUnit::ft()) + CAltitude(312, CLengthUnit::ft())) ); CAircraftSituation situation2(situation1); QVERIFY2(situation1 == situation2, "situations shall be equal");