mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-05 17:55:45 +08:00
refs #296 minor improvements in initializing and sorting CAirport and CAirportList
This commit is contained in:
@@ -30,6 +30,13 @@ namespace BlackMisc
|
|||||||
m_icao(icao), m_position(position), m_distanceToPlane(0, CLengthUnit::nullUnit())
|
m_icao(icao), m_position(position), m_distanceToPlane(0, CLengthUnit::nullUnit())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
CAirport::CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position, const QString &descriptiveName) :
|
||||||
|
m_icao(icao), m_descriptiveName(descriptiveName), m_position(position), m_distanceToPlane(0, CLengthUnit::nullUnit())
|
||||||
|
{ }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert to string
|
* Convert to string
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ namespace BlackMisc
|
|||||||
//! ATC station constructor
|
//! ATC station constructor
|
||||||
CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position);
|
CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position);
|
||||||
|
|
||||||
|
//! ATC station constructor
|
||||||
|
CAirport(const CAirportIcao &icao, const BlackMisc::Geo::CCoordinateGeodetic &position, const QString &descriptiveName);
|
||||||
|
|
||||||
//! \copydoc CValueObject::toQVariant()
|
//! \copydoc CValueObject::toQVariant()
|
||||||
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); }
|
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); }
|
||||||
|
|
||||||
|
|||||||
@@ -91,5 +91,18 @@ namespace BlackMisc
|
|||||||
return airport.calculcateDistanceAndBearingToPlane(position, updateValues) > maxDistance;
|
return airport.calculcateDistanceAndBearingToPlane(position, updateValues) > maxDistance;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sort by range
|
||||||
|
*/
|
||||||
|
void CAirportList::sortByRange(const BlackMisc::Geo::CCoordinateGeodetic &position, bool updateValues)
|
||||||
|
{
|
||||||
|
if (updateValues)
|
||||||
|
{
|
||||||
|
this->calculcateDistanceAndBearingToPlane(position);
|
||||||
|
}
|
||||||
|
this->sort([ & ](const CAirport &a, const CAirport &b) { return a.getDistanceToPlane() < b.getDistanceToPlane(); });
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
@@ -52,6 +52,9 @@ namespace BlackMisc
|
|||||||
//! Remove if outside given radius
|
//! Remove if outside given radius
|
||||||
void removeIfOutsideRange(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::PhysicalQuantities::CLength &maxDistance, bool updateDistance);
|
void removeIfOutsideRange(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::PhysicalQuantities::CLength &maxDistance, bool updateDistance);
|
||||||
|
|
||||||
|
//! Sort by range from a given coordinate
|
||||||
|
void sortByRange(const BlackMisc::Geo::CCoordinateGeodetic &position, bool updateDistance);
|
||||||
|
|
||||||
//! Register metadata
|
//! Register metadata
|
||||||
static void registerMetadata();
|
static void registerMetadata();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user