diff --git a/src/blackmisc/simulation/simulatedaircraft.cpp b/src/blackmisc/simulation/simulatedaircraft.cpp index c6e671f47..64a80bdf5 100644 --- a/src/blackmisc/simulation/simulatedaircraft.cpp +++ b/src/blackmisc/simulation/simulatedaircraft.cpp @@ -461,6 +461,11 @@ namespace BlackMisc m_models[NetworkModel] = model; } + void CSimulatedAircraft::setCG(const CLength &cg) + { + m_models.setCG(cg); + } + void CSimulatedAircraft::setModelString(const QString &modelString) { Q_ASSERT_X(m_models.size() == 2, Q_FUNC_INFO, "Wrong model size"); diff --git a/src/blackmisc/simulation/simulatedaircraft.h b/src/blackmisc/simulation/simulatedaircraft.h index 7e9936e67..b723bea04 100644 --- a/src/blackmisc/simulation/simulatedaircraft.h +++ b/src/blackmisc/simulation/simulatedaircraft.h @@ -386,6 +386,9 @@ namespace BlackMisc //! Set network model void setNetworkModel(const CAircraftModel &model); + //! Set the center of gravity + void setCG(const PhysicalQuantities::CLength &cg); + //! Set callsign void setCallsign(const Aviation::CCallsign &callsign); diff --git a/src/blackmisc/simulation/simulatedaircraftlist.cpp b/src/blackmisc/simulation/simulatedaircraftlist.cpp index 7e5530029..ae4a19b5f 100644 --- a/src/blackmisc/simulation/simulatedaircraftlist.cpp +++ b/src/blackmisc/simulation/simulatedaircraftlist.cpp @@ -108,6 +108,19 @@ namespace BlackMisc return c; } + int CSimulatedAircraftList::setCG(const CCallsign &callsign, const CLength &cg, bool onlyFirst) + { + int c = 0; + for (CSimulatedAircraft &aircraft : (*this)) + { + if (aircraft.getCallsign() != callsign) { continue; } + aircraft.setCG(cg); + c++; + if (onlyFirst) break; + } + return c; + } + int CSimulatedAircraftList::setFastPositionUpdates(const CCallsign &callsign, bool fastPositions, bool onlyFirst) { int c = 0; diff --git a/src/blackmisc/simulation/simulatedaircraftlist.h b/src/blackmisc/simulation/simulatedaircraftlist.h index c287753e4..a029fa2fd 100644 --- a/src/blackmisc/simulation/simulatedaircraftlist.h +++ b/src/blackmisc/simulation/simulatedaircraftlist.h @@ -78,6 +78,9 @@ namespace BlackMisc //! Mark given callsign as rendered int setRendered(const Aviation::CCallsign &callsign, bool rendered, bool onlyFirst = true); + //! Set center of gravity + int setCG(const Aviation::CCallsign &callsign, const PhysicalQuantities::CLength &cg, bool onlyFirst = true); + //! Mark given callsign as enabled int setEnabled(const Aviation::CCallsign &callsign, bool enabled, bool onlyFirst);